diff options
Diffstat (limited to 'contrib/perl5/hints/aix.sh')
-rw-r--r-- | contrib/perl5/hints/aix.sh | 71 |
1 files changed, 43 insertions, 28 deletions
diff --git a/contrib/perl5/hints/aix.sh b/contrib/perl5/hints/aix.sh index 25e2048..d2c45c0 100644 --- a/contrib/perl5/hints/aix.sh +++ b/contrib/perl5/hints/aix.sh @@ -19,6 +19,10 @@ alignbytes=8 usemymalloc='n' +# Intuiting the existence of system calls under AIX is difficult, +# at best; the safest technique is to find them empirically. +usenm='undef' + so="a" dlext="so" @@ -63,40 +67,51 @@ esac # symbol: boot_$(EXP) can it be auto-generated? case "$osvers" in 3*) -lddlflags='-H512 -T512 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -e _nostart -lc' + lddlflags='-H512 -T512 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -e _nostart -lc' ;; *) -lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -b noentry -lc' - -;; + lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -b noentry -lc' + ;; esac -if [ "X$usethreads" = "X$define" ]; then - ccflags="$ccflags -DNEED_PTHREAD_INIT" - case "$cc" in - xlc_r | cc_r) - ;; - cc | '') - cc=xlc_r # Let us be stricter. - ;; - *) - cat >&4 <<EOM -Unknown C compiler '$cc'. -For pthreads you should use the AIX C compilers xlc_r or cc_r. +# 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="$ccflags -DNEED_PTHREAD_INIT" + case "$cc" in + cc_r) ;; + cc|xlc_r) + echo >&4 "Switching cc to cc_r because of POSIX threads." + # xlc_r has been known to produce buggy code in AIX 4.3.2. + # (e.g. pragma/overload core dumps) + # --jhi@iki.fi + cc=cc_r + ;; + '') + cc=cc_r + ;; + *) + cat >&4 <<EOM +For pthreads you should use the AIX C compiler cc_r. +(now your compiler was '$cc') Cannot continue, aborting. EOM - exit 1 - ;; - esac + exit 1 + ;; + esac - # Add the POSIX threads library and the re-entrant libc. + # Add the POSIX threads library and the re-entrant libc. - lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'` + lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'` - # Add the c_r library to the list of libraries wanted - # Make sure the c_r library is before the c library or - # make will fail. - set `echo X "$libswanted "| sed -e 's/ c / c_r c /'` - shift - libswanted="$*" -fi + # Add the c_r library to the list of wanted libraries. + # Make sure the c_r library is before the c library or + # make will fail. + set `echo X "$libswanted "| sed -e 's/ c / c_r c /'` + shift + libswanted="$*" + ;; +esac +EOCBU |