mirror of
https://github.com/Perl/perl5.git
synced 2026-01-26 16:39:36 +00:00
(a) This enables the malloc wrap also on Hurd, as used on Linux already; Perl's own test suite passed with it, and I see no reason to diverge from the behaviour on Linux and kFreeBSD. I'm not sure whether it affects the ABI though, so it might be safe only for the upcoming perl 5.24 in experimental (since that breaks the ABI anyway) (b) This improves the reporting of the GNU libc used, so it's shown in `perl -V` (as libc value, instead of the currently empty string).
125 lines
3.3 KiB
Bash
125 lines
3.3 KiB
Bash
# hints/gnu.sh
|
|
# Originally contributed by: Mark Kettenis <kettenis@phys.uva.nl> Dec 10 1998
|
|
|
|
# libnsl is unusable on the Hurd.
|
|
# XXX remove this once SUNRPC is implemented.
|
|
set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ nsl / /' -e 's/ c / pthread /'`
|
|
shift
|
|
libswanted="$*"
|
|
|
|
# Debian 4.0 puts ndbm in the -lgdbm_compat library.
|
|
libswanted="$libswanted gdbm_compat"
|
|
|
|
# malloc wrap works
|
|
case "$usemallocwrap" in
|
|
'') usemallocwrap='define' ;;
|
|
esac
|
|
|
|
# The system malloc() is about as fast and as frugal as perl's.
|
|
# Since the system malloc() has been the default since at least
|
|
# 5.001, we might as well leave it that way. --AD 10 Jan 2002
|
|
case "$usemymalloc" in
|
|
'') usemymalloc='n' ;;
|
|
esac
|
|
|
|
case "$optimize" in
|
|
'') optimize='-O2' ;;
|
|
esac
|
|
|
|
case "$plibpth" in
|
|
'') plibpth=`gcc -print-search-dirs | grep libraries |
|
|
cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
|
|
set X $plibpth # Collapse all entries on one line
|
|
shift
|
|
plibpth="$*"
|
|
;;
|
|
esac
|
|
|
|
case "$libc" in
|
|
'')
|
|
# If you have glibc, then report the version for ./myconfig bug reporting.
|
|
# (Configure doesn't need to know the specific version since it just uses
|
|
# gcc to load the library for all tests.)
|
|
# We don't use __GLIBC__ and __GLIBC_MINOR__ because they
|
|
# are insufficiently precise to distinguish things like
|
|
# libc-2.0.6 and libc-2.0.7.
|
|
for p in $plibpth
|
|
do
|
|
for trylib in libc.so.0.3 libc.so
|
|
do
|
|
if $test -e $p/$trylib; then
|
|
libc=`ls -l $p/$trylib | awk '{print $NF}'`
|
|
if $test "X$libc" != X; then
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
if $test "X$libc" != X; then
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
|
|
# Flags needed to produce shared libraries.
|
|
lddlflags='-shared'
|
|
|
|
# Flags needed by programs that use dynamic linking.
|
|
ccdlflags='-Wl,-E'
|
|
|
|
# This script UU/usethreads.cbu will get 'called-back' by Configure
|
|
# after it has prompted the user for whether to use threads.
|
|
cat > UU/usethreads.cbu <<'EOCBU'
|
|
case "$usethreads" in
|
|
$define|true|[yY]*)
|
|
ccflags="-D_REENTRANT -D_GNU_SOURCE $ccflags"
|
|
if echo $libswanted | grep -v pthread >/dev/null
|
|
then
|
|
set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
|
|
shift
|
|
libswanted="$*"
|
|
fi
|
|
|
|
# Somehow at least in Debian 2.2 these manage to escape
|
|
# the #define forest of <features.h> and <time.h> so that
|
|
# the hasproto macro of Configure doesn't see these protos,
|
|
# even with the -D_GNU_SOURCE.
|
|
|
|
d_asctime_r_proto="$define"
|
|
d_crypt_r_proto="$define"
|
|
d_ctime_r_proto="$define"
|
|
d_gmtime_r_proto="$define"
|
|
d_localtime_r_proto="$define"
|
|
d_random_r_proto="$define"
|
|
|
|
;;
|
|
esac
|
|
EOCBU
|
|
|
|
cat > UU/uselargefiles.cbu <<'EOCBU'
|
|
# This script UU/uselargefiles.cbu will get 'called-back' by Configure
|
|
# after it has prompted the user for whether to use large files.
|
|
case "$uselargefiles" in
|
|
''|$define|true|[yY]*)
|
|
# Keep this in the left margin.
|
|
ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
|
|
|
ccflags="$ccflags $ccflags_uselargefiles"
|
|
;;
|
|
esac
|
|
EOCBU
|
|
|
|
# The following routines are only available as stubs in GNU libc.
|
|
# XXX remove this once metaconf detects the GNU libc stubs.
|
|
d_msgctl='undef'
|
|
d_msgget='undef'
|
|
d_msgrcv='undef'
|
|
d_msgsnd='undef'
|
|
d_semctl='undef'
|
|
d_semget='undef'
|
|
d_semop='undef'
|
|
d_shmat='undef'
|
|
d_shmctl='undef'
|
|
d_shmdt='undef'
|
|
d_shmget='undef'
|