From: Alan Burlison Date: Tue, 1 Jul 2003 00:03:24 +0000 (+0100) Subject: Re: Subject: Problems: 5.8.1, Solaris, Configure, sched_yield(), -lrt & -lposix4 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6bdd71ef1830fa9fb85306405e4da0222df1321d;p=p5sagit%2Fp5-mst-13.2.git Re: Subject: Problems: 5.8.1, Solaris, Configure, sched_yield(), -lrt & -lposix4 Message-ID: <3F00C1BC.3020103@sun.com> p4raw-id: //depot/perl@19897 --- diff --git a/Configure b/Configure index a15eeb7..c273354 100755 --- a/Configure +++ b/Configure @@ -565,7 +565,6 @@ d_msgrcv='' d_msgsnd='' d_msync='' d_munmap='' -d_nanosleep='' d_nice='' d_nl_langinfo='' d_off64_t='' @@ -1268,10 +1267,8 @@ archname='' usereentrant='undef' : List of libraries we want. : If anyone needs -lnet, put it in a hint file. -libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl' -libswanted="$libswanted dld ld sun m c cposix posix" -libswanted="$libswanted ndir dir crypt sec" -libswanted="$libswanted ucb bsd BSD PW x util rt posix4" +libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun" +libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" : We probably want to search /usr/shlib before most other libraries. : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` @@ -14239,10 +14236,6 @@ eval $inlibc set munmap d_munmap eval $inlibc -: see if nanosleep exists -set nanosleep d_nanosleep -eval $inlibc - : see if nice exists set nice d_nice eval $inlibc @@ -20718,7 +20711,6 @@ d_msgsnd='$d_msgsnd' d_msync='$d_msync' d_munmap='$d_munmap' d_mymalloc='$d_mymalloc' -d_nanosleep='$d_nanosleep' d_nice='$d_nice' d_nl_langinfo='$d_nl_langinfo' d_nv_preserves_uv='$d_nv_preserves_uv' diff --git a/Makefile.SH b/Makefile.SH index 77d67b4..43ad32f 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -494,7 +494,7 @@ $(LIBPERL): $& perl$(OBJ_EXT) $(obj) $(LIBPERLEXPORT) case "$useshrplib" in true) $spitshell >>Makefile <<'!NO!SUBS!' - $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) + $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) !NO!SUBS! case "$osname" in aix) diff --git a/config_h.SH b/config_h.SH index ce00a53..d4c4319 100644 --- a/config_h.SH +++ b/config_h.SH @@ -2662,12 +2662,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_msghdr_s HAS_STRUCT_MSGHDR /**/ -/* HAS_NANOSLEEP: - * This symbol, if defined, indicates that the nanosleep - * system call is available to sleep with 1E-9 sec accuracy. - */ -#$d_nanosleep HAS_NANOSLEEP /**/ - /* HAS_NL_LANGINFO: * This symbol, if defined, indicates that the nl_langinfo routine is * available to return local data. You will also need diff --git a/configure.com b/configure.com index 60fc9e8..54b6673 100644 --- a/configure.com +++ b/configure.com @@ -5529,7 +5529,6 @@ $ WC "d_unlink_all_versions='undef'" $ WC "d_unordered='undef'" $ WC "d_usleep='" + d_usleep + "'" $ WC "d_usleepproto='" + d_usleep + "'" -$ WC "d_nanosleep='undef'" $ WC "d_ustat='undef'" $ WC "d_vendorarch='undef'" $ WC "d_vendorlib='undef'" diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index bc49dae..5d643de 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -330,6 +330,21 @@ to the beginning of your PATH. END fi fi + +# Check to see if the selected compiler and linker +# support the -z ignore, -z lazyload and -z combreloc flags. +echo "int main() { return(0); } " > try.c + zflgs='' +for zf in ignore lazyload combreloc; do + if ${cc:-cc} -o try try.c -z $zf > /dev/null 2>&1; then + zflgs="$zflgs -z $zf" + fi +done +if test -n "$zflgs"; then + ccdlflags="$ccdlflags $zflgs" + lddlflags="$lddlflags -G $zflgs" +fi + # as --version or ld --version might dump core. rm -f try try.c core EOCBU @@ -341,12 +356,8 @@ case "$usethreads" in $define|true|[yY]*) ccflags="-D_REENTRANT $ccflags" - # sched_yield is in -lposix4 up to Solaris 2.6, in -lrt starting with Solaris 2.7 - case `uname -r` in - 5.[0-6] | 5.5.1) sched_yield_lib="posix4" ;; - *) sched_yield_lib="rt"; - esac - set `echo X "$libswanted "| sed -e "s/ c / $sched_yield_lib pthread c /"` + sched_yield='yield' + set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` shift libswanted="$*" @@ -496,7 +507,7 @@ Cannot continue, aborting. EOM exit 1 fi - case "$cc -v 2>/dev/null" in + case "${cc:-cc} -v 2>/dev/null" in *gcc*) echo 'int main() { return 0; }' > try.c case "`${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not supported by this configuration'`" in @@ -561,7 +572,7 @@ case "$uselongdouble" in #include int main() { (void) powl(2, 256); return(0); } EOM - if cc try.c -lsunmath -o try > /dev/null 2>&1 && ./try; then + if ${cc:-cc} try.c -lsunmath -o try > /dev/null 2>&1 && ./try; then libswanted="$libswanted sunmath" fi else diff --git a/perl.h b/perl.h index 66e6a67..8e35168 100644 --- a/perl.h +++ b/perl.h @@ -4371,7 +4371,6 @@ extern void moncontrol(int); HAS_UALARM HAS_USLEEP - HAS_NANOSLEEP HAS_SETITIMER HAS_GETITIMER diff --git a/uconfig.h b/uconfig.h index a937c71..5f912ee 100644 --- a/uconfig.h +++ b/uconfig.h @@ -2638,12 +2638,6 @@ */ /*#define HAS_STRUCT_MSGHDR / **/ -/* HAS_NANOSLEEP: - * This symbol, if defined, indicates that the nanosleep - * system call is available to sleep with 1E-9 sec accuracy. - */ -/*#define HAS_NANOSLEEP / **/ - /* HAS_NL_LANGINFO: * This symbol, if defined, indicates that the nl_langinfo routine is * available to return local data. You will also need diff --git a/uconfig.sh b/uconfig.sh index f64ec02..93c4194 100755 --- a/uconfig.sh +++ b/uconfig.sh @@ -239,7 +239,6 @@ d_msgsnd='undef' d_msync='undef' d_munmap='undef' d_mymalloc='undef' -d_nanosleep='undef' d_nice='undef' d_nl_langinfo='undef' d_nv_preserves_uv='undef'