diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-05-10 14:39:28 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-05-10 14:39:28 +0000 |
commit | 9c304fcb9822137687b06f0cc66c5f427fa307d1 (patch) | |
tree | cd434bee641b4a9dcb76155e27823e99aa9af227 /hints | |
parent | 92b7311ab7166cba6ce64057c5409d8cdc4cdecf (diff) | |
parent | 885f9e59968d66740b5c621739ead374e8e37a2b (diff) | |
download | perl-9c304fcb9822137687b06f0cc66c5f427fa307d1.tar.gz |
Integrate from mainperl.
p4raw-id: //depot/cfgperl@3381
Diffstat (limited to 'hints')
-rw-r--r-- | hints/aix.sh | 163 | ||||
-rw-r--r-- | hints/cygwin32.sh | 89 |
2 files changed, 186 insertions, 66 deletions
diff --git a/hints/aix.sh b/hints/aix.sh index 7b111ffc5f..d5ce75529d 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -6,6 +6,32 @@ # Merged on Mon Feb 6 10:22:35 EST 1995 by # Andy Dougherty <doughera@lafcol.lafayette.edu> +# +# Contact dfavor@corridor.com for any of the following: +# +# - AIX 43x and above support +# - gcc + threads support +# - socks support +# +# Apr 99 changes: +# +# - use nm in AIX 43x and above +# - gcc + threads now builds +# - added support for socks, when Dccflags=-DSOCKS specified +# +# Notes: +# +# - shared libperl support is tricky. if ever libperl.a ends up +# in /usr/local/lib/* it can override any subsequent builds of +# that same perl release. to make sure you know where the shared +# libperl.a is coming from do a 'dump -Hv perl' and check all the +# library search paths in the loader header. +# +# it would be nice to warn the user if a libperl.a exists that is +# going to override the current build, but that would be complex. +# +# better yet, a solid fix for this situation should be developed. +# # Configure finds setrgid and setruid, but they're useless. The man # pages state: @@ -15,19 +41,28 @@ d_setrgid='undef' d_setruid='undef' -# Neither do these functions work like Perl expects them to. -d_setregid='undef' -d_setreuid='undef' - alignbytes=8 -# Intuiting the existence of system calls under AIX is difficult, at best; -# the safest (and slowest...) technique is to find them empirically. -usenm='undef' +usemymalloc='n' + +# Intuiting the existence of system calls under AIX is difficult, +# at best; the safest technique is to find them empirically. + +# AIX 4.3.* and above default to using nm for symbol extraction +case "$osvers" in + 3.*|4.1.*|4.2.*) + usenm='undef' + ;; + *) + usenm='true' + ;; +esac so="a" dlext="so" +# Trying to set this breaks the POSIX.c compilation + # Make setsockopt work correctly. See man page. # ccflags='-D_BSD=44' @@ -50,13 +85,17 @@ case "$osvers" in ;; esac +# These functions don't work like Perl expects them to. +d_setregid='undef' +d_setreuid='undef' + # Changes for dynamic linking by Wayne Scott <wscott@ichips.intel.com> # # Tell perl which symbols to export for dynamic linking. case "$cc" in -*gcc*) ccdlflags="$ccdlflags -Xlinker" ;; +*gcc*) ccdlflags='-Xlinker -bE:perl.exp' ;; +*) ccdlflags='-bE:perl.exp' ;; esac -ccdlflags="$ccdlflags -bE:perl.exp" # The first 3 options would not be needed if dynamic libs. could be linked # with the compiler instead of ld. @@ -65,13 +104,84 @@ ccdlflags="$ccdlflags -bE:perl.exp" # symbol: boot_$(EXP) can it be auto-generated? case "$osvers" in 3*) - lddlflags="$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' ;; *) - lddlflags="$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' ;; esac +# +# if $ccflags contains -DSOCKS, then add socks library support. +# +# SOCKS support also requires each source module with socket support +# add the following lines directly after the #include <socket.h>: +# +# #ifdef SOCKS +# #include <socks.h> +# #endif +# +# It is expected that libsocks.a resides in /usr/local/lib and that +# socks.h resides in /usr/local/include. If these files live some +# different place then modify +# + +for arg in $ccflags ; do + + if [ "$arg" = "-DSOCKS" ] ; then + + sockslib=socks5 + incpath=/usr/local/include + libpath=/usr/local/lib + + echo >&4 "SOCKS using $incpath/socks.h and $libpath/lib${sockslib}.a" + echo >&4 "SOCKS requires source modifications. #include <socket.h> must change to:" + echo >&4 + echo >&4 " #include <socket.h>" + echo >&4 " #ifdef SOCKS" + echo >&4 " #include <socks.h>" + echo >&4 " #endif" + echo >&4 + echo >&4 "in some or all of the following files:" + echo >&4 + + for arg in `find . \( -name '*.c' -o -name '*.xs' -o -name '*.h' \) \ + -exec egrep -l '#.*include.*socket\.h' {} \; | \ + egrep -v "win32|vms|t/lib|Socket.c` ; do + echo >&4 " $arg" + done + + echo >&4 + + lddlflags="$lddlflags -l$sockslib" + + # setting $libs here breaks the optional libraries search + # for some reason, so use $libswanted instead + #libs="$libs -lsocks5" + + libswanted="$libswanted $sockslib" + + # + # path for include file + # + + locincpth="$locincpath /usr/local/include" + + # + # path for library not needed, if in /usr/local/lib as that + # directory is already searched. + # + + #loclibpth="$loclibpath /usr/local/lib" + + break + + fi + +done + +lddllibc="-lc" + # 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' @@ -79,17 +189,21 @@ case "$usethreads" in $define|true|[yY]*) ccflags="$ccflags -DNEED_PTHREAD_INIT" case "$cc" in - xlc_r) ;; - cc) - echo >&4 "Switching cc to xlc_r because of POSIX threads." - cc=xlc_r + gcc) ;; + 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_r) - cc=xlc_r + '') + cc=cc_r ;; *) cat >&4 <<EOM -For pthreads you should use the AIX C compiler xlc_r. +For pthreads you should use the AIX C compiler cc_r. (now your compiler was '$cc') Cannot continue, aborting. EOM @@ -99,20 +213,17 @@ EOM # Add the POSIX threads library and the re-entrant libc. - lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'` + lddllibc="-lpthreads -lc_r" # 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 /'` + set `echo X "$libswanted "| sed -e 's/ c / pthreads c_r /'` shift libswanted="$*" - - # Perl's malloc doesn't survive threaded AIX. - case "$usemymalloc" in - '') usemymalloc='n' ;; - esac - ;; esac + +lddlflags="$lddlflags $lddllibc" + EOCBU diff --git a/hints/cygwin32.sh b/hints/cygwin32.sh index 5853499954..ced980069f 100644 --- a/hints/cygwin32.sh +++ b/hints/cygwin32.sh @@ -1,50 +1,59 @@ #! /bin/sh # cygwin32.sh - hintsfile for building perl on Windows NT using the # Cygnus Win32 Development Kit. -# See "http://www.cygnus.com/misc/gnu-win32/" to learn about the kit. # -path_sep=\; +_a='.a' +_exe='.exe' +_o='.o' +archname='cygwin32' +# hmm... why Configure doesn't look for this? +#bash='/usr/bin/bash' +bin='/usr/local/bin' +binexp='/usr/local/bin' +byteorder='1234' +cc='gcc' +cccdlflags='' +# ccflags='-I/usr/local/include -ggdb3 -DCYGWIN32 -DDEBUGGING' +# ok, debugging may be not appropriate for everyone +ccflags='-DCYGWIN32' +clocktype='clock_t' +cryptlib='-lcrypt' +dlext='dll' +dlsrc='dl_cygwin32.xs' exe_ext='.exe' +# work around case-insensitive file names firstmakefile='GNUmakefile' -if test -f $sh.exe; then sh=$sh.exe; fi -startsh="#!$sh" -cc='gcc2' -ld='ld2' -usrinc='/gnuwin32/H-i386-cygwin32/i386-cygwin32/include' -libpth='/gnuwin32/H-i386-cygwin32/i386-cygwin32/lib /gnuwin32/H-i386-cygwin32/lib' -libs='-lcygwin -lm -lc -lkernel32' -# dynamic lib stuff -so='dll' -#i_dlfcn='define' -dlsrc='dl_cygwin32.xs' -usedl='y' -# flag to include the perl.exe export variable translation file cw32imp.h -# when building extension libs -cccdlflags='-DCYGWIN32 -DDLLIMPORT ' -# flag that signals gcc2 to build exportable perl -ccdlflags='-buildperl ' -lddlflags='-L../.. -L/gnuwin32/H-i386-cygwin32/i386-cygwin32/lib -lperlexp -lcygwin' -d_voidsig='undef' -extensions='Fcntl IO Opcode SDBM_File' -lns='cp' -signal_t='int' -useposix='false' -rd_nodata='0' -eagain='EAGAIN' -archname='cygwin32' -# - -installbin='/usr/local/bin' -installman1dir='' -installman3dir='' -installprivlib='/usr/local/lib/perl5' +gidtype='gid_t' +installman1dir='/usr/local/man/man1' +installman3dir='/usr/local/man/man3' installscript='/usr/local/bin' - installsitelib='/usr/local/lib/perl5/site_perl' -libc='/gnuwin32/H-i386-cygwin32/i386-cygwin32/lib/libc.a' - -perlpath='/usr/local/bin/perl' - +installusrbinperl='undef' +ld='ld2' +lddlflags='-DCYGWIN32 --export-dynamic --strip-debug' +ldflags="-L. -L`pwd`" +lib_ext='.a' +libperl='libperl.a' +libpth='/usr/lib /usr/local/lib /cygnus/cygwin-b20/H-i586-cygwin32/lib' +libs='-lcygwin -lm -lc -lkernel32' +man1dir='/usr/local/man/man1' +man1direxp='/usr/local/man/man1' +man1ext='1' +man3dir='/usr/local/man/man3' +man3direxp='/usr/local/man/man3' +man3ext='3' +obj_ext='.o' +optimize='-O' +path_sep=':' +prefix='/usr/local' +prefixexp='/usr/local' +scriptdir='/usr/local/bin' +scriptdirexp='/usr/local/bin' sitelib='/usr/local/lib/perl5/site_perl' sitelibexp='/usr/local/lib/perl5/site_perl' -usrinc='/gnuwin32/H-i386-cygwin32/i386-cygwin32/include' +sysman='/usr/local/man/man1' +usenm='false' +useperlio='define' +useshrplib='true' +usevfork='true' +usrinc='/usr/i586-cygwin32/include' |