# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg00465.html
usemymalloc=${usemymalloc:-false}
+# malloc wrap works
+case "$usemallocwrap" in
+'') usemallocwrap='define' ;;
+esac
+
# Avoid all libraries in /usr/ucblib.
# /lib is just a symlink to /usr/lib
set `echo $glibpth | sed -e 's@/usr/ucblib@@' -e 's@ /lib @ @'`
# Hmm. gcc doesn't call /usr/ccs/bin/ld directly, but it
# does appear to be using it eventually. egcs-1.0.3's ld
# wrapper does this.
- # All Solaris versions of ld I've seen contain the magic
+ # Most Solaris versions of ld I've seen contain the magic
# string used in the grep.
:
+ elif echo "$verbose" | grep "Solaris Link Editors" >/dev/null 2>&1; then
+ # However some Solaris 8 versions prior to ld 5.8-1.286 contain
+ # this string instead.
+ :
else
# No evidence yet of /usr/ccs/bin/ld. Some versions
# of egcs's ld wrapper call /usr/ccs/bin/ld in turn but
grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
# Ok, /usr/ccs/bin/ld eventually does get called.
:
+ elif ${myld:-ld} -V 2>&1 |
+ grep "Solaris Link Editors" >/dev/null 2>&1; then
+ # Ok, /usr/ccs/bin/ld eventually does get called.
+ :
else
echo "Found GNU ld='$myld'" >&4
cat <<END >&2
$define|true|[yY]*)
ccflags="-D_REENTRANT $ccflags"
- sched_yield='yield'
+ # -lpthread overrides some lib C functions, so put it before c.
set `echo X "$libswanted "| sed -e "s/ c / pthread c /"`
shift
libswanted="$*"
+ # sched_yield is available in the -lrt library. However,
+ # we can also pick up the equivalent yield() function in the
+ # normal C library. To avoid pulling in unnecessary
+ # libraries, we'll normally avoid sched_yield()/-lrt and
+ # just use yield(). However, we'll honor a command-line
+ # override : "-Dsched_yield=sched_yield".
+ # If we end up using sched_yield, we're going to need -lrt.
+ sched_yield=${sched_yield:-yield}
+ if test "$sched_yield" = "sched_yield"; then
+ set `echo X "$libswanted "| sed -e "s/ pthread / rt pthread /"`
+ shift
+ libswanted="$*"
+ fi
+
# On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
# when linked with the threads library, such that whatever positive
# value you pass to siglongjmp(), sigsetjmp() returns 1.
loclibpth="/usr/lib/sparcv9 $loclibpth"
ccflags="$ccflags -mcpu=v9 -m64"
if test X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then
+ # This adds in -Wa,-xarch=v9. I suspect that's superfluous,
+ # since the -m64 above should do that already. Someone
+ # with gcc-3.x.x, please test with gcc -v. A.D. 20-Nov-2003
ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
fi
- # no changes to ld flags, as (according to man ld):
- #
- # There is no specific option that tells ld to link 64-bit
- # objects; the class of the first object that gets processed
- # by ld determines whether it is to perform a 32-bit or a
- # 64-bit link edit.
+ ldflags="$ldflags -m64"
+ lddlflags="$lddlflags -G -m64"
;;
*)
ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"