diff options
author | markm <markm@FreeBSD.org> | 1998-09-09 07:00:04 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 1998-09-09 07:00:04 +0000 |
commit | 4fcbc3669aa997848e15198cc9fb856287a6788c (patch) | |
tree | 58b20e81687d6d5931f120b50802ed21225bf440 /contrib/perl5/hints | |
download | FreeBSD-src-4fcbc3669aa997848e15198cc9fb856287a6788c.zip FreeBSD-src-4fcbc3669aa997848e15198cc9fb856287a6788c.tar.gz |
Initial import of Perl5. The king is dead; long live the king!
Diffstat (limited to 'contrib/perl5/hints')
74 files changed, 5298 insertions, 0 deletions
diff --git a/contrib/perl5/hints/3b1.sh b/contrib/perl5/hints/3b1.sh new file mode 100644 index 0000000..991348a --- /dev/null +++ b/contrib/perl5/hints/3b1.sh @@ -0,0 +1,15 @@ +d_voidsig='undef' +d_tosignal='int' +gidtype='int' +groupstype='int' +uidtype='int' +# Note that 'Configure' is run from 'UU', hence the strange 'ln' +# command. +for i in .. ../x2p +do + rm -f $i/3b1cc + ln ../hints/3b1cc $i +done +echo "\nIf you want to use the 3b1 shared libraries, complete this script then" >&4 +echo "read the header in 3b1cc. [Type carriage return to continue]\c" >&4 +read vch diff --git a/contrib/perl5/hints/3b1cc b/contrib/perl5/hints/3b1cc new file mode 100644 index 0000000..0001e04 --- /dev/null +++ b/contrib/perl5/hints/3b1cc @@ -0,0 +1,88 @@ +# To incorporate the 7300/3b1 shared library, run this script in place +# of 'CC'. +# You can skip this is you have the shcc program installed as cc in +# your path. +# First: Run 'Configure' through to the end and run 'make depend'. +# Second: Edit 'makefile' ( not Makefile ) and set CC = 3b1cc. +# Third: Edit 'x2p/makefile' and set CC = 3b1cc. +# +# Do not use '3b1cc' as the default compiler. The call to the default +# compiler is used by 'perl' and will not be available when running +# 'perl'. +# +# Note: This script omits libraries which are redundant in the shared +# library. It is an excerpt from a grander version available upon +# request from "zebra!vern" or "vern@zebra.alphacdc.com". + +CC="cc" +LIBS= +INCL= + +LD="ld" +SHAREDLIB="/lib/crt0s.o /lib/shlib.ifile" + +# Local variables +COBJS= +LOBJS= +TARG= +FLAGS= +CMD= + +# These are libraries which are incorporated in the shared library +OMIT="-lmalloc" + +# These routines are in libc.a but not in the shared library +if [ ! -f vsprintf.o -o ! -f doprnt.o ] +then + echo "Extracting vsprintf.o from libc.a" + ar -x /lib/libc.a vsprintf.o doprnt.o +fi + +CMD="$CC" +while [ $# -gt 0 ] +do + case $1 in + -c) CFLAG=$1;; + -o) CFLAG=$1 + shift + TARG="$1";; + -l*) match=false + for i in $OMIT + do + [ "$i" = "$1" ] && match=true + done + [ "$match" != false ] || LIBS="$LIBS $1";; + -*) FLAGS="$FLAGS $1";; + *.c) COBJS="$COBJS $1";; + *.o) LOBJS="$LOBJS $1";; + *) TARG="$1";; + esac + shift +done + +if [ -n "$COBJS" ] +then + CMD="$CMD $FLAGS $INCL $LPATHS $LIBS $COBJS $CFLAG $TARG" +elif [ -n "$LOBJS" ] +then + LOBJS="$LOBJS vsprintf.o doprnt.o" + CMD="$LD -r $LOBJS $LPATHS $LIBS -o temp.o" + echo "\t$CMD" + $CMD + CMD="$LD -s temp.o $SHAREDLIB -o $TARG" + echo "\t$CMD" + $CMD + ccrslt=$? + if [ $ccrslt -ne 0 ] + then + exit $ccrslt + fi + CMD="rm -f temp.o" +else + exit 1 +fi +echo "\t$CMD" +$CMD +ccrslt=$? +rm -f $$.c +exit $ccrslt diff --git a/contrib/perl5/hints/README.hints b/contrib/perl5/hints/README.hints new file mode 100644 index 0000000..e36bd6d --- /dev/null +++ b/contrib/perl5/hints/README.hints @@ -0,0 +1,213 @@ +=head1 NAME + +README.hints + +=head1 DESCRIPTION + +These files are used by Configure to set things which Configure either +can't or doesn't guess properly. Most of these hint files have been +tested with at least some version of perl5, but some are still left +over from perl4. + +Please send any problems or suggested changes to perlbug@perl.com. + +Hint file naming convention: Each hint file name should have only +one '.'. (This is for portability to non-unix file systems.) Names +should also fit in <= 14 characters, for portability to older SVR3 +systems. File names are of the form $osname_$osvers.sh, with all '.' +changed to '_', and all characters (such as '/') that don't belong in +Unix filenames omitted. + +For example, consider Sun OS 4.1.3. Configure determines $osname=sunos +(all names are converted to lower case) and $osvers=4.1.3. Configure +will search for an appropriate hint file in the following order: + + sunos_4_1_3.sh + sunos_4_1.sh + sunos_4.sh + sunos.sh + +If you need to create a hint file, please try to use as general a name +as possible and include minor version differences inside case or test +statements. For example, for IRIX 6.X, we have the following hints +files: + + irix_6_0.sh + irix_6_1.sh + irix_6.sh + +That is, 6.0 and 6.1 have their own special hints, but 6.2, 6.3, and +up are all handled by the same irix_6.sh. That way, we don't have to +make a new hint file every time the IRIX O/S is upgraded. + +If you need to test for specific minor version differences in your +hints file, be sure to include a default choice. (See aix.sh for one +example.) That way, if you write a hint file for foonix 3.2, it might +still work without any changes when foonix 3.3 is released. + +Please also comment carefully on why the different hints are needed. +That way, a future version of Configure may be able to automatically +detect what is needed. + +A glossary of config.sh variables is in the file Porting/Glossary. + +=head1 Hint file tricks + +=head2 Printing critical messages + +[This is still experimental] + +If you have a *REALLY* important message that the user ought to see at +the end of the Configure run, you can store it in the file +'config.msg'. At the end of the Configure run, Configure will display +the contents of this file. Currently, the only place this is used is +in Configure itself to warn about the need to set LD_LIBRARY_PATH if +you are building a shared libperl.so. + +To use this feature, just do something like the following + + $cat <<EOM | $tee -a ../config.msg >&4 + + This is a really important message. Be sure to read it + before you type 'make'. + EOM + +This message will appear on the screen as the hint file is being +processed and again at the end of Configure. + +Please use this sparingly. + +=head2 Propagating variables to config.sh + +Sometimes, you want an extra variable to appear in config.sh. For +example, if your system can't compile toke.c with the optimizer on, +you can put + + toke_cflags='optimize=""' + +at the beginning of a line in your hints file. Configure will then +extract that variable and place it in your config.sh file. Later, +while compiling toke.c, the cflags shell script will eval $toke_cflags +and hence compile toke.c without optimization. + +Note that for this to work, the variable you want to propagate must +appear in the first column of the hint file. It is extracted by +Configure with a simple sed script, so beware that surrounding case +statements aren't any help. + +By contrast, if you don't want Configure to propagate your temporary +variable, simply indent it by a leading tab in your hint file. + +For example, prior to 5.002, a bug in scope.c led to perl crashing +when compiled with -O in AIX 4.1.1. The following "obvious" +workaround in hints/aix.sh wouldn't work as expected: + + case "$osvers" in + 4.1.1) + scope_cflags='optimize=""' + ;; + esac + +because Configure doesn't parse the surrounding 'case' statement, it +just blindly propagates any variable that starts in the first column. +For this particular case, that's probably harmless anyway. + +Three possible fixes are: + +=over + +=item 1 + +Create an aix_4_1_1.sh hint file that contains the scope_cflags +line and then sources the regular aix hints file for the rest of +the information. + +=item 2 + +Do the following trick: + + scope_cflags='case "$osvers" in 4.1*) optimize=" ";; esac' + +Now when $scope_cflags is eval'd by the cflags shell script, the +case statement is executed. Of course writing scripts to be eval'd is +tricky, especially if there is complex quoting. Or, + +=item 3 + +Write directly to Configure's temporary file UU/config.sh. +You can do this with + + case "$osvers" in + 4.1.1) + echo "scope_cflags='optimize=\"\"'" >> UU/config.sh + scope_cflags='optimize=""' + ;; + esac + +Note you have to both write the definition to the temporary +UU/config.sh file and set the variable to the appropriate value. + +This is sneaky, but it works. Still, if you need anything this +complex, perhaps you should create the separate hint file for +aix 4.1.1. + +=back + +=head2 Call-backs + +=over 4 + +=item Warning + +All of the following is experimental and subject to change. But it +probably won't change much. :-) + +=item Compiler-related flags + +The settings of some things, such as optimization flags, may depend on +the particular compiler used. For example, for ISC we have the +following: + + case "$cc" in + *gcc*) ccflags="$ccflags -posix" + ldflags="$ldflags -posix" + ;; + *) ccflags="$ccflags -Xp -D_POSIX_SOURCE" + ldflags="$ldflags -Xp" + ;; + esac + +However, the hints file is processed before the user is asked which +compiler should be used. Thus in order for these hints to be useful, +the user must specify sh Configure -Dcc=gcc on the command line, as +advised by the INSTALL file. + +For versions of perl later than 5.004_61, this problem can +be circumvented by the use of "call-back units". That is, the hints +file can tuck this information away into a file UU/cc.cbu. Then, +after Configure prompts the user for the C compiler, it will load in +and run the UU/cc.cbu "call-back" unit. See hints/solaris_2.sh for an +example. + +=item Threading-related flags + +Similarly, after Configure prompts the user about whether or not to +compile Perl with threads, it will look for a "call-back" unit +usethreads.cbu. See hints/linux.sh for an example. + +=item Future status + +I hope this "call-back" scheme is simple enough to use but powerful +enough to deal with most situations. Still, there are certainly cases +where it's not enough. For example, for aix we actually change +compilers if we are using threads. + +I'd appreciate feedback on whether this is sufficiently general to be +helpful, or whether we ought to simply continue to require folks to +say things like "sh Configure -Dcc=gcc -Dusethreads" on the command line. + +=back + +Have the appropriate amount of fun :-) + + Andy Dougherty doughera@lafcol.lafayette.edu diff --git a/contrib/perl5/hints/aix.sh b/contrib/perl5/hints/aix.sh new file mode 100644 index 0000000..25e2048 --- /dev/null +++ b/contrib/perl5/hints/aix.sh @@ -0,0 +1,102 @@ +# hints/aix.sh +# AIX 3.x.x hints thanks to Wayne Scott <wscott@ichips.intel.com> +# AIX 4.1 hints thanks to Christopher Chan-Nui <channui@austin.ibm.com>. +# AIX 4.1 pthreading by Christopher Chan-Nui <channui@austin.ibm.com> and +# Jarkko Hietaniemi <jhi@iki.fi>. +# Merged on Mon Feb 6 10:22:35 EST 1995 by +# Andy Dougherty <doughera@lafcol.lafayette.edu> + + +# Configure finds setrgid and setruid, but they're useless. The man +# pages state: +# setrgid: The EPERM error code is always returned. +# setruid: The EPERM error code is always returned. Processes cannot +# reset only their real user IDs. +d_setrgid='undef' +d_setruid='undef' + +alignbytes=8 + +usemymalloc='n' + +so="a" +dlext="so" + +# Make setsockopt work correctly. See man page. +# ccflags='-D_BSD=44' + +# uname -m output is too specific and not appropriate here +case "$archname" in +'') archname="$osname" ;; +esac + +case "$osvers" in +3*) d_fchmod=undef + ccflags="$ccflags -D_ALL_SOURCE" + ;; +*) # These hints at least work for 4.x, possibly other systems too. + ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE" + case "$cc" in + *gcc*) ;; + *) ccflags="$ccflags -qmaxmem=8192" ;; + esac + nm_opt='-B' + ;; +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='-Xlinker -bE:perl.exp' ;; +*) ccdlflags='-bE:perl.exp' ;; +esac + +# The first 3 options would not be needed if dynamic libs. could be linked +# with the compiler instead of ld. +# -bI:$(PERL_INC)/perl.exp Read the exported symbols from the perl binary +# -bE:$(BASEEXT).exp Export these symbols. This file contains only one +# 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='-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. +Cannot continue, aborting. +EOM + exit 1 + ;; + esac + + # Add the POSIX threads library and the re-entrant libc. + + 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 diff --git a/contrib/perl5/hints/altos486.sh b/contrib/perl5/hints/altos486.sh new file mode 100644 index 0000000..b85f907 --- /dev/null +++ b/contrib/perl5/hints/altos486.sh @@ -0,0 +1,3 @@ +: have heard of problems with -lc_s on Altos 486 +set `echo " $libswanted " | sed "s/ c_s / /"` +libswanted="$*" diff --git a/contrib/perl5/hints/amigaos.sh b/contrib/perl5/hints/amigaos.sh new file mode 100644 index 0000000..9d86e52 --- /dev/null +++ b/contrib/perl5/hints/amigaos.sh @@ -0,0 +1,51 @@ +# hints/amigaos.sh +# +# talk to pueschel@imsdd.meb.uni-bonn.de if you want to change this file. +# +# misc stuff +archname='m68k-amigaos' +cc='gcc' +firstmakefile='GNUmakefile' +usenm='true' + +usemymalloc='n' +usevfork='true' +useperlio='true' +d_eofnblk='define' +d_fork='undef' +d_vfork='define' +groupstype='int' + +# libs + +libpth="$prefix/lib /local/lib" +glibpth="$libpth" +xlibpth="$libpth" + +libswanted='gdbm m dld' +so=' ' + +# compiler & linker flags + +ccflags='-DAMIGAOS -mstackextend' +ldflags='' +optimize='-O2 -fomit-frame-pointer' +dlext='o' +cccdlflags='none' +ccdlflags='none' +lddlflags='-oformat a.out-amiga -r' + +# uncomment the following settings if you are compiling for an 68020+ system +# and want a residentable executable instead of dynamic loading + +# usedl='n' +# ccflags='-DAMIGAOS -mstackextend -m68020 -resident32' +# ldflags='-m68020 -resident32' + +# AmigaOS always reports only two links to directories, even if they +# contain subdirectories. Consequently, we use this variable to stop +# File::Find using the link count to determine whether there are +# subdirectories to be searched. This will generate a harmless message: +# Hmm...You had some extra variables I don't know about...I'll try to keep 'em. +# Propagating recommended variable dont_use_nlink +dont_use_nlink='define' diff --git a/contrib/perl5/hints/apollo.sh b/contrib/perl5/hints/apollo.sh new file mode 100644 index 0000000..8c361aa --- /dev/null +++ b/contrib/perl5/hints/apollo.sh @@ -0,0 +1,51 @@ +# Info from Johann Klasek <jk@auto.tuwien.ac.at> +# Merged by Andy Dougherty <doughera@lafcol.lafayette.edu> +# Last revised Fri Jun 2 11:21:27 EDT 1995 + +# uname -a looks like +# DomainOS newton 10.4.1 bsd4.3 425t + +# We want to use both BSD includes and some of the features from the +# /sys5 includes. +ccflags="$ccflags -A cpu,mathchip -I/usr/include -I/sys5/usr/include" + +# These adjustments are necessary (why?) to compile malloc.c. +freetype='void' +i_malloc='undef' +malloctype='void *' + +# This info is left over from perl4. +cat <<'EOF' >&4 +Some tests may fail unless you use 'chacl -B'. Also, op/stat +test 2 may fail occasionally because Apollo doesn't guarantee +that mtime will be equal to ctime on a newly created unmodified +file. Finally, the sleep test will sometimes fail. See the +sleep(3) man page to learn why. + +See hints/apollo.sh for hints on running h2ph. + +And a note on ccflags: + + Lastly, while -A cpu,mathchip generates optimal code for your DN3500 + running sr10.3, be aware that you should be using -A cpu,mathlib_sr10 + if your perl must also run on any machines running sr10.0, sr10.1, or + sr10.2. The -A cpu,mathchip option generates code that doesn't work on + pre-sr10.3 nodes. See the cc(1) man page for more details. + -- Steve Vinoski + +EOF + +# Running h2ph, on the other hand, presents a challenge. + +#The perl header files have to be generated with following commands + +#sed 's|/usr/include|/sys5/usr/include|g' h2ph >h2ph.new && chmod +x h2ph.new +#(set cdir=`pwd`; cd /sys5/usr/include; $cdir/h2ph.new sys/* ) +#(set cdir=`pwd`; cd /usr/include; $cdir/h2ph * sys/* machine/*) + +#The SYS5 headers (only sys) are overlayed by the BSD headers. It seems +#all ok, but once I am going into details, a lot of limitations from +#'h2ph' are coming up. Lines like "#define NODEV (dev_t)(-1)" result in +#syntax errors as converted by h2ph. + +# Generally, h2ph might need a lot of help. diff --git a/contrib/perl5/hints/aux_3.sh b/contrib/perl5/hints/aux_3.sh new file mode 100644 index 0000000..aa3150a --- /dev/null +++ b/contrib/perl5/hints/aux_3.sh @@ -0,0 +1,22 @@ +# hints/aux_3.sh +# +# Improved by Jake Hamby <jehamby@lightside.com> to support both Apple CC +# and GNU CC. Tested on A/UX 3.1.1 with GCC 2.6.3. +# Now notifies of problem with version of dbm shipped with A/UX +# Last modified +# Sun Jan 5 11:16:41 WET 1997 + +case "$cc" in +*gcc*) optimize='-O2' + ccflags="$ccflags -D_POSIX_SOURCE" + echo "Setting hints for GNU CC." + ;; +*) optimize='-O' + ccflags="$ccflags -B/usr/lib/big/ -DPARAM_NEEDS_TYPES -D_POSIX_SOURCE" + POSIX_cflags='ccflags="$ccflags -ZP -Du_long=U32"' + echo "Setting hints for Apple's CC. If you plan to use" + echo "GNU CC, please rerun this Configure script as:" + echo "./Configure -Dcc=gcc" + ;; +esac +test -r ./broken-db.msg && . ./broken-db.msg diff --git a/contrib/perl5/hints/beos.sh b/contrib/perl5/hints/beos.sh new file mode 100644 index 0000000..ab75276 --- /dev/null +++ b/contrib/perl5/hints/beos.sh @@ -0,0 +1,45 @@ +# BeOS hints file +# $Id: beos.sh,v 1.1 1998/02/16 03:51:45 dogcow Exp $ + +if [ ! -f beos/nm ]; then mwcc -w all -o beos/nm beos/nm.c; fi + +prefix="/boot/home/config" + +cpp="mwcc -e" + +libpth='/boot/beos/system/lib /boot/home/config/lib' +usrinc='/boot/develop/headers/posix' +locinc='/boot/develop/headers/ /boot/home/config/include' + +libc='/boot/beos/system/lib/libroot.so' +libs=' ' + +d_bcmp='define' +d_bcopy='define' +d_bzero='define' +d_index='define' +#d_htonl='define' # It exists, but much hackery would be required to support. +# a bunch of extra includes would have to be added, and it's only used at +# one place in the non-socket perl code. + +#these are all in libdll.a, which my version of nm doesn't know how to parse. +#if I can get it to both do that, and scan multiple library files, perhaps +#these can be gotten rid of. + +usemymalloc='n' +# Hopefully, Be's malloc knows better than perl's. + +d_link='undef' +dont_use_nlink='define' +# no posix (aka hard) links for us! + +d_syserrlst='undef' +# the array syserrlst[] is useless for the most part. +# large negative numbers really kind of suck in arrays. + +#d_socket='undef' +# Sockets really don't work with the current version of perl and the +# current BeOS sockets; I suspect that a new module a la GSAR's WIN32 port +# will be required. + +export PATH="$PATH:$PWD/beos" diff --git a/contrib/perl5/hints/broken-db.msg b/contrib/perl5/hints/broken-db.msg new file mode 100644 index 0000000..92ba077 --- /dev/null +++ b/contrib/perl5/hints/broken-db.msg @@ -0,0 +1,14 @@ +# Several OSs come with an old version of the DB library which fails +# on a few of the db-recno.t tests. This file is sourced by the hints +# files for those OSs. + +cat <<EOF >&4 + +Unless you've upgraded your DB library manually you will see failures in +db-recno tests 51, 53 and 55. The behavior these tests are checking is +broken in the DB library which is included with the OS. You can ignore +the errors if you're never going to use the broken functionality (recno +databases with a modified bval), otherwise you'll have to upgrade your +DB library or OS. + +EOF diff --git a/contrib/perl5/hints/bsdos.sh b/contrib/perl5/hints/bsdos.sh new file mode 100644 index 0000000..c54a0c1 --- /dev/null +++ b/contrib/perl5/hints/bsdos.sh @@ -0,0 +1,106 @@ +# hints/bsdos.sh +# +# hints file for BSD/OS (adapted from bsd386.sh) +# Original by Neil Bowers <neilb@khoros.unm.edu>; Tue Oct 4 12:01:34 EDT 1994 +# Updated by Tony Sanders <sanders@bsdi.com>; Sat Aug 23 12:47:45 MDT 1997 +# Added 3.1 with ELF dynamic libraries (NOT in 3.1 yet. Estimated for 4.0) +# SYSV IPC tested Ok so I re-enabled. +# +# To override the compiler on the command line: +# ./Configure -Dcc=gcc2 +# +# The BSD/OS distribution is built with: +# ./Configure -des -Dbsdos_distribution=defined + +signal_t='void' +d_voidsig='define' + +usemymalloc='n' + +# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions. +# See http://www.bsdi.com/bsdi-man?setuid(2) +d_setregid='undef' +d_setreuid='undef' +d_setrgid='undef' +d_setruid='undef' + +# we don't want to use -lnm, since exp() is busted (in 1.1 anyway) +set `echo X "$libswanted "| sed -e 's/ nm / /'` +shift +libswanted="$*" + +# X libraries are in their own tree +glibpth="$glibpth /usr/X11/lib" +ldflags="$ldflags -L/usr/X11/lib" + +case "$optimize" in +'') optimize='-O2' ;; +esac + +case "$bsdos_distribution" in +''|undef|false) ;; +*) + d_dosuid='define' + d_portable='undef' + prefix='/usr/contrib' + perlpath='/usr/bin/perl5' + startperl='#!/usr/bin/perl5' + scriptdir='/usr/contrib/bin' + privlib='/usr/libdata/perl5' + man1dir='/usr/contrib/man/man1' + man3dir='/usr/contrib/man/man3' + # phlib added by BSDI -- we share the *.ph include dir with perl4 + phlib="/usr/libdata/perl5/site_perl/$(arch)-$osname/include" + phlibexp="/usr/libdata/perl5/site_perl/$(arch)-$osname/include" + ;; +esac + +case "$osvers" in +1.0*) + # Avoid problems with HUGE_VAL in POSIX in 1.0's cc. + POSIX_cflags='ccflags="$ccflags -UHUGE_VAL"' + ;; +1.1*) + # Use gcc2 + case "$cc" in + '') cc='gcc2' ;; + esac + ;; +2.0*|2.1*|3.0*|3.1*) + so='o' + + # default to GCC 2.X w/shared libraries + case "$cc" in + '') cc='shlicc2' + cccdlflags=' ' ;; # Avoid the dreaded -fpic + esac + + # default ld to shared library linker + case "$ld" in + '') ld='shlicc2' + lddlflags='-r' ;; # this one is necessary + esac + + # Must preload the static shared libraries. + libswanted="Xpm Xaw Xmu Xt SM ICE Xext X11 $libswanted" + libswanted="rpc curses termcap $libswanted" + ;; +4.0*) + # ELF dynamic link libraries starting in 4.0 (???) + useshrplib='true' + so='so' + dlext='so' + + case "$cc" in + '') cc='cc' # cc is gcc2 in 4.0 + cccdlflags="-fPIC" + ccdlflags=" " ;; + esac + + case "$ld" in + '') ld='ld' + lddlflags="-shared -x $lddlflags" ;; + esac + ;; +esac + diff --git a/contrib/perl5/hints/convexos.sh b/contrib/perl5/hints/convexos.sh new file mode 100644 index 0000000..9f6d702 --- /dev/null +++ b/contrib/perl5/hints/convexos.sh @@ -0,0 +1,12 @@ +# convexos.sh +# Thanks to David Starks-Browning <dstarks@rc.tudelft.nl> +# Date: Tue, 17 Jan 1995 10:45:03 -0500 (EST) +# Subject: Re: Hints for ConvexOS 10.2 +# +# uname -a output looks like +# ConvexOS xxxx C38xx 10.2 convex +# Configure may incorrectly assign $3 to $osvers. +# +set X $myuname +shift +osvers=$4 diff --git a/contrib/perl5/hints/cxux.sh b/contrib/perl5/hints/cxux.sh new file mode 100644 index 0000000..e3ac086 --- /dev/null +++ b/contrib/perl5/hints/cxux.sh @@ -0,0 +1,106 @@ +#! /local/gnu/bin/bash +# Hints for the CX/UX 7.1 operating system running on Concurrent (formerly +# Harris) NightHawk machines. written by Tom.Horsley@mail.ccur.com +# +# This config is setup for dynamic linking and the Concurrent C compiler. + +# Check some things and print warnings if this isn't going to work... +# +case ${SDE_TARGET:-ELF} in + [Cc][Oo][Ff][Ff]|[Oo][Cc][Ss]) echo '' + echo '' >&2 + echo WARNING: Do not build perl 5 with the SDE_TARGET set to >&2 + echo generate coff object - perl 5 must be built in the ELF >&2 + echo environment. >&2 + echo '' >&2 + echo '';; + [Ee][Ll][Ff]) : ;; + *) echo '' >&2 + echo 'Unknown SDE_TARGET value: '$SDE_TARGET >&2 + echo '' >&2 ;; +esac + +case `uname -r` in + [789]*) : ;; + *) echo '' + echo '' >&2 + echo WARNING: Perl 5 requires shared library support, it cannot >&2 + echo be built on releases of CX/UX prior to 7.0 with this hints >&2 + echo file. You\'ll have to do a separate port for the statically >&2 + echo linked COFF environment. >&2 + echo '' >&2 + echo '';; +esac + +# Internally at Concurrent, we use a source management tool which winds up +# giving us read-only copies of source trees that are mostly symbolic links. +# That upsets the perl build process when it tries to edit opcode.h and +# embed.h or touch perly.c or perly.h, so turn those files into "real" files +# when Configure runs. (If you already have "real" source files, this won't +# do anything). +# +if [ -x /usr/local/mkreal ] +then + for i in '.' '..' + do + for j in embed.h opcode.h perly.h perly.c + do + if [ -h $i/$j ] + then + ( cd $i ; /usr/local/mkreal $j ; chmod 666 $j ) + fi + done + done +fi + +# We DO NOT want -lmalloc +# +libswanted=`echo ' '$libswanted' ' | sed -e 's/ malloc / /'` + +# Stick the low-level elf library path in first. +# +glibpth="/usr/sde/elf/usr/lib $glibpth" + +# Need to use Concurrent cc for most of these options to be meaningful (if +# you want to get this to work with gcc, you're on your own :-). Passing +# -Bexport to the linker when linking perl is important because it leaves +# the interpreter internal symbols visible to the shared libs that will be +# loaded on demand (and will try to reference those symbols). The -u option +# to drag 'sigaction' into the perl main program is to make sure it gets +# defined for the posix shared library (for some reason sigaction is static, +# rather than being defined in libc.so.1). The 88110compat option makes sure +# the code will run on both 88100 and 88110 machines. The define is added to +# trigger a work around for a compiler bug which shows up in pp.c. +# +cc='/bin/cc -Xa -Qtarget=M88110compat -DCXUX_BROKEN_CONSTANT_CONVERT' +cccdlflags='-Zelf -Zpic' +ccdlflags='-Zelf -Zlink=dynamic -Wl,-Bexport -u sigaction' +lddlflags='-Zlink=so' + +# Configure imagines that it sees a pw_quota field, but it is really in a +# different structure than the one it thinks it is looking at. +d_pwquota='undef' + +# Configure sometimes finds what it believes to be ndbm header files on the +# system and imagines that we have the NDBM library, but we really don't. +# There is something there that once resembled ndbm, but it is purely +# for internal use in some tool and has been hacked beyond recognition +# (or even function :-) +# +i_ndbm='undef' + +# Don't use the perl malloc +# +d_mymalloc='undef' +usemymalloc='n' + +cat <<'EOM' >&4 + +WARNING: If you are using ksh to run the Configure script, you may find it +failing in mysterious ways (such as failing to find library routines which +are known to exist). Configure seems to push ksh beyond its limits +sometimes. Try using env to strip unnecessary things out of the environment +and run Configure with /sbin/sh. That sometimes seems to produce more +accurate results. + +EOM diff --git a/contrib/perl5/hints/cygwin32.sh b/contrib/perl5/hints/cygwin32.sh new file mode 100644 index 0000000..5853499 --- /dev/null +++ b/contrib/perl5/hints/cygwin32.sh @@ -0,0 +1,50 @@ +#! /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=\; +exe_ext='.exe' +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' +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' + +sitelib='/usr/local/lib/perl5/site_perl' +sitelibexp='/usr/local/lib/perl5/site_perl' +usrinc='/gnuwin32/H-i386-cygwin32/i386-cygwin32/include' diff --git a/contrib/perl5/hints/dcosx.sh b/contrib/perl5/hints/dcosx.sh new file mode 100644 index 0000000..c1b0d0a --- /dev/null +++ b/contrib/perl5/hints/dcosx.sh @@ -0,0 +1,188 @@ +# hints/dcosx.sh +# Last modified: Thu Jan 16 11:38:12 EST 1996 +# Stephen Zander <stephen.zander@interlock.mckesson.com> +# hints for DC/OSx (Pyramid) & SINIX (Seimens: dc/osx rebadged) +# Based on the hints/solaris_2.sh file + +# See man vfork. +usevfork=false + +d_suidsafe=define + +# Avoid all libraries in /usr/ucblib. +set `echo $glibpth | sed -e 's@/usr/ucblib@@'` +glibpth="$*" + +# Remove bad libraries. +# -lucb contains incompatible routines. +set `echo " $libswanted " | sed -e 's@ ucb @ @'` +libswanted="$*" + +# Here's another draft of the perl5/solaris/gcc sanity-checker. + +case $PATH in +*/usr/ucb*:/usr/bin:*|*/usr/ucb*:/usr/bin) cat <<END >&2 + +NOTE: /usr/ucb/cc does not function properly. +Remove /usr/ucb from your PATH. + +END +;; +esac + + +# Check that /dev/fd is mounted. If it is not mounted, let the +# user know that suid scripts may not work. +/usr/bin/df /dev/fd 2>&1 > /dev/null +case $? in +0) ;; +*) + cat <<END >&4 + +NOTE: Your system does not have /dev/fd mounted. If you want to +be able to use set-uid scripts you must ask your system administrator +to mount /dev/fd. + +END + ;; +esac + + +# See if libucb can be found in /usr/lib. If it is, warn the user +# that this may cause problems while building Perl extensions. +/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1 +case $? in +0) + cat <<END >&4 + +NOTE: libucb has been found in /usr/lib. libucb should reside in +/usr/ucblib. You may have trouble while building Perl extensions. + +END +;; +esac + + +# See if make(1) is GNU make(1). +# If it is, make sure the setgid bit is not set. +make -v > make.vers 2>&1 +if grep GNU make.vers > /dev/null 2>&1; then + tmp=`/usr/bin/ksh -c "whence make"` + case "`/usr/bin/ls -l $tmp`" in + ??????s*) + cat <<END >&2 + +NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id +bit set. You must either rearrange your PATH to put /usr/ccs/bin before the +GNU utilities or you must ask your system administrator to disable the +set-group-id bit on GNU make. + +END + ;; + esac +fi +rm -f make.vers + +# If the C compiler is gcc: +# - check the fixed-includes +# - check as(1) and ld(1), they should not be GNU +# If the C compiler is not gcc: +# - check as(1) and ld(1), they should not be GNU +# - increase the optimizing level to prevent object size warnings +# +# Watch out in case they have not set $cc. +case "`${cc:-cc} -v 2>&1`" in +*gcc*) + # + # Using gcc. + # + #echo Using gcc + + # Get gcc to share its secrets. + echo 'main() { return 0; }' > try.c + verbose=`${cc:-cc} -v -o try try.c 2>&1` + rm -f try try.c + tmp=`echo "$verbose" | grep '^Reading' | + awk '{print $NF}' | sed 's/specs$/include/'` + + # Determine if the fixed-includes look like they'll work. + # Doesn't work anymore for gcc-2.7.2. + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + case $verbose in + */usr/ccs/bin/as*) ;; + *) + cat <<END >&2 + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +You must arrange to use /usr/ccs/bin/as, perhaps by setting +GCC_EXEC_PREFIX or by including -B/usr/ccs/bin in your cc command. + +END + ;; + esac + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + case $verbose in + */usr/ccs/bin/ld*) ;; + *) + cat <<END >&2 + +NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl. +You must arrange to use /usr/ccs/bin/ld, perhaps by setting +GCC_EXEC_PREFIX or by including -B/usr/ccs/bin in your cc command. + +END + ;; + esac + + ;; #using gcc +*) + optimize='-O -K Olimit:3064' + # + # Not using gcc. + # + #echo Not using gcc + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + case `as --version < /dev/null 2>&1` in + *GNU*) + cat <<END >&2 + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +You must arrange to use /usr/ccs/bin, perhaps by adding it to the +beginning of your PATH. + +END + ;; + esac + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + case `ld --version < /dev/null 2>&1` in + *GNU*) + cat <<END >&2 + +NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl. +You must arrange to use /usr/ccs/bin, perhaps by adding it to the +beginning of your PATH + +END + ;; + esac + + ;; #not using gcc +esac + +# as --version or ld --version might dump core. +rm -f core + +# DC/OSx hides certain functions in a libc that looks dynamic but isn't +# because of this we reinclude -lc when building dynamic extenstions +libc='/usr/ccs/lib/libc.so' +lddlflags='-G -lc' + +# DC/OSx gets overenthusiastic with symbol removal when building dynamically +ccdlflags='-Blargedynsym' + +# System malloc is safer when using third part libs +usemymalloc='n' diff --git a/contrib/perl5/hints/dec_osf.sh b/contrib/perl5/hints/dec_osf.sh new file mode 100644 index 0000000..a531ea8 --- /dev/null +++ b/contrib/perl5/hints/dec_osf.sh @@ -0,0 +1,334 @@ +# hints/dec_osf.sh + +# * If you want to debug perl or want to send a +# stack trace for inclusion into an bug report, call +# Configure with the additional argument -Doptimize=-g2 +# or uncomment this assignment to "optimize": +# +#optimize=-g2 +# +# If you want both to optimise and debug with the DEC cc +# you must have -g3, e.g. "-O4 -g3", and (re)run Configure. +# +# * gcc can always have both -g and optimisation on. +# +# * debugging optimised code, no matter what compiler +# one is using, can be surprising and confusing because of +# the optimisation tricks like code motion, code removal, +# loop unrolling, and inlining. The source code and the +# executable code simply do not agree any more while in +# mid-execution, the optimiser only cares about the results. +# +# * Configure will automatically add the often quoted +# -DDEBUGGING for you if the -g is specified. +# +# * There is even more optimisation available in the new +# (GEM) DEC cc: -O5 and -fast. "man cc" will tell more about them. +# The jury is still out whether either or neither help for Perl +# and how much. Based on very quick testing, -fast boosts +# raw data copy by about 5-15% (-fast brings in, among other +# things, inlined, ahem, fast memcpy()), while on the other +# hand searching things (index, m//, s///), seems to get slower. +# Your mileage will vary. +# +# * The -std is needed because the following compiled +# without the -std and linked with -lm +# +# #include <math.h> +# #include <stdio.h> +# int main(){short x=10,y=sqrt(x);printf("%d\n",y);} +# +# will in Digital UNIX 3.* and 4.0b print 0 -- and in Digital +# UNIX 4.0{,a} dump core: Floating point exception in the printf(), +# the y has become a signaling NaN. +# +# * Compilation warnings like: +# +# "Undefined the ANSI standard macro ..." +# +# can be ignored, at least while compiling the POSIX extension +# and especially if using the sfio (the latter is not a standard +# part of Perl, never mind if it says little to you). +# + +# If using the DEC compiler we must find out the DEC compiler style: +# the style changed between Digital UNIX (aka DEC OSF/1) 3 and +# Digital UNIX 4. The old compiler was originally from Ultrix and +# the MIPS company, the new compiler is originally from the VAX world +# and it is called GEM. Many of the options we are going to use depend +# on the compiler style. + +# do NOT, I repeat, *NOT* take away those leading tabs + # reset + _DEC_uname_r= + _DEC_cc_style= + # set + _DEC_uname_r=`uname -r` + # _DEC_cc_style set soon below +# Configure Black Magic (TM) + +case "$cc" in +*gcc*) ;; # pass +*) # compile something small: taint.c is fine for this. + # the main point is the '-v' flag of 'cc'. + case "`cc -v -I. -c taint.c -o /tmp/taint$$.o 2>&1`" in + */gemc_cc*) # we have the new DEC GEM CC + _DEC_cc_style=new + ;; + *) # we have the old MIPS CC + _DEC_cc_style=old + ;; + esac + # cleanup + rm -f /tmp/taint$$.o + ;; +esac + +# be nauseatingly ANSI +case "$cc" in +*gcc*) ccflags="$ccflags -ansi" + ;; +*) ccflags="$ccflags -std" + ;; +esac + +# for gcc the Configure knows about the -fpic: +# position-independent code for dynamic loading + +# we want optimisation + +case "$optimize" in +'') case "$cc" in + *gcc*) + optimize='-O3' ;; + *) case "$_DEC_cc_style" in + new) optimize='-O4' + ccflags="$ccflags -fprm d -ieee" + ;; + old) optimize='-O2 -Olimit 3200' ;; + esac + ccflags="$ccflags -D_INTRINSICS" + ;; + esac + ;; +esac + +# Make glibpth agree with the compiler suite. Note that /shlib +# is not here. That's on purpose. Even though that's where libc +# really lives from V4.0 on, the linker (and /sbin/loader) won't +# look there by default. The sharable /sbin utilities were all +# built with "-Wl,-rpath,/shlib" to get around that. This makes +# no attempt to figure out the additional location(s) searched by +# gcc, since not all versions of gcc are easily coerced into +# revealing that information. +glibpth="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc" +glibpth="$glibpth /usr/lib /usr/local/lib /var/shlib" + +# dlopen() is in libc +libswanted="`echo $libswanted | sed -e 's/ dl / /'`" + +# libPW contains nothing useful for perl +libswanted="`echo $libswanted | sed -e 's/ PW / /'`" + +# libnet contains nothing useful for perl here, and doesn't work +libswanted="`echo $libswanted | sed -e 's/ net / /'`" + +# libbsd contains nothing used by perl that is not already in libc +libswanted="`echo $libswanted | sed -e 's/ bsd / /'`" + +# libc need not be separately listed +libswanted="`echo $libswanted | sed -e 's/ c / /'`" + +# ndbm is already in libc +libswanted="`echo $libswanted | sed -e 's/ ndbm / /'`" + +# the basic lddlflags used always +lddlflags='-shared -expect_unresolved "*"' + +# Fancy compiler suites use optimising linker as well as compiler. +# <spider@Orb.Nashua.NH.US> +case "$_DEC_uname_r" in +*[123].*) # old loader + lddlflags="$lddlflags -O3" + ;; +*) lddlflags="$lddlflags $optimize -msym" + # -msym: If using a sufficiently recent /sbin/loader, + # keep the module symbols with the modules. + ;; +esac +# Yes, the above loses if gcc does not use the system linker. +# If that happens, let me know about it. <jhi@iki.fi> + + +# If debugging or (old systems and doing shared) +# then do not strip the lib, otherwise, strip. +# As noted above the -DDEBUGGING is added automagically by Configure if -g. +case "$optimize" in + *-g*) ;; # left intentionally blank +*) case "$_DEC_uname_r" in + *[123].*) + case "$useshrplib" in + false|undef|'') lddlflags="$lddlflags -s" ;; + esac + ;; + *) lddlflags="$lddlflags -s" + ;; + esac + ;; +esac + +if [ "X$usethreads" = "X$define" ]; then + # Threads interfaces changed with V4.0. + case "$_DEC_uname_r" in + *[123].*) libswanted="$libswanted pthreads mach exc c_r" + ccflags="-threads $ccflags" + ;; + *) libswanted="$libswanted pthread exc" + ccflags="-pthread $ccflags" + ;; + esac + usemymalloc='n' +fi + +# +# Make embedding in things like INN and Apache more memory friendly. +# Keep it overridable on the Configure command line, though, so that +# "-Uuseshrplib" prevents this default. +# + +# This or the glibpth change above breaks the build. Commented out +# for this snapshot. +#case "$_DEC_cc_style.$useshrplib" in +# new.) useshrplib="$define" ;; +#esac + +# +# Unset temporary variables no more needed. +# + +unset _DEC_cc_style +unset _DEC_uname_r + +# +# History: +# +# perl5.004_57: +# +# 19-Dec-1997 Spider Boardman <spider@Orb.Nashua.NH.US> +# +# * Newer Digial UNIX compilers enforce signaling for NaN without +# -ieee. Added -fprm d at the same time since it's friendlier for +# embedding. +# +# * Fixed the library search path to match cc, ld, and /sbin/loader. +# +# * Default to building -Duseshrplib on newer systems. -Uuseshrplib +# still overrides. +# +# * Fix -pthread additions for useshrplib. ld has no -pthread option. +# +# +# perl5.004_04: +# +# 19-Sep-1997 Spider Boardman <spider@Orb.Nashua.NH.US> +# +# * libnet on Digital UNIX is for JAVA, not for sockets. +# +# +# perl5.003_28: +# +# 22-Feb-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * Restructuring Spider's suggestions. +# +# * Older Digital UNIXes cannot handle -Olimit ... for $lddlflags. +# +# * ld -s cannot be used in older Digital UNIXes when doing shared. +# +# +# 21-Feb-1997 Spider Boardman <spider@Orb.Nashua.NH.US> +# +# * -hidden removed. +# +# * -DSTANDARD_C removed. +# +# * -D_INTRINSICS added. (that -fast does not seem to buy much confirmed) +# +# * odbm not in libc, only ndbm. Therefore dbm back to $libswanted. +# +# * -msym for the newer runtime loaders. +# +# * $optimize also in $lddflags. +# +# +# perl5.003_27: +# +# 18-Feb-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * unset _DEC_cc_style and more commentary on -std. +# +# +# perl5.003_26: +# +# 15-Feb-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * -std and -ansi. +# +# +# perl5.003_24: +# +# 30-Jan-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * Fixing the note on -DDEBUGGING. +# +# * Note on -O5 -fast. +# +# +# perl5.003_23: +# +# 26-Jan-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * Notes on how to do both optimisation and debugging. +# +# +# 25-Jan-1997 Jarkko Hietaniemi <jhi@iki.fi> +# +# * Remove unneeded libraries from $libswanted: PW, bsd, c, dbm +# +# * Restructure the $lddlflags build. +# +# * $optimize based on which compiler we have. +# +# +# perl5.003_22: +# +# 23-Jan-1997 Achim Bohnet <ach@rosat.mpe-garching.mpg.de> +# +# * Added comments 'how to create a debugging version of perl' +# +# * Fixed logic of this script to prevent stripping of shared +# objects by the loader (see ld man page for -s) is debugging +# is set via the -g switch. +# +# +# 21-Jan-1997 Achim Bohnet <ach@rosat.mpe-garching.mpg.de> +# +# * now 'dl' is always removed from libswanted. Not only if +# optimize is an empty string. +# +# +# 17-Jan-1997 Achim Bohnet <ach@rosat.mpe-garching.mpg.de> +# +# * Removed 'dl' from libswanted: When the FreePort binary +# translator for Sun binaries is installed Configure concludes +# that it should use libdl.x.yz.fpx.so :-( +# Because the dlopen, dlclose,... calls are in the +# C library it not necessary at all to check for the +# dl library. Therefore dl is removed from libswanted. +# +# +# 1-Jan-1997 Achim Bohnet <ach@rosat.mpe-garching.mpg.de> +# +# * Set -Olimit to 3200 because perl_yylex.c got too big +# for the optimizer. +# diff --git a/contrib/perl5/hints/dgux.sh b/contrib/perl5/hints/dgux.sh new file mode 100644 index 0000000..03b285d --- /dev/null +++ b/contrib/perl5/hints/dgux.sh @@ -0,0 +1,141 @@ +# $Id: dgux.sh,v 1.8 1996-11-29 18:16:43-05 roderick Exp $ + +# This is a hints file for DGUX, which is Data General's Unix. It was +# originally developed with version 5.4.3.10 of the OS, and then was +# later updated running under version 4.11.2 (running on m88k hardware). +# The gross features should work with versions going back to 2.nil but +# some tweaking will probably be necessary. +# +# DGUX is a SVR4 derivative. It ships with gcc as the standard +# compiler. Since version 3.0 it has shipped with Perl 4.036 +# installed in /usr/bin, which is kind of neat. Be careful when you +# install that you don't overwrite the system version, though (by +# answering yes to the question about installing perl as /usr/bin/perl), +# as it would suck to try to get support if the vendor learned that you +# were physically replacing the system binaries. +# +# Be aware that if you opt to use dynamic loading you'll need to set +# your $LD_LIBRARY_PATH to include the source directory when you build, +# test and install the software. +# +# -Roderick Schertler <roderick@argon.org> + + +# Here are the things from some old DGUX hints files which are different +# from what's in here now. I don't know the exact reasons that most of +# these settings were in the hints files, presumably they can be chalked +# up to old Configure inadequacies and changes in the OS headers and the +# like. These settings might make a good place to start looking if you +# have problems. +# +# This was specified the the 4.036 hints file. That hints file didn't +# say what version of the OS it was developed using. +# +# cppstdin='/lib/cpp' +# +# The 4.036 and 5.001 hints files both contained these. The 5.001 hints +# file said it was developed with version 2.01 of DGUX. +# +# gidtype='gid_t' +# groupstype='gid_t' +# uidtype='uid_t' +# d_index='define' +# cc='gcc' +# +# These were peculiar to the 5.001 hints file. +# +# ccflags='-D_POSIX_SOURCE -D_DGUX_SOURCE' +# +# # an ugly hack, since the Configure test for "gcc -P -" hangs. +# # can't just use 'cppstdin', since our DG has a broken cppstdin :-( +# cppstdin=`cd ..; pwd`/cppstdin +# cpprun=`cd ..; pwd`/cppstdin +# +# One last note: The 5.001 hints file said "you don't want to use +# /usr/ucb/cc" in the place at which it set cc to gcc. That in +# particular baffles me, as I used to have 2.01 loaded and my memory +# is telling me that even then /usr/ucb was a symlink to /usr/bin. + + +# The standard system compiler is gcc, but invoking it as cc changes its +# behavior. I have to pick one name or the other so I can get the +# dynamic loading switches right (they vary depending on this). I'm +# picking gcc because there's no way to get at the optimization options +# and so on when you call it cc. +case $cc in + '') + cc=gcc + case $optimize in + '') optimize=-O2;; + esac + ;; +esac + +usevfork=true + +# DG has this thing set up with symlinks which point to different places +# depending on environment variables (see elink(5)) and the compiler and +# related tools use them to access different development environments +# (COFF, ELF, m88k BCS and so on), see sde(5). The upshot, however, is +# that when a normal program tries to access one of these elinks it sees +# no such file (like stat()ting a mis-directed symlink). Setting +# $plibpth to explicitly include the place to which the elinks point +# allows Configure to find libraries which vary based on the development +# environment. +# +# Starting with version 4.10 (the first time the OS supported Intel +# hardware) all libraries are accessed with this mechanism. +# +# The default $TARGET_BINARY_INTERFACE changed with version 4.10. The +# system now comes with a link named /usr/sde/default which points to +# the proper entry, but older versions lacked this and used m88kdgux +# directly. + +: && sde_path=${SDE_PATH:-/usr}/sde # hide from Configure +while : # dummy loop +do + if [ -n "$TARGET_BINARY_INTERFACE" ] + then set X "$TARGET_BINARY_INTERFACE" + else set X default dg m88k_dg ix86_dg m88kdgux m88kdguxelf + fi + shift + default_sde=$1 + for sde + do + [ -d "$sde_path/$sde" ] && break 2 + done + cat <<END >&2 + +NOTE: I can't figure out what SDE is used by default on this machine (I +didn't find a likely directory under $sde_path). This is bad news. If +this is a R4.10 or newer system I'm not going to be able to find any of +your libraries, if this system is R3.10 or older I won't be able to find +the math library. You should re-run Configure with the environment +variable TARGET_BINARY_INTERFACE set to the proper value for this +machine, see sde(5) and the notes in hints/dgux.sh. + +END + sde=$default_sde + break +done + +plibpth="$plibpth $sde_path/$sde/usr/lib" +unset sde_path default_sde sde + +# Many functions (eg, gethostent(), killpg(), getpriority(), setruid() +# dbm_*(), and plenty more) are defined in -ldgc. Usually you don't +# need to know this (it seems that libdgc.so is searched automatically +# by ld), but Configure needs to check it otherwise it will report all +# those functions as missing. +libswanted="dgc $libswanted" + +# Dynamic loading works using the dlopen() functions. Note that dlfcn.h +# used to be broken, it declared _dl*() rather than dl*(). This was the +# case up to 3.10, it has been fixed in 4.11. I'm not sure if it was +# fixed in 4.10. If you have the older header just ignore the warnings +# (since pointers and integers have the same format on m88k). +usedl=true +# For cc rather than gcc the flags would be `-K PIC' for compiling and +# -G for loading. I haven't tested this. +cccdlflags=-fpic +lddlflags=-shared diff --git a/contrib/perl5/hints/dos_djgpp.sh b/contrib/perl5/hints/dos_djgpp.sh new file mode 100644 index 0000000..73bae63 --- /dev/null +++ b/contrib/perl5/hints/dos_djgpp.sh @@ -0,0 +1,59 @@ +# hints file for dos/djgpp v2.xx +# Original by Laszlo Molnar <molnarl@cdata.tvnet.hu> + +# 971015 - archname changed from 'djgpp' to 'dos-djgpp' +# 971210 - threads support + +archname='dos-djgpp' +archobjs='djgpp.o' +path_sep=\; +startsh="#! /bin/sh" + +cc='gcc' +ld='gcc' +usrinc="$DJDIR/include" + +libpth="$DJDIR/lib" +libc="$libpth/libc.a" + +so='none' +usedl='n' + +firstmakefile='GNUmakefile' +exe_ext='.exe' + +randbits=31 +lns='cp' + +usenm='true' + +d_link='undef' # these are empty functions in libc.a +d_symlink='undef' +d_fork='undef' +d_pipe='undef' + +startperl='#!perl' + +case "X$optimize" in + X) + optimize="-O2 -malign-loops=2 -malign-jumps=2 -malign-functions=2" + ;; +esac +ldflags='-s' +usemymalloc='n' +timetype='time_t' + +prefix=$DJDIR +privlib=$prefix/lib/perl5 +archlib=$privlib +sitelib=$privlib/site +sitearch=$sitelib + +eagain='EAGAIN' +rd_nodata='-1' + +if [ "X$usethreads" = "X$define" ]; then + set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'` + shift + libswanted="$*" +fi diff --git a/contrib/perl5/hints/dynix.sh b/contrib/perl5/hints/dynix.sh new file mode 100644 index 0000000..4bdb804 --- /dev/null +++ b/contrib/perl5/hints/dynix.sh @@ -0,0 +1,7 @@ +# If this doesn't work, try specifying 'none' for hints. +d_castneg=undef +libswanted=`echo $libswanted | sed -e 's/socket /socket seq /'` + +# Reported by Craig Milo Rogers <Rogers@ISI.EDU> +# Date: Tue, 30 Jan 96 15:29:26 PST +d_casti32=undef diff --git a/contrib/perl5/hints/dynixptx.sh b/contrib/perl5/hints/dynixptx.sh new file mode 100644 index 0000000..78a45e4 --- /dev/null +++ b/contrib/perl5/hints/dynixptx.sh @@ -0,0 +1,24 @@ +# Sequent Dynix/Ptx v. 4 hints +# Created 1996/03/15 by Brad Howerter, bhower@wgc.woodward.com +# Use Configure -Dcc=gcc to use gcc. + +# cc wants -G for dynamic loading +lddlflags='-G' + +# Remove inet to avoid this error in Configure, which causes Configure +# to be unable to figure out return types: +# dynamic linker: ./ssize: can't find libinet.so, +# link with -lsocket instead of -linet + +libswanted=`echo $libswanted | sed -e 's/ inet / /'` + +# Configure defaults to usenm='y', which doesn't work very well +usenm='n' + +# Reported by bruce@aps.org ("Bruce P. Schuck") as needed for +# DYNIX/ptx 4.0 V4.2.1 to get socket i/o to work +# Not defined by default in case they break other versions. +# These probably need to be worked into a piece of code that +# checks for the need for this setting. +# cppflags='-Wc,+abi-socket -I/usr/local/include' +# ccflags='-Wc,+abi-socket -I/usr/local/include' diff --git a/contrib/perl5/hints/epix.sh b/contrib/perl5/hints/epix.sh new file mode 100644 index 0000000..b91537a --- /dev/null +++ b/contrib/perl5/hints/epix.sh @@ -0,0 +1,75 @@ +# epix.sh +# Hint file for EP/IX on CDC RISC boxes. +# +# From: Stanley Donald Capelik <sd9sdc@hp100.den.mmc.com> +# Modified by Andy Dougherty <doughera@lafcol.lafayette.edu> +# Last modified: Mon May 8 15:29:18 EDT 1995 +# +# This hint file appears to be based on the svr4 hints for perl5.000, +# with some CDC-specific additions. I've tried to updated it to +# match the 5.001 svr4 hints, which allow for dynamic loading, +# but I have no way of testing the resulting file. +# +# There were also some contradictions that I've tried to straighten +# out, but I'm not sure I got them all right. +# +# Edit config.sh to change shmattype from 'char *' to 'void *'" + +# Use Configure -Dcc=gcc to use gcc. +case "$cc" in +'') cc='/bin/cc3.11' + test -f $cc || cc='/usr/ccs/bin/cc' + ;; +esac + +usrinc='/svr4/usr/include' + +# Various things that Configure apparently doesn't get right. +strings='/svr4/usr/include/string.h' +timeincl='/svr4/usr/include/sys/time.h ' +libc='/svr4/usr/lib/libc.a' +glibpth="/svr4/usr/lib /svr4/usr/lib/cmplrs/cc /usr/ccs/lib /svr4/lib /svr4/usr/ucblib $glibpth" +osname='epix2' +archname='epix2' +d_suidsafe='define' # "./Configure -d" can't figure this out easilly +d_flock='undef' + +# Old version had this, but I'm not sure why since the old version +# also mucked around with libswanted. This is also definitely wrong +# if the user is trying to use DB_File or GDBM_File. +# libs='-lsocket -lnsl -ldbm -ldl -lc -lcrypt -lm -lucb' + +# We include support for using libraries in /usr/ucblib, but the setting +# of libswanted excludes some libraries found there. You may want to +# prevent "ucb" from being removed from libswanted and see if perl will +# build on your system. +ldflags='-non_shared -systype svr4 -L/svr4/usr/lib -L/svr4/usr/lib/cmplrs/cc -L/usr/ccs/lib -L/svr4/usr/ucblib' +ccflags='-systype svr4 -D__STDC__=0 -I/svr4/usr/include -I/svr4/usr/ucbinclude' +cppflags='-D__STDC__=0 -I/svr4/usr/include -I/svr4/usr/ucbinclude' + +# Don't use problematic libraries: + +libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'` +# libmalloc.a - Probably using Perl's malloc() anyway. +# libucb.a - Remove it if you have problems ld'ing. We include it because +# it is needed for ODBM_File and NDBM_File extensions. +if [ -r /usr/ucblib/libucb.a ]; then # If using BSD-compat. library: + # Use the "native" counterparts, not the BSD emulation stuff: + d_bcmp='undef'; d_bcopy='undef'; d_bzero='undef'; d_safebcpy='undef' + d_index='undef'; d_killpg='undef'; d_getprior='undef'; d_setprior='undef' + d_setlinebuf='undef'; d_setregid='undef'; d_setreuid='undef' +fi + +lddlflags="-G $ldflags" # Probably needed for dynamic loading +# We _do_ want the -L paths in ldflags, but we don't want the -non_shared. +lddlflags=`echo $lddlflags | sed 's/-non_shared//'` + +cat <<'EOM' >&4 + +If you wish to use dynamic linking, you must use + LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH +or + setenv LD_LIBRARY_PATH `pwd` +before running make. + +EOM diff --git a/contrib/perl5/hints/esix4.sh b/contrib/perl5/hints/esix4.sh new file mode 100644 index 0000000..3d3145d --- /dev/null +++ b/contrib/perl5/hints/esix4.sh @@ -0,0 +1,41 @@ +# hints/esix4.sh +# Original esix4 hint file courtesy of +# Kevin O'Gorman ( kevin@kosman.UUCP, kevin%kosman.uucp@nrc.com ) +# +# Use Configure -Dcc=gcc to use gcc. +case "$cc" in +'') cc='/bin/cc' + test -f $cc || cc='/usr/ccs/bin/cc' + ;; +esac +ldflags='-L/usr/ccs/lib -L/usr/ucblib' +test -d /usr/local/man || mansrc='none' +ccflags='-I/usr/include -I/usr/ucbinclude' +libswanted=`echo " $libswanted " | sed -e 's/ malloc / /' ` +d_index='undef' +d_suidsafe=define +usevfork='false' +if test "$osvers" = "3.0"; then + d_gconvert='undef' + grep 'define[ ]*AF_OSI[ ]' /usr/include/sys/socket.h | grep '/\*[^*]*$' >/tmp/esix$$ + if test -s /tmp/esix$$; then + cat <<EOM >&2 + +WARNING: You are likely to have problems compiling the Socket extension +unless you fix the unterminated comment for AF_OSI in the file +/usr/include/sys/socket.h. + +EOM + fi + rm -f /tmp/esix$$ +fi + +cat <<'EOM' >&4 + +If you wish to use dynamic linking, you must use + LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH +or + setenv LD_LIBRARY_PATH `pwd` +before running make. + +EOM diff --git a/contrib/perl5/hints/fps.sh b/contrib/perl5/hints/fps.sh new file mode 100644 index 0000000..7726790 --- /dev/null +++ b/contrib/perl5/hints/fps.sh @@ -0,0 +1 @@ +ccflags="$ccflags -J" diff --git a/contrib/perl5/hints/freebsd.sh b/contrib/perl5/hints/freebsd.sh new file mode 100644 index 0000000..0f2a5a5 --- /dev/null +++ b/contrib/perl5/hints/freebsd.sh @@ -0,0 +1,155 @@ +# Original based on info from +# Carl M. Fongheiser <cmf@ins.infonet.net> +# Date: Thu, 28 Jul 1994 19:17:05 -0500 (CDT) +# +# Additional 1.1.5 defines from +# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net> +# Date: Wed, 28 Sep 1994 00:37:46 +0100 (MET) +# +# Additional 2.* defines from +# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net> +# Date: Sat, 8 Apr 1995 20:53:41 +0200 (MET DST) +# +# Additional 2.0.5 and 2.1 defined from +# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net> +# Date: Fri, 12 May 1995 14:30:38 +0200 (MET DST) +# +# Additional 2.2 defines from +# Mark Murray <mark@grondar.za> +# Date: Wed, 6 Nov 1996 09:44:58 +0200 (MET) +# +# Modified to ensure we replace -lc with -lc_r, and +# to put in place-holders for various specific hints. +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Date: Tue Mar 10 16:07:00 EST 1998 +# +# The two flags "-fpic -DPIC" are used to indicate a +# will-be-shared object. Configure will guess the -fpic, (and the +# -DPIC is not used by perl proper) but the full define is included to +# be consistent with the FreeBSD general shared libs building process. +# +# setreuid and friends are inherently broken in all versions of FreeBSD +# before 2.1-current (before approx date 4/15/95). It is fixed in 2.0.5 +# and what-will-be-2.1 +# + +case "$osvers" in +0.*|1.0*) + usedl="$undef" + ;; +1.1*) + malloctype='void *' + groupstype='int' + d_setregid='undef' + d_setreuid='undef' + d_setrgid='undef' + d_setruid='undef' + ;; +2.0-release*) + d_setregid='undef' + d_setreuid='undef' + d_setrgid='undef' + d_setruid='undef' + ;; +# +# Trying to cover 2.0.5, 2.1-current and future 2.1/2.2 +# It does not covert all 2.1-current versions as the output of uname +# changed a few times. +# +# Even though seteuid/setegid are available, they've been turned off +# because perl isn't coded with saved set[ug]id variables in mind. +# In addition, a small patch is requried to suidperl to avoid a security +# problem with FreeBSD. +# +2.0.5*|2.0-built*|2.1*) + usevfork='true' + usemymalloc='n' + d_setregid='define' + d_setreuid='define' + d_setegid='undef' + d_seteuid='undef' + test -r ./broken-db.msg && . ./broken-db.msg + ;; +# +# 2.2 and above have phkmalloc(3). +# don't use -lmalloc (maybe there's an old one from 1.1.5.1 floating around) +2.2*) + usevfork='true' + usemymalloc='n' + libswanted=`echo $libswanted | sed 's/ malloc / /'` + d_setregid='define' + d_setreuid='define' + d_setegid='undef' + d_seteuid='undef' + ;; +# +# Guesses at what will be needed after 2.2 +*) usevfork='true' + usemymalloc='n' + libswanted=`echo $libswanted | sed 's/ malloc / /'` + ;; +esac + +# Dynamic Loading flags have not changed much, so they are separated +# out here to avoid duplicating them everywhere. +case "$osvers" in +0.*|1.0*) ;; + +3.0*) if [ -e /usr/lib/aout ]; then + libpth="/usr/lib/aout /usr/local/lib /usr/lib" + glibpth="/usr/lib/aout /usr/local/lib /usr/lib" + fi + cccdlflags='-DPIC -fpic' + lddlflags='-Bshareable' + ;; + +*) cccdlflags='-DPIC -fpic' + lddlflags="-Bshareable $lddlflags" + ;; +esac + +cat <<'EOM' >&4 + +Some users have reported that Configure halts when testing for +the O_NONBLOCK symbol with a syntax error. This is apparently a +sh error. Rerunning Configure with ksh apparently fixes the +problem. Try + ksh Configure [your options] + +EOM + +# XXX EXPERIMENTAL A.D. 03/09/1998 +# XXX This script UU/usethreads.cbu will get 'called-back' by Configure +# XXX after it has prompted the user for whether to use threads. +cat > UU/usethreads.cbu <<'EOSH' +case "$usethreads" in +$define) + case "$osvers" in + 3.0*) ldflags="-pthread $ldflags" + ;; + 2.2*) if [ ! -r /usr/lib/libc_r ]; then + cat <<'EOM' >&4 +POSIX threads are not supported by default on FreeBSD $uname_r. Follow the +instructions in 'man pthread' to build and install the needed libraries. +EOM + exit 1 + fi + set `echo X "$libswanted "| sed -e 's/ c / c_r /'` + shift + libswanted="$*" + # Configure will probably pick the wrong libc to use for nm + # scan. + # The safest quick-fix is just to not use nm at all. + usenm=false + ;; + *) cat <<'EOM' >&4 +It is not known if FreeBSD $uname_r supports POSIX threads or not. Consider +upgrading to the latest STABLE release. +EOM + exit 1 + ;; + esac + ;; +esac +EOSH +# XXX EXPERIMENTAL --end of call-back diff --git a/contrib/perl5/hints/genix.sh b/contrib/perl5/hints/genix.sh new file mode 100644 index 0000000..16b6879 --- /dev/null +++ b/contrib/perl5/hints/genix.sh @@ -0,0 +1 @@ +i_varargs=undef diff --git a/contrib/perl5/hints/greenhills.sh b/contrib/perl5/hints/greenhills.sh new file mode 100644 index 0000000..da6fcc9 --- /dev/null +++ b/contrib/perl5/hints/greenhills.sh @@ -0,0 +1 @@ +ccflags="$ccflags -X18" diff --git a/contrib/perl5/hints/hpux.sh b/contrib/perl5/hints/hpux.sh new file mode 100644 index 0000000..281f289 --- /dev/null +++ b/contrib/perl5/hints/hpux.sh @@ -0,0 +1,206 @@ +#! /bin/sh + +# hints/hpux.sh +# Perl Configure hints file for Hewlett-Packard's HP-UX 9.x and 10.x +# (Hopefully, 7.x through 11.x.) +# +# This file is based on hints/hpux_9.sh, Perl Configure hints file for +# Hewlett Packard HP-UX 9.x +# +# Use Configure -Dcc=gcc to use gcc. +# +# From: Jeff Okamoto <okamoto@corp.hp.com> +# and +# hints/hpux_10.sh, Perl Configure hints file for Hewlett Packard HP-UX 10.x +# From: Giles Lean <giles@nemeton.com.au> +# and +# Use #define CPU_* instead of comments for >= 10.x. +# Support PA1.2 under 10.x. +# Distinguish between PA2.0, PA2.1, etc. +# Distinguish between MC68020, MC68030, MC68040 +# Don't assume every OS != 10 is < 10, (e.g., 11). +# From: Chuck Phillips <cdp@fc.hp.com> + +# This version: August 15, 1997 +# Current maintainer: Jeff Okamoto <okamoto@corp.hp.com> + +#-------------------------------------------------------------------- +# Use Configure -Dcc=gcc to use gcc. +# Use Configure -Dprefix=/usr/local to install in /usr/local. +# +# You may have dynamic loading problems if the environment variable +# LDOPTS='-a archive'. Under >= 10.x, you can instead LDOPTS='-a +# archive_shared' to prefer archive libraries without requiring them. +# Regardless of HPUX release, in the "libs" variable or the ext.libs +# file, you can always give explicit path names to archive libraries +# that may not exist on the target machine. E.g., /usr/lib/libndbm.a +# instead of -lndbm. See also note below on ndbm. +# +# ALSO, bear in mind that gdbm and Berkely DB contain incompatible +# replacements for ndbm (and dbm) routines. If you want concurrent +# access to ndbm files, you need to make sure libndbm is linked in +# *before* gdbm and Berkely DB. Lastly, remember to check the +# "ext.libs" file which is *probably* messing up the order. Often, +# you can replace ext.libs with an empty file to fix the problem. +# +# If you get a message about "too much defining", as may happen +# in HPUX < 10, you might have to append a single entry to your +# ccflags: '-Wp,-H256000' +# NOTE: This is a single entry (-W takes the argument 'p,-H256000'). +#-------------------------------------------------------------------- + +# Turn on the _HPUX_SOURCE flag to get many of the HP add-ons +# regardless of compiler. For the HP ANSI C compiler, you may also +# want to include +e to enable "long long" and "long double". +# +# HP compiler flags to include (if at all) *both* as part of ccflags +# and cc itself so Configure finds (and builds) everything +# consistently: +# -Aa -D_HPUX_SOURCE +e +# +# Lastly, you may want to include the "-z" HP linker flag so that +# reading from a NULL pointer causes a SEGV. +ccflags="$ccflags -D_HPUX_SOURCE" + +# Check if you're using the bundled C compiler. This compiler doesn't support +# ANSI C (the -Aa flag) nor can it produce shared libraries. Thus we have +# to turn off dynamic loading. +case "$cc" in +'') if cc $ccflags -Aa 2>&1 | $contains 'option' >/dev/null + then + case "$usedl" in + '') usedl="$undef" + cat <<'EOM' >&4 + +The bundled C compiler can not produce shared libraries, so you will +not be able to use dynamic loading. + +EOM + ;; + esac + else + ccflags="$ccflags -Aa" # The add-on compiler supports ANSI C + fi + # For HP's ANSI C compiler, up to "+O3" is safe for everything + # except shared libraries (PIC code). Max safe for PIC is "+O2". + # Setting both causes innocuous warnings. + #optimize='+O3' + #cccdlflags='+z +O2' + optimize='-O' + ;; +esac + +# Even if you use gcc, prefer the HP math library over the GNU one. + +case "`$cc -v 2>&1`" in +"*gcc*" ) test -d /lib/pa1.1 && ccflags="$ccflags -L/lib/pa1.1" ;; +esac + +# Determine the architecture type of this system. +# Keep leading tab below -- Configure Black Magic -- RAM, 03/02/97 + xxOsRevMajor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f1`; + #xxOsRevMinor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f2`; +if [ "$xxOsRevMajor" -ge 10 ] +then + # This system is running >= 10.x + + # Tested on 10.01 PA1.x and 10.20 PA[12].x. Idea: Scan + # /usr/include/sys/unistd.h for matches with "#define CPU_* `getconf + # CPU_VERSION`" to determine CPU type. Note the part following + # "CPU_" is used, *NOT* the comment. + # + # ASSUMPTIONS: Numbers will continue to be defined in hex -- and in + # /usr/include/sys/unistd.h -- and the CPU_* #defines will be kept + # up to date with new CPU/OS releases. + xxcpu=`getconf CPU_VERSION`; # Get the number. + xxcpu=`printf '0x%x' $xxcpu`; # convert to hex + archname=`sed -n -e "s/^#[ \t]*define[ \t]*CPU_//p" /usr/include/sys/unistd.h | + sed -n -e "s/[ \t]*$xxcpu[ \t].*//p" | + sed -e s/_RISC/-RISC/ -e s/HP_// -e s/_/./`; +else + # This system is running <= 9.x + # Tested on 9.0[57] PA and [78].0 MC680[23]0. Idea: After removing + # MC6888[12] from context string, use first CPU identifier. + # + # ASSUMPTION: Only CPU identifiers contain no lowercase letters. + archname=`getcontext | tr ' ' '\012' | grep -v '[a-z]' | grep -v MC688 | + sed -e 's/HP-//' -e 1q`; + selecttype='int *' +fi + + +# Remove bad libraries that will cause problems +# (This doesn't remove libraries that don't actually exist) +# -lld is unneeded (and I can't figure out what it's used for anyway) +# -ldbm is obsolete and should not be used +# -lBSD contains BSD-style duplicates of SVR4 routines that cause confusion +# -lPW is obsolete and should not be used +# The libraries crypt, malloc, ndir, and net are empty. +# Although -lndbm should be included, it will make perl blow up if you should +# copy the binary to a system without libndbm.sl. See ccdlflags below. +set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ dbm @ @' -e 's@ BSD @ @' -e 's@ PW @ @'` +libswanted="$*" + +# By setting the deferred flag below, this means that if you run perl +# on a system that does not have the required shared library that you +# linked it with, it will die when you try to access a symbol in the +# (missing) shared library. If you would rather know at perl startup +# time that you are missing an important shared library, switch the +# comments so that immediate, rather than deferred loading is +# performed. Even with immediate loading, you can postpone errors for +# undefined (or multiply defined) routines until actual access by +# adding the "nonfatal" option. +# ccdlflags="-Wl,-E -Wl,-B,immediate $ccdlflags" +# ccdlflags="-Wl,-E -Wl,-B,immediate,-B,nonfatal $ccdlflags" +ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags" + +usemymalloc='y' +alignbytes=8 +# For native nm, you need "-p" to produce BSD format output. +nm_opt='-p' + +# When HP-UX runs a script with "#!", it sets argv[0] to the script name. +toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' + +# If your compile complains about FLT_MIN, uncomment the next line +# POSIX_cflags='ccflags="$ccflags -DFLT_MIN=1.17549435E-38"' + +# Comment this out if you don't want to follow the SVR4 filesystem layout +# that HP-UX 10.0 uses +case "$prefix" in +'') prefix='/opt/perl5' ;; +esac + +# HP-UX can't do setuid emulation offered by Configure +case "$d_dosuid" in +'') d_dosuid="$undef" ;; +esac + +# Date: Fri, 6 Sep 96 23:15:31 CDT +# From: "Daniel S. Lewart" <d-lewart@uiuc.edu> +# I looked through the gcc.info and found this: +# * GNU CC compiled code sometimes emits warnings from the HP-UX +# assembler of the form: +# (warning) Use of GR3 when frame >= 8192 may cause conflict. +# These warnings are harmless and can be safely ignored. + +# +# cppstdin and cpprun need the -Aa option if you use the unbundled +# ANSI C compiler (*not* the bundled K&R compiler or gcc) +# [XXX this should be enabled automatically by Configure, but isn't yet.] +# [XXX This is reported not to work. You may have to edit config.sh. +# After running Configure, set cpprun and cppstdin in config.sh, +# run "Configure -S" and then "make".] +# +case "$cppstdin" in +'') + case "$ccflags" in + *-Aa*) + cpprun="${cc:-cc} -E -Aa" + cppstdin="$cpprun" + cppminus='-' + cpplast='-' + ;; + esac + ;; +esac diff --git a/contrib/perl5/hints/i386.sh b/contrib/perl5/hints/i386.sh new file mode 100644 index 0000000..0a810ff --- /dev/null +++ b/contrib/perl5/hints/i386.sh @@ -0,0 +1 @@ +ldflags='-L/usr/ucblib' diff --git a/contrib/perl5/hints/irix_4.sh b/contrib/perl5/hints/irix_4.sh new file mode 100644 index 0000000..f5883f3 --- /dev/null +++ b/contrib/perl5/hints/irix_4.sh @@ -0,0 +1,24 @@ +#irix_4.sh +# Last modified Fri May 5 14:06:37 EDT 1995 +optimize='-O1' + +# Does Configure really get these wrong? Why? +d_voidsig=define +d_charsprf=undef + +case "$cc" in +*gcc*) ccflags="$ccflags -D_BSD_TYPES" ;; +*) ccflags="$ccflags -ansiposix -signed" ;; +esac + +# This hint due thanks Hershel Walters <walters@smd4d.wes.army.mil> +# Date: Tue, 31 Jan 1995 16:32:53 -0600 (CST) +# Subject: IRIX4.0.4(.5? 5.0?) problems +# I don't know if they affect versions of perl other than 5.000 or +# versions of IRIX other than 4.0.4. +# +cat <<'EOM' >&4 +If you have problems, you might have try including + -DSTANDARD_C -cckr +in ccflags. +EOM diff --git a/contrib/perl5/hints/irix_5.sh b/contrib/perl5/hints/irix_5.sh new file mode 100644 index 0000000..9d6e802 --- /dev/null +++ b/contrib/perl5/hints/irix_5.sh @@ -0,0 +1,34 @@ +# irix_5.sh +# Tue Jan 9 16:04:38 EST 1996 +# Add note about socket patch. +# +# Tue Jan 2 14:52:36 EST 1996 +# Apparently, there's a stdio bug that can lead to memory +# corruption using perl's malloc, but not SGI's malloc. +usemymalloc='n' + +ld=ld +i_time='define' + +case "$cc" in +*gcc*) ccflags="$ccflags -D_BSD_TYPES" ;; +*) ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4000" ;; +esac + +lddlflags="-shared" +# For some reason we don't want -lsocket -lnsl or -ldl. Can anyone +# contribute an explanation? +set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` +shift +libswanted="$*" + +# Date: Fri, 22 Dec 1995 11:49:17 -0800 +# From: Matthew Black <black@csulb.edu> +# Subject: sockets broken under IRIX 5.3? YES...how to fix +# Anyone attempting to use perl4 or perl5 with SGI IRIX 5.3 may discover +# that sockets are essentially broken. The syslog interface for perl also +# fails because it uses the broken socket interface. This problem was +# reported to SGI as bug #255347 and it can be fixed by installing +# patchSG0000596. The patch can be downloaded from Advantage OnLine (SGI's +# WWW server) or from the Support Advantage 9/95 Patch CDROM. Thanks to Tom +# Christiansen and others who provided assistance. diff --git a/contrib/perl5/hints/irix_6.sh b/contrib/perl5/hints/irix_6.sh new file mode 100644 index 0000000..384701f --- /dev/null +++ b/contrib/perl5/hints/irix_6.sh @@ -0,0 +1,190 @@ +# hints/irix_6.sh +# +# original from Krishna Sethuraman, krishna@sgi.com +# +# Modified Mon Jul 22 14:52:25 EDT 1996 +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# with help from Dean Roehrich <roehrich@cray.com>. +# cc -n32 update info from Krishna Sethuraman, krishna@sgi.com. +# additional update from Scott Henry, scotth@sgi.com + +# Futzed with by John Stoffel <jfs@fluent.com> on 4/24/1997 +# - assumes 'cc -n32' by default +# - tries to check for various compiler versions and do the right +# thing when it can +# - warnings turned off (-n32 messages): +# 1116 - non-void function should return a value +# 1048 - cast between pointer-to-object and pointer-to-function +# 1042 - operand types are incompatible + +# Tweaked by Chip Salzenberg <chip@perl.com> on 5/13/97 +# - don't assume 'cc -n32' if the n32 libm.so is missing + +# Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97 +# - POSIX threads knowledge by IRIX version + +# gcc-enabled by Kurt Starsinic <kstar@isinet.com> on 3/24/1998 + +# Use sh Configure -Dcc='cc -n32' to try compiling with -n32. +# or -Dcc='cc -n32 -mips3' (or -mips4) to force (non)portability +# Don't bother with -n32 unless you have the 7.1 or later compilers. +# But there's no quick and light-weight way to check in 6.2. + +# Let's assume we want to use 'cc -n32' by default, unless the +# necessary libm is missing (which has happened at least twice) +case "$cc" in +'') + if test -f /usr/lib32/libm.so + then + cc='cc -n32' + fi ;; +esac + +# Check for which compiler we're using + +case "$cc" in +*"cc -n32"*) + + # Perl 5.004_57 introduced new qsort code into pp_ctl.c that + # makes IRIX cc prior to 7.2.1 to emit bad code. + # so some serious hackery follows to set pp_ctl flags correctly. + + # Check for which version of the compiler we're running + case "`$cc -version 2>&1`" in + *7.0*) # Mongoose 7.0 + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1042,1048,1110,1116,1184 -OPT:Olimit=0" + optimize='none' + ;; + *7.1*|*7.2|*7.20) # Mongoose 7.1+ + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0" + optimize='-O3' +# This is a temporary fix for 5.005. +# Leave pp_ctl_cflags line at left margin for Configure. See +# hints/README.hints, especially the section +# =head2 Propagating variables to config.sh +pp_ctl_cflags='optimize=-O' + ;; + *7.*) # Mongoose 7.2.1+ + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=on" + optimize='-O3' + ;; + *6.2*) # Ragnarok 6.2 + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184" + optimize='none' + ;; + *) # Be safe and not optimize + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0" + optimize='none' + ;; + esac + + ld=ld + # perl's malloc can return improperly aligned buffer + usemymalloc='undef' + # NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker + ldflags=' -L/usr/local/lib32 -L/usr/local/lib' + cccdlflags=' ' + # From: David Billinghurst <David.Billinghurst@riotinto.com.au> + # If you get complaints about so_locations then change the following + # line to something like: + # lddlflags="-n32 -shared -check_registry /usr/lib32/so_locations" + lddlflags="-n32 -shared" + libc='/usr/lib32/libc.so' + plibpth='/usr/lib32 /lib32 /usr/ccs/lib' + nm_opt='-p' + nm_so_opt='-p' + ;; +*gcc*) + ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -D_POSIX_C_SOURCE" + optimize="-O3" + usenm='undef' + ;; +*) + # this is needed to force the old-32 paths + # since the system default can be changed. + ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100" + optimize='-O' + ;; +esac + +# We don't want these libraries. +# Socket networking is in libc, these are not installed by default, +# and just slow perl down. (scotth@sgi.com) +set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` +shift +libswanted="$*" + +# I have conflicting reports about the sun, crypt, bsd, and PW +# libraries on Irix 6.2. +# +# One user rerports: +# Don't need sun crypt bsd PW under 6.2. You *may* need to link +# with these if you want to run perl built under 6.2 on a 5.3 machine +# (I haven't checked) +# +# Another user reported that if he included those libraries, a large number +# of the tests failed (approx. 20-25) and he would get a core dump. To +# make things worse, test results were inconsistent, i.e., some of the +# tests would pass some times and fail at other times. +# The safest thing to do seems to be to eliminate them. +# +# Actually, the only libs that you want are '-lm'. Everything else +# you need is in libc. You do also need '-lbsd' if you choose not +# to use the -D_BSD_* defines. Note that as of 6.2 the only +# difference between '-lmalloc' and '-lc' malloc is the debugging +# and control calls, which aren't used by perl. -- scotth@sgi.com + +set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /' -e 's/ malloc / /'` +shift +libswanted="$*" + +if [ "X$usethreads" = "X$define" -o "X$usethreads" = "Xy" ]; then + if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then + uname_r=`uname -r` + case "`uname -r`" in + 5*|6.0|6.1) + echo >&4 "IRIX $uname_r does not have the POSIX threads." + echo >&4 "You should upgrade to at least IRIX 6.2 with pthread patches." + echo >&4 "Cannot continue, aborting." + exit 1 + ;; + 6.2) + echo >&4 "" +cat >&4 <<EOF +IRIX 6.2 $uname_r can have the POSIX threads. +The following IRIX patches (or their replacements) must, however, be installed: + + 1404 Irix 6.2 Posix 1003.1b man pages + 1645 IRIX 6.2 & 6.3 POSIX header file updates + 2000 Irix 6.2 Posix 1003.1b support modules + 2254 Pthread library fixes + 2401 6.2 all platform kernel rollup +IMPORTANT: + Without patch 2401, a kernel bug in IRIX 6.2 will + cause your machine to panic and crash when running + threaded perl. IRIX 6.3 and up should be OK. + + +Cannot continue, aborting. +EOF + exit 1 + ;; + 6.*|7.*) + echo >&4 "IRIX $uname_r should have the POSIX threads." + echo >&4 "But somehow you do not seem to have them installed." + echo >&4 "Cannot continue, aborting." + exit 1 + ;; + esac + unset uname_r + fi + # -lpthread needs to come before -lc but after other libraries such + # as -lgdbm and such like. We assume here that -lc is present in + # libswanted. If that fails to be true in future, then this can be + # changed to add pthread to the very end of libswanted. + set `echo X "$libswanted "| sed -e 's/ c / pthread /'` + ld="${cc:-cc}" + shift + libswanted="$*" + usemymalloc='n' +fi diff --git a/contrib/perl5/hints/irix_6_0.sh b/contrib/perl5/hints/irix_6_0.sh new file mode 100644 index 0000000..b0a3994 --- /dev/null +++ b/contrib/perl5/hints/irix_6_0.sh @@ -0,0 +1,51 @@ +# irix_6.sh +# from Krishna Sethuraman, krishna@sgi.com +# Date: Wed Jan 18 11:40:08 EST 1995 +# added `-32' to force compilation in 32-bit mode. +# otherwise, copied from irix_5.sh. + +# Perl built with this hints file under IRIX 6.0.1 passes +# all tests (`make test'). + +# Tue Jan 2 14:52:36 EST 1996 +# Apparently, there's a stdio bug that can lead to memory +# corruption using perl's malloc, but not SGI's malloc. +usemymalloc='n' + +ld=ld +i_time='define' +cc="cc -32" +ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" +lddlflags="-32 -shared" + +# We don't want these libraries. Anyone know why? +set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` +shift +libswanted="$*" +# +# The following might be of interest if you wish to try 64-bit mode: +# irix_6_64bit.sh +# Krishna Sethuraman, krishna@sgi.com +# taken from irix_5.sh . Changes from irix_5.sh: +# Olimit and nested comments (warning 1009) no longer accepted +# -OPT:fold_arith_limit so POSIX module will optimize +# no 64bit versions of sun, crypt, nsl, socket, dl dso's available +# as of IRIX 6.0.1 so omit those from libswanted line via `sed'. + +# perl 5 built with this hints file passes most tests (`make test'). +# Fails on op/subst test only. (built and tested under IRIX 6.0.1). + +# i_time='define' +# ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -woff 1009 -OPT:fold_arith_limit=1046" +# lddlflags="-shared" +# set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'` +# shift +# libswanted="$*" + +if [ "X$usethreads" = "X$define" ]; then + echo >&4 "IRIX 6.0 does not have POSIX threads." + echo >&4 "You should upgrade to at least IRIX 6.3." + echo >&4 "Cannot continue, aborting." + exit 1 +fi + diff --git a/contrib/perl5/hints/irix_6_1.sh b/contrib/perl5/hints/irix_6_1.sh new file mode 100644 index 0000000..1c54f77 --- /dev/null +++ b/contrib/perl5/hints/irix_6_1.sh @@ -0,0 +1,50 @@ +# irix_6.sh +# from Krishna Sethuraman, krishna@sgi.com +# Date: Wed Jan 18 11:40:08 EST 1995 +# added `-32' to force compilation in 32-bit mode. +# otherwise, copied from irix_5.sh. + +# Perl built with this hints file under IRIX 6.0.1 passes +# all tests (`make test'). + +# Tue Jan 2 14:52:36 EST 1996 +# Apparently, there's a stdio bug that can lead to memory +# corruption using perl's malloc, but not SGI's malloc. +usemymalloc='n' + +ld=ld +i_time='define' +cc="cc -32" +ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" +lddlflags="-32 -shared" + +# We don't want these libraries. Anyone know why? +set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` +shift +libswanted="$*" +# +# The following might be of interest if you wish to try 64-bit mode: +# irix_6_64bit.sh +# Krishna Sethuraman, krishna@sgi.com +# taken from irix_5.sh . Changes from irix_5.sh: +# Olimit and nested comments (warning 1009) no longer accepted +# -OPT:fold_arith_limit so POSIX module will optimize +# no 64bit versions of sun, crypt, nsl, socket, dl dso's available +# as of IRIX 6.0.1 so omit those from libswanted line via `sed'. + +# perl 5 built with this hints file passes most tests (`make test'). +# Fails on op/subst test only. (built and tested under IRIX 6.0.1). + +# i_time='define' +# ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -woff 1009 -OPT:fold_arith_limit=1046" +# lddlflags="-shared" +# set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'` +# shift +# libswanted="$*" + +if [ "X$usethreads" = "X$define" ]; then + echo >&4 "IRIX 6.1 does not have POSIX threads." + echo >&4 "You should upgrade to at least IRIX 6.3." + echo >&4 "Cannot continue, aborting." + exit 1 +fi diff --git a/contrib/perl5/hints/isc.sh b/contrib/perl5/hints/isc.sh new file mode 100644 index 0000000..cdfe91c --- /dev/null +++ b/contrib/perl5/hints/isc.sh @@ -0,0 +1,44 @@ +# isc.sh +# Interactive Unix Versions 3 and 4. +# Compile perl entirely in posix mode. +# Andy Dougherty doughera@lafcol.lafayette.edu +# Wed Oct 5 15:57:37 EDT 1994 +# +# Use Configure -Dcc=gcc to use gcc +# + +# We don't want to explicitly mention -lc (since we're using POSIX mode.) +# We also don't want -lx (the Xenix compatability libraries.) The only +# thing that it seems to pick up is chsize(), which has been reported to +# not work. chsize() can also be implemented via fcntl() in perl (if you +# define -D_SYSV3). We'll leave in -lPW since it's harmless. Some +# extension might eventually need it for alloca, though perl doesn't use +# it. + +set `echo X "$libswanted "| sed -e 's/ c / /' -e 's/ x / /'` +shift +libswanted="$*" + +case "$cc" in +*gcc*) ccflags="$ccflags -posix" + ldflags="$ldflags -posix" + ;; +*) ccflags="$ccflags -Xp -D_POSIX_SOURCE" + ldflags="$ldflags -Xp" + ;; +esac + +# getsockname() and getpeername() return 256 for no good reason +ccflags="$ccflags -DBOGUS_GETNAME_RETURN=256" + +# rename(2) can't rename long filenames +d_rename=undef + +# for ext/IPC/SysV/SysV.xs +ccflags="$ccflags -DPERL_ISC" + +# You can also include -D_SYSV3 to pick up "traditionally visible" +# symbols hidden by name-space pollution rules. This raises some +# compilation "redefinition" warnings, but they appear harmless. +# ccflags="$ccflags -D_SYSV3" + diff --git a/contrib/perl5/hints/isc_2.sh b/contrib/perl5/hints/isc_2.sh new file mode 100644 index 0000000..d8ca7dc --- /dev/null +++ b/contrib/perl5/hints/isc_2.sh @@ -0,0 +1,25 @@ +# isc_2.sh +# Interactive Unix Version 2.2 +# Compile perl entirely in posix mode. +# Andy Dougherty doughera@lafcol.lafayette.edu +# Wed Oct 5 15:57:37 EDT 1994 +# +# Use Configure -Dcc=gcc to use gcc +# +set `echo X "$libswanted "| sed -e 's/ c / /'` +shift +libswanted="$*" +case "$cc" in +*gcc*) ccflags="$ccflags -posix" + ldflags="$ldflags -posix" + ;; +*) ccflags="$ccflags -Xp -D_POSIX_SOURCE" + ldflags="$ldflags -Xp" + ;; +esac +# Compensate for conflicts in <net/errno.h> +doio_cflags='ccflags="$ccflags -DENOTSOCK=103"' +pp_sys_cflags='ccflags="$ccflags -DENOTSOCK=103"' + +# for ext/IPC/SysV/SysV.xs +ccflags="$ccflags -DPERL_ISC" diff --git a/contrib/perl5/hints/linux.sh b/contrib/perl5/hints/linux.sh new file mode 100644 index 0000000..545f50e --- /dev/null +++ b/contrib/perl5/hints/linux.sh @@ -0,0 +1,215 @@ +# hints/linux.sh +# Original version by rsanders +# Additional support by Kenneth Albanowski <kjahds@kjahds.com> +# +# ELF support by H.J. Lu <hjl@nynexst.com> +# Additional info from Nigel Head <nhead@ESOC.bitnet> +# and Kenneth Albanowski <kjahds@kjahds.com> +# +# Consolidated by Andy Dougherty <doughera@lafcol.lafayette.edu> +# +# Updated Thu Feb 8 11:56:10 EST 1996 + +# Updated Thu May 30 10:50:22 EDT 1996 by <doughera@lafcol.lafayette.edu> + +# Updated Fri Jun 21 11:07:54 EDT 1996 +# NDBM support for ELF renabled by <kjahds@kjahds.com> + +# No version of Linux supports setuid scripts. +d_suidsafe='undef' + +# perl goes into the /usr tree. See the Filesystem Standard +# available via anonymous FTP at tsx-11.mit.edu in +# /pub/linux/docs/linux-standards/fsstnd. +# Allow a command line override, e.g. Configure -Dprefix=/foo/bar +case "$prefix" in +'') prefix='/usr' ;; +esac + +# gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool. +ccflags="-Dbool=char -DHAS_BOOL $ccflags" + +# BSD compatability library no longer needed +# 'kaffe' has a /usr/lib/libnet.so which is not at all relevent for perl. +set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /'` +shift +libswanted="$*" + +# Configure may fail to find lstat() since it's a static/inline +# function in <sys/stat.h>. +d_lstat=define + +# Explanation? +case "$usemymalloc" in +'') usemymalloc='n' ;; +esac + +case "$optimize" in +'') optimize='-O2' ;; +esac + +# Are we using ELF? Thanks to Kenneth Albanowski <kjahds@kjahds.com> +# for this test. +cat >try.c <<'EOM' +/* Test for whether ELF binaries are produced */ +#include <fcntl.h> +#include <stdlib.h> +main() { + char buffer[4]; + int i=open("a.out",O_RDONLY); + if(i==-1) + exit(1); /* fail */ + if(read(i,&buffer[0],4)<4) + exit(1); /* fail */ + if(buffer[0] != 127 || buffer[1] != 'E' || + buffer[2] != 'L' || buffer[3] != 'F') + exit(1); /* fail */ + exit(0); /* succeed (yes, it's ELF) */ +} +EOM +if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then + cat <<'EOM' >&4 + +You appear to have ELF support. I'll try to use it for dynamic loading. +If dynamic loading doesn't work, read hints/linux.sh for further information. +EOM + +#For RedHat Linux 3.0.3, you may need to fetch +# ftp://ftp.redhat.com/pub/redhat-3.0.3/i386/updates/RPMS/ld.so-1.7.14-3.i386.rpm +# + +else + cat <<'EOM' >&4 + +You don't have an ELF gcc. I will use dld if possible. If you are +using a version of DLD earlier than 3.2.6, or don't have it at all, you +should probably upgrade. If you are forced to use 3.2.4, you should +uncomment a couple of lines in hints/linux.sh and restart Configure so +that shared libraries will be disallowed. + +EOM + lddlflags="-r $lddlflags" + # These empty values are so that Configure doesn't put in the + # Linux ELF values. + ccdlflags=' ' + cccdlflags=' ' + ccflags="-DOVR_DBL_DIG=14 $ccflags" + so='sa' + dlext='o' + nm_so_opt=' ' + ## If you are using DLD 3.2.4 which does not support shared libs, + ## uncomment the next two lines: + #ldflags="-static" + #so='none' + + # In addition, on some systems there is a problem with perl and NDBM + # which causes AnyDBM and NDBM_File to lock up. This is evidenced + # in the tests as AnyDBM just freezing. Apparently, this only + # happens on a.out systems, so we disable NDBM for all a.out linux + # systems. If someone can suggest a more robust test + # that would be appreciated. + # + # More info: + # Date: Wed, 7 Feb 1996 03:21:04 +0900 + # From: Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp> + # + # I tried compiling with DBM support and sure enough things locked up + # just as advertised. Checking into it, I found that the lockup was + # during the call to dbm_open. Not *in* dbm_open -- but between the call + # to and the jump into. + # + # To make a long story short, making sure that the *.a and *.sa pairs of + # /usr/lib/lib{m,db,gdbm}.{a,sa} + # were perfectly in sync took care of it. + # + # This will generate a harmless Whoa There! message + case "$d_dbm_open" in + '') cat <<'EOM' >&4 + +Disabling ndbm. This will generate a Whoa There message in Configure. +Read hints/linux.sh for further information. +EOM + # You can override this with Configure -Dd_dbm_open + d_dbm_open=undef + ;; + esac +fi + +rm -f try.c a.out + +if /bin/bash -c exit; then + echo '' + echo 'You appear to have a working bash. Good.' +else + cat << 'EOM' >&4 + +*********************** Warning! ********************* +It would appear you have a defective bash shell installed. This is likely to +give you a failure of op/exec test #5 during the test phase of the build, +Upgrading to a recent version (1.14.4 or later) should fix the problem. +****************************************************** +EOM + +fi + +# On SPARClinux, +# The following csh consistently coredumped in the test directory +# "/home/mikedlr/perl5.003_94/t", though not most other directories. + +#Name : csh Distribution: Red Hat Linux (Rembrandt) +#Version : 5.2.6 Vendor: Red Hat Software +#Release : 3 Build Date: Fri May 24 19:42:14 1996 +#Install date: Thu Jul 11 16:20:14 1996 Build Host: itchy.redhat.com +#Group : Shells Source RPM: csh-5.2.6-3.src.rpm +#Size : 184417 +#Description : BSD c-shell + +# For this reason I suggest using the much bug-fixed tcsh for globbing +# where available. + +if [ ! "`csh -c 'echo $version' 2>/dev/null`" ] +then + echo 'Real csh found (might break); looking for tcsh ...' + # Use ./UU/loc to find tcsh. (We no longer run in the hints/ directory) + if xxx=`./UU/loc tcsh blurfl $pth`; $test -f "$xxx"; then + echo "Found tcsh. I'll use it for globbing." + # We can't change Configure's setting of $csh, due to the way + # Configure handles $d_portable and commands found in $loclist. + # We can set the value for CSH in config.h by setting full_csh. + full_csh=$xxx + else + echo "Couldn't find tcsh. BEWARE: GLOBBING MIGHT BE BROKEN." + fi +else + echo 'Your csh is really tcsh. Good.' +fi + +# Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu> +# Message-Id: <33EF1634.B36B6500@pobox.com> +# +# MkLinux (osname=linux,archname=ppc-linux), which differs slightly from other +# linuces, needs special flags passed in order for dynamic loading to work. +# instead of the recommended: +# ccdlflags='-rdynamic' +# +# it should be: +# ccdlflags='-Wl,-E' + +# XXX EXPERIMENTAL A.D. 2/27/1998 +# XXX This script UU/usethreads.cbu will get 'called-back' by Configure +# XXX after it has prompted the user for whether to use threads. +cat > UU/usethreads.cbu <<'EOSH' +case "$usethreads" in +$define|true|[yY]*) + ccflags="-D_REENTRANT $ccflags" + # -lpthread needs to come before -lc but after other libraries such + # as -lgdbm and such like. We assume here that -lc is present in + # libswanted. If that fails to be true in future, then this can be + # changed to add pthread to the very end of libswanted. + set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` + shift + libswanted="$*" + ;; +esac +EOSH +# XXX EXPERIMENTAL --end of call-back diff --git a/contrib/perl5/hints/lynxos.sh b/contrib/perl5/hints/lynxos.sh new file mode 100644 index 0000000..ddffcbe --- /dev/null +++ b/contrib/perl5/hints/lynxos.sh @@ -0,0 +1,11 @@ +# +# LynxOS hints +# +# These hints were submitted by: +# Greg Seibert +# seibert@Lynx.COM +# + +cc='gcc' +so='none' +usemymalloc='n' diff --git a/contrib/perl5/hints/machten.sh b/contrib/perl5/hints/machten.sh new file mode 100644 index 0000000..f283873 --- /dev/null +++ b/contrib/perl5/hints/machten.sh @@ -0,0 +1,224 @@ +# machten.sh +# This is for MachTen 4.0.3. It might work on other versions and variants too. +# +# Users of earlier MachTen versions might need a fixed tr from ftp.tenon.com. +# This should be described in the MachTen release notes. +# +# MachTen 2.x has its own hint file. +# +# This file has been put together by Andy Dougherty +# <doughera@lafcol.lafayette.edu> based on comments from lots of +# folks, especially +# Mark Pease <peasem@primenet.com> +# Martijn Koster <m.koster@webcrawler.com> +# Richard Yeh <rcyeh@cco.caltech.edu> +# +# For now, explicitly disable dynamic loading -- MT 4.1.1 has it, +# but these hints do not yet support it. +# Define NOTEDEF_MACHTEN to undo gratuitous Tenon hack to signal.h. +# -- Dominic Dunlop <domo@computer.org> 9800802 +# Completely disable SysV IPC pending more complete support from Tenon +# -- Dominic Dunlop <domo@computer.org> 980712 +# Use vfork and perl's malloc by default +# -- Dominic Dunlop <domo@computer.org> 980630 +# Raise perl's stack size again; cut down reg_infty; document +# -- Dominic Dunlop <domo@computer.org> 980619 +# Use of semctl() can crash system: disable -- Dominic Dunlop 980506 +# Raise stack size further; slight tweaks to accomodate MT 4.1 +# -- Dominic Dunlop <domo@computer.org> 980211 +# Raise perl's stack size -- Dominic Dunlop <domo@tcp.ip.lu> 970922 +# Reinstate sigsetjmp iff version is 4.0.3 or greater; use nm +# (assumes Configure change); prune libswanted -- Dominic Dunlop 970113 +# Warn about test failure due to old Berkeley db -- Dominic Dunlop 970105 +# Do not use perl's malloc; SysV IPC OK -- Neil Cutcliffe, Tenon 961030 +# File::Find's use of link count disabled by Dominic Dunlop 960528 +# Perl's use of sigsetjmp etc. disabled by Dominic Dunlop 960521 +# +# Comments, questions, and improvements welcome! +# +# MachTen 4.1.1 does support dynamic loading, but perl doesn't +# know how to use it yet. +usedl=${usedl:-undef} + +# MachTen 4.1.1 may have an unhelpful hack in /usr/include/signal.h. +# Undo it if so. +if grep NOTDEF_MACHTEN /usr/include/signal.h > /dev/null +then + ccflags="$ccflags -DNOTDEF_MACHTEN" +fi + +# Power MachTen is a real memory system and its standard malloc +# has been optimized for this. Using this malloc instead of Perl's +# malloc may result in significant memory savings. In particular, +# unlike most UNIX memory allocation subsystems, MachTen's free() +# really does return unneeded process data memory to the system. +# However, MachTen's malloc() is woefully slow -- maybe 100 times +# slower than perl's own, so perl's own is usually the better +# choice. In order to use perl's malloc(), the sbrk() system call +# must be simulated using MachTen's malloc(). See malloc.c for +# precise details of how this is achieved. Recent improvements +# to perl's malloc() currently crash MachTen, and so are disabled +# by -DPLAIN_MALLOC and -DNO_FANCY_MALLOC. +usemymalloc=${usemymalloc:-y} + +# Do not wrap the following long line +malloc_cflags='ccflags="$ccflags -DPLAIN_MALLOC -DNO_FANCY_MALLOC -DUSE_PERL_SBRK"' + +# Note that an empty malloc_cflags appears in config.sh if perl's +# malloc() is not used. his is harmless. +case "$usemymalloc" in +n) unset malloc_cflags;; +*) ccflags="$ccflags -DHIDEMYMALLOC" +esac + +# When MachTen does a fork(), it immediately copies the whole of +# the parent process' data space for the child. This can be +# expensive. Using vfork() where appropriate avoids this cost. +d_vfork=${d_vfork:-define} + +# Specify a high level of optimization (-O3 wouldn't do much more) +optimize=${optimize:--O2 -fomit-frame-pointer} + +# Make symbol table listings les voluminous +nmopts=-gp + +# Set reg_infty -- the maximum allowable number of repeats in regular +# expressions such as /a{1,$max_repeats}/, and the maximum number of +# times /a*/ will match. Setting this too high without having a stack +# large enough to accommodate deep recursion in the regular expression +# engine allows perl to crash your Mac due to stack overrun if it +# encounters a pathological regular expression. The default is a +# compromise between capability and required stack size (see below). +# You may override the default value from the Configure command-line +# like this: +# +# Configure -Dreg_infty=16368 ... + +reg_infty=${reg_infty:-2047} + +# If you want to have many perl processes active simultaneously -- +# processing CGI forms -- for example, you should opt for a small stack. +# For safety, you should set reg_infty no larger than the corresponding +# value given in this table: +# +# Stack size reg_infty value supported +# ---------- ------------------------- +# 128k 2**8-1 (256) +# 256k 2**9-1 (511) +# 512k 2**10-1 (1023) +# 1M 2**11-1 (2047) +# ... +# 16M 2**15-1 (32767) (perl's default value) + +# This script selects a safe stack size based on the value of reg_infty +# specified above. However, you may choose to take a risk and set +# stack size lower: pathological regular expressions are rare in real-world +# programs. But be aware that, if perl does encounter one, it WILL +# crash your system. Do not set stack size lower than 96k unless +# you want perl's installation tests ( make test ) to crash your system. +# +# You may override the default value from the Configure command-line +# by specifying the required size in kilobytes like this: +# +# Configure -Dstack_size=96 + +if [ "X$stack_size" = 'X' ] +then + stack_size=128 + X=`expr $reg_infty / 256` + + while [ $X -gt 0 ] + do + X=`expr $X / 2` + stack_size=`expr $stack_size \* 2` + done + X=`expr $stack_size \* 1024` +fi + +ldflags="$ldflags -Xlstack=$X" +ccflags="$ccflags -DREG_INFTY=$reg_infty" + +# Install in /usr/local by default +prefix='/usr/local' + +# At least on PowerMac, doubles must be aligned on 8 byte boundaries. +# I don't know if this is true for all MachTen systems, or how to +# determine this automatically. +alignbytes=8 + +# 4.0.2 and earlier had a problem with perl's use of sigsetjmp and +# friends. Use setjmp and friends instead. +expr "$osvers" \< "4.0.3" > /dev/null && d_sigsetjmp='undef' + +# System V IPC support in MachTen 4.1 is incomplete (missing msg function +# prototypes, no ftok()), buggy (semctl(.., .., IPC_STATUS, ..) hangs +# system), and undocumented. Claim it's not there until things improve. +d_msg=${d_msg:-undef} +d_sem=${d_sem:-undef} +d_shm=${d_shm:-undef} + +# Get rid of some extra libs which it takes Configure a tediously +# long time never to find on MachTen +set `echo X "$libswanted "|sed -e 's/ net / /' -e 's/ socket / /' \ + -e 's/ inet / /' -e 's/ nsl / /' -e 's/ nm / /' -e 's/ malloc / /' \ + -e 's/ ld / /' -e 's/ sun / /' -e 's/ posix / /' \ + -e 's/ cposix / /' -e 's/ crypt / /' \ + -e 's/ ucb / /' -e 's/ bsd / /' -e 's/ BSD / /' -e 's/ PW / /'` +shift +libswanted="$*" + +# While link counts on MachTen 4.1's fast file systems work correctly, +# on Macintosh Heirarchical File Systems, (and on HFS+) +# MachTen always reports ony two links to directories, even if they +# contain subdirectories. Consequently, we use this variable to stop +# File::Find using the link count to determine whether there are +# subdirectories to be searched. This will generate a harmless message: +# Hmm...You had some extra variables I don't know about...I'll try to keep 'em. +# Propagating recommended variable dont_use_nlink +dont_use_nlink=define + +cat <<EOM >&4 + +During Configure, you may see the message + +*** WHOA THERE!!! *** + The recommended value for \$d_msg on this machine was "undef"! + Keep the recommended value? [y] + +as well as similar messages concerning \$d_sem and \$d_shm. Select the +default answers: MachTen 4.1 appears to provide System V IPC support, +but it is incomplete and buggy: perl should be built without it. + +Similarly, when you see + +*** WHOA THERE!!! *** + The recommended value for \$d_vfork on this machine was "define"! + Keep the recommended value? [y] + +select the default answer: vfork() works, and avoids expensive data +copying. + +At the end of Configure, you will see a harmless message + +Hmm...You had some extra variables I don't know about...I'll try to keep 'em. + Propagating recommended variable dont_use_nlink + Propagating recommended variable nmopts + Propagating recommended variable malloc_cflags... + Propagating recommended variable reg_infty +Read the File::Find documentation for more information about dont_use_nlink + +Your perl will be built with a stack size of ${stack_size}k and a regular +expression repeat count limit of $reg_infty. If you want alternative +values, see the file hints/machten.sh for advice on how to change them. + +Tests + io/fs test 4 and + op/stat test 3 +may fail since MachTen may not return a useful nlinks field to stat +on directories. + +EOM +expr "$osvers" \< "4.1" >/dev/null && test -r ./broken-db.msg && \ + . ./broken-db.msg + +unset stack_size X diff --git a/contrib/perl5/hints/machten_2.sh b/contrib/perl5/hints/machten_2.sh new file mode 100644 index 0000000..bc7dde4 --- /dev/null +++ b/contrib/perl5/hints/machten_2.sh @@ -0,0 +1,94 @@ +# machten.sh +# This file has been put together by Mark Pease <peasem@primenet.com> +# Comments, questions, and improvements welcome! +# +# MachTen does not support dynamic loading. If you wish to, you +# can fetch, compile, and install the dld package. +# This ought to work with the ext/DynaLoader/dl_dld.xs in the +# perl5 package. Have fun! +# Some possible locations for dld: +# ftp-swiss.ai.mit.edu:pub/scm/dld-3.2.7.tar.gz +# prep.ai.mit.edu:/pub/gnu/jacal/dld-3.2.7.tar.gz +# ftp.cs.indiana.edu:/pub/scheme-repository/imp/SCM-support/dld-3.2.7.tar.gz +# tsx-11.mit.edu:/pub/linux/sources/libs/dld-3.2.7.tar.gz +# +# Original version was for MachTen 2.1.1. +# Last modified by Andy Dougherty <doughera@lafcol.lafayette.edu> +# Tue Aug 13 12:31:01 EDT 1996 +# +# Warning about tests which no longer fail +# fixed by Tom Phoenix <rootbeer@teleport.com> +# March 5, 1997 +# +# Locale, optimization, and malloc changes by Tom Phoenix Mar 15, 1997 +# +# groupstype change and note about t/lib/findbin.t by Tom, Mar 24, 1997 + +# MachTen's ability to have valid filepaths beginning with "//" may +# be causing lib/FindBin.pm to fail. I don't know how to fix it, but +# the reader is encouraged to do so! :-) -- Tom + +# There seem to be some hard-to-diagnose problems under MachTen's +# malloc, so we'll use Perl's. If you have problems which Perl's +# malloc's diagnostics can't help you with, you may wish to use +# MachTen's malloc after all. +case "$usemymalloc" in +'') usemymalloc='y' ;; +esac + +# I (Tom Phoenix) don't know how to test for locales on MachTen. (If +# you do, please fix this hints file!) But since mine didn't come +# with locales working out of the box, I'll assume that's the case +# for most folks. +case "$d_setlocale" in +'') d_setlocale=undef +esac + +# MachTen doesn't have secure setid scripts +d_suidsafe='undef' + +# groupstype should be gid_t, as near as I can tell, but it only +# seems to work right when it's int. +groupstype='int' + +case "$optimize" in +'') optimize='-O2' ;; +esac + +so='none' +# These are useful only if you have DLD, but harmless otherwise. +# Make sure gcc doesn't use -fpic. +cccdlflags=' ' # That's an empty space. +lddlflags='-r' +dlext='o' + +# MachTen does not support POSIX enough to compile the POSIX module. +useposix=false + +#MachTen might have an incomplete Berkeley DB implementation. +i_db=$undef + +#MachTen versions 2.X have no hard links. This variable is used +# by File::Find. +# This will generate a harmless message: +# Hmm...You had some extra variables I don't know about...I'll try to keep 'em. +# Propagating recommended variable dont_use_nlink +# Without this, tests io/fs #4 and op/stat #3 will fail. +dont_use_nlink=define + +cat <<'EOM' >&4 + +During Configure, you may get two "WHOA THERE" messages, for $d_setlocale +and $i_db being 'undef'. You may keep the undef value. + +At the end of Configure, you will see a harmless message + +Hmm...You had some extra variables I don't know about...I'll try to keep 'em. + Propagating recommended variable dont_use_nlink + +Read the File::Find documentation for more information. + +It's possible that test t/lib/findbin.t will fail on some configurations +of MachTen. + +EOM diff --git a/contrib/perl5/hints/mips.sh b/contrib/perl5/hints/mips.sh new file mode 100644 index 0000000..bc0b7e8 --- /dev/null +++ b/contrib/perl5/hints/mips.sh @@ -0,0 +1,14 @@ +perl_cflags='optimize="-g"' +d_volatile=undef +d_castneg=undef +cc=cc +glibpth="/usr/lib/cmplrs/cc $glibpth" +groupstype=int +nm_opt='-B' +case $PATH in +*bsd*:/bin:*) cat <<END >&4 +NOTE: Some people have reported having much better luck with Mips CC than +with the BSD cc. Put /bin first in your PATH if you have difficulties. +END +;; +esac diff --git a/contrib/perl5/hints/mpc.sh b/contrib/perl5/hints/mpc.sh new file mode 100644 index 0000000..da6fcc9 --- /dev/null +++ b/contrib/perl5/hints/mpc.sh @@ -0,0 +1 @@ +ccflags="$ccflags -X18" diff --git a/contrib/perl5/hints/mpeix.sh b/contrib/perl5/hints/mpeix.sh new file mode 100644 index 0000000..4a32b77 --- /dev/null +++ b/contrib/perl5/hints/mpeix.sh @@ -0,0 +1,104 @@ +# The MPE/iX linker doesn't complain about unresolved symbols, and so the only +# way to test for unresolved symbols in a program is by attempting to run it. +# But this is slow, and fraught with problems, so the better solution is to use +# nm. +# +# MPE/iX lacks a fully functional native nm, so we need to use our fake nm +# script which will extract the symbol info from the native link editor and +# reformat into something nm-like. +# +# Created for 5.003 by Mark Klein, mklein@dis.com. +# Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu. +# Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu. +# +osname='mpeix' +osvers='5.5' +# +# Force Configure to use our wrapper mpeix/nm script +# +PATH="$PWD/mpeix:$PATH" +nm="$PWD/mpeix/nm" +_nm=$nm +nm_opt='-configperl' +usenm='true' +# +# Various directory locations. +# +prefix='/PERL/PUB' +archname='PA-RISC1.1' +bin="$prefix" +installman1dir="$prefix/man/man1" +installman3dir="$prefix/man/man3" +man1dir="$prefix/man/man1" +man3dir="$prefix/man/man3" +perlpath="$prefix/PERL" +scriptdir="$prefix" +startperl="#!$prefix/perl" +startsh='#!/bin/sh' +# +# Compiling. +# +cc='gcc' +cccdlflags='none' +ccflags='-DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF' +locincpth='/usr/local/include /usr/contrib/include /BIND/PUB/include' +optimize='-O2' +ranlib='/bin/true' +# Special compiling options for certain source files. +regcomp_cflags='optimize=-O' +toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' +# +# Linking. +# +lddlflags='-b' +libs='-lbind -lsvipc -lsocket -lm -lc' +loclibpth='/usr/local/lib /usr/contrib/lib /BIND/PUB/lib' +# +# External functions and data items. +# +d_crypt='define' +d_difftime='define' +d_dlerror='undef' +d_dlopen='undef' +d_Gconvert='gcvt((x),(n),(b))' +d_inetaton='undef' +d_link='undef' +d_mblen='define' +d_mbstowcs='define' +d_mbtowc='define' +d_memcmp='define' +d_memcpy='define' +d_memmove='define' +d_memset='define' +d_pwage='undef' +d_pwcomment='undef' +d_pwgecos='undef' +d_pwpasswd='undef' +d_setpgid='undef' +d_setsid='undef' +d_setvbuf='define' +d_statblks='undef' +d_strchr='define' +d_strcoll='define' +d_strerrm='strerror(e)' +d_strerror='define' +d_strtod='define' +d_strtol='define' +d_strtoul='define' +d_strxfrm='define' +d_syserrlst='define' +d_time='define' +d_wcstombs='define' +d_wctomb='define' +# +# Include files. +# +i_termios='undef' +i_time='define' +i_systime='undef' +i_systimek='undef' +timeincl='/usr/include/time.h' +# +# Data types. +# +timetype='time_t' diff --git a/contrib/perl5/hints/ncr_tower.sh b/contrib/perl5/hints/ncr_tower.sh new file mode 100644 index 0000000..7ddb923 --- /dev/null +++ b/contrib/perl5/hints/ncr_tower.sh @@ -0,0 +1,16 @@ +# For SysV release 2, there are no directory functions defined. To +# prevent compile errors, acquire the functions written by Doug Gwynn. +# They are contained in dirent.tar.gz and can be accessed from gnu +# repositories, as well as other places. +# +# The following hints have been verified to work with PERL5 (001m) on +# SysVr2 with the following caveat(s): +# 1. Maximum User program space (MAXSPACE) must be at least 2MB. +# 2. The directory functions mentioned above have been installed. +# +optimize='-O0' +ccflags="$ccflags -W2,-Sl,1500 -W0,-Sp,350,-Ss,2500 -Wp,-Sd,30" +d_mkdir=$undef +usemymalloc='y' +useposix='false' +so='none' diff --git a/contrib/perl5/hints/netbsd.sh b/contrib/perl5/hints/netbsd.sh new file mode 100644 index 0000000..71d5084 --- /dev/null +++ b/contrib/perl5/hints/netbsd.sh @@ -0,0 +1,79 @@ +# hints/netbsd.sh +# +# talk to mrg@eterna.com.au if you want to change this file. +# +# netbsd keeps dynamic loading dl*() functions in /usr/lib/crt0.o, +# so Configure doesn't find them (unless you abandon the nm scan). +# this should be *just* 0.9 below as netbsd 0.9a was the first to +# introduce shared libraries. however, they don't work/build on +# pmax, powerpc and alpha ports correctly, yet. + +case "$archname" in +'') + archname=`uname -m`-${osname} + ;; +esac + +case "$osvers" in +0.9|0.8*) + usedl="$undef" + ;; +*) + case `uname -m` in + alpha|powerpc|pmax) + d_dlopen=$undef + ;; +# this doesn't work (yet). +# alpha) +# d_dlopen=$define +# d_dlerror=$define +# cccdlflags="-DPIC -fPIC $cccdlflags" +# lddlflags="-shared $lddlflags" +# ;; + *) + d_dlopen=$define + d_dlerror=$define +# we use -fPIC here because -fpic is *NOT* enough for some of the +# extensions like Tk on some netbsd platforms (the sparc is one) + cccdlflags="-DPIC -fPIC $cccdlflags" + lddlflags="-Bforcearchive -Bshareable $lddlflags" + ;; + esac + ;; +esac +# netbsd 1.3 linker warns about setr[gu]id being deprecated. +# (setregid, setreuid, preferred?) +case "$osvers" in +1.3|1.3*) + d_setrgid="$undef" + d_setruid="$undef" + ;; +esac + +# netbsd had these but they don't really work as advertised, in the +# versions listed below. if they are defined, then there isn't a +# way to make perl call setuid() or setgid(). if they aren't, then +# ($<, $>) = ($u, $u); will work (same for $(/$)). this is because +# you can not change the real userid of a process under 4.4BSD. +# netbsd fixed this in 1.2A. +case "$osvers" in +0.9*|1.0*|1.1*|1.2_*|1.2|1.2.*) + d_setregid="$undef" + d_setreuid="$undef" + d_setrgid="$undef" + d_setruid="$undef" + ;; +esac +# netbsd 1.3 linker warns about setr[gu]id being deprecated. +# (setregid, setreuid, preferred?) +case "$osvers" in +1.3|1.3*) + d_setrgid="$undef" + d_setruid="$undef" + ;; +esac + +# vfork is ok on NetBSD. +case "$usevfork" in +'') usevfork=true ;; +esac diff --git a/contrib/perl5/hints/newsos4.sh b/contrib/perl5/hints/newsos4.sh new file mode 100644 index 0000000..a33cb31 --- /dev/null +++ b/contrib/perl5/hints/newsos4.sh @@ -0,0 +1,34 @@ +# +# hints file for NEWS-OS 4.x +# + +echo +echo 'Compiling Tips:' +echo 'When you have found that ld complains "multiple defined" error' +echo 'on linking /lib/libdbm.a, do following instructions.' +echo ' cd /tmp (working on /tmp)' +echo ' cp /lib/libdbm.a dbm.o (copy current libdbm.a)' +echo ' ar cr libdbm.a dbm.o (make archive)' +echo ' mv /lib/libdbm.a /lib/libdbm.a.backup (backup original library)' +echo ' cp /tmp/libdbm.a /lib (copy newer one)' +echo ' ranlib /lib/libdbm.a (ranlib for later use)' +echo + +# No shared library. +so='none' +# Umm.. I like gcc. +cc='gcc' +# Configure does not find out where is libm. +plibpth='/usr/lib/cmplrs/cc' +# times() returns 'struct tms' +clocktype='struct tms' +# getgroups(2) returns integer (not gid_t) +groupstype='int' +# time(3) returns long (not time_t) +timetype='long' +# filemode type is int (not mode_t) +modetype='int' +# using sprintf(3) instead of gcvt(3) +d_Gconvert='sprintf((b),"%.*g",(n),(x))' +# No POSIX. +useposix='false' diff --git a/contrib/perl5/hints/next_3.sh b/contrib/perl5/hints/next_3.sh new file mode 100644 index 0000000..43340c0 --- /dev/null +++ b/contrib/perl5/hints/next_3.sh @@ -0,0 +1,131 @@ +# This file has been put together by Anno Siegel <siegel@zrz.TU-Berlin.DE>, +# Andreas Koenig <k@franz.ww.TU-Berlin.DE> and Gerd Knops <gerti@BITart.com>. +# Comments, questions, and improvements welcome! +# +# These hints work for NeXT 3.2 and 3.3. 3.0 has it's own +# special hint file. +# + +###################################################################### +# THE MALLOC STORY +###################################################################### +# 1994: +# the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails +# with Larry's malloc on NS 3.2 due to broken sbrk() +# +# setting usemymalloc='n' was the solution back then. Later came +# reports that perl would run unstable on 3.2: +# +# 1996: +# From about perl5.002beta1h perl became unstable on the +# NeXT. Intermittent coredumps were frequent on 3.2 OS. There were +# reports, that the developer version of 3.3 didn't have problems, so it +# seemed pretty obvious that we had to work around an malloc bug in 3.2. +# This hints file reflects a patch to perl5.002_01 that introduces a +# home made sbrk routine (remember, NeXT's sbrk _never_ worked). This +# sbrk makes it possible to run perl with its own malloc. Thanks to +# Ilya who showed me the way to his sbrk for OS/2!! +# +# The whole malloc desaster lead to a failing gdbm test. It is far +# beyond my understanding, why GDBM_File breaks with the "fix", but in +# general I consider it better to have a working perl with broken GDBM +# than no perl at all. +# +# So, this hintsfile is using perl's malloc. If you want to turn +# perl's malloc off, you need to remove '-DUSE_PERL_SBRK' and +# '-DHIDEMYMALLOC' from the ccflags and set usemymalloc to 'n'. +# +# 1997: +# From perl5.003_22 the malloc bug has no impact any more. We can run +# a perl without a special sbrk. Apparently Chip Salzenberg, the hero +# of 5.004 anyway, earned another trophy during Australien Open. +# +# use the following two lines to enable USE_PERL_SBRK. Try this if you +# encounter intermittent core dumps: +#ccflags='-DUSE_NEXT_CTYPE -DUSE_PERL_SBRK -DHIDEMYMALLOC' +#usemymalloc='y' +# use the following two lines if you have perl5.003_22 or better and +# do not encounter intermittent core dumps. + +ccflags='-DUSE_NEXT_CTYPE' +usemymalloc='n' + +###################################################################### +# End of the MALLOC story +###################################################################### + +ldflags='-u libsys_s' +libswanted='dbm gdbm db' + +lddlflags='-nostdlib -r' +# Give cccdlflags an empty value since Configure will detect we are +# using GNU cc and try to specify -fpic for cccdlflags. +cccdlflags=' ' + +###################################################################### +# MAB support +###################################################################### +# By default we will build for all architectures your development +# environment supports. If you only want to build for the platform +# you are on, simply comment or remove the line below. +# +# If you want to build for specific architectures, change the line +# below to something like +# +# archs='m68k i386' +# +archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'` + +# +# leave the following part alone +# +archcount=`echo $archs |wc -w` +if [ $archcount -gt 1 ] +then + for d in $archs + do + mabflags="$mabflags -arch $d" + done + ccflags="$ccflags $mabflags" + ldflags="$ldflags $mabflags" + lddlflags="$lddlflags $mabflags" + archname='next-fat' +fi +###################################################################### +# END MAB support +###################################################################### +ld='cc' + +i_utime='undef' +groupstype='int' +direntrytype='struct direct' +d_strcoll='undef' +d_uname='define' +# +# At least on m68k there are situations when memcmp doesn't behave +# as expected. So we'll use perl's memcmp. +# +d_sanemcmp='undef' +# setpgid() is in the posix library, but we don't use -posix, so +# we don't see it. ext/POSIX/POSIX.xs *does* use -posix, so +# setpgid is still available as POSIX::setpgid. +# See ext/POSIX/POSIX/hints/next.pl. +d_setpgid='undef' +d_setsid='define' +d_tcgetpgrp='define' +d_tcsetpgrp='define' + +# +# On some NeXT machines, the timestamp put by ranlib is not correct, and +# this may cause useless recompiles. Fix that by adding a sleep before +# running ranlib. The '5' is an empirical number that's "long enough." +# +ranlib='sleep 5; /bin/ranlib' + +# +# There where reports that the compiler on HPPA machines +# fails with the -O flag on pp.c. +# Compiling pp.c with -O for HPPA machines results in a broken perl. +# This is true whether we're on an HPPA machine or cross-compiling +# for one. +pp_cflags='optimize=""' diff --git a/contrib/perl5/hints/next_3_0.sh b/contrib/perl5/hints/next_3_0.sh new file mode 100644 index 0000000..b8cc2c2 --- /dev/null +++ b/contrib/perl5/hints/next_3_0.sh @@ -0,0 +1,53 @@ +# This file has been put together by Anno Siegel <siegel@zrz.TU-Berlin.DE> +# and Andreas Koenig <k@franz.ww.TU-Berlin.DE>. Comments, questions, and +# improvements welcome! + +# This file was modified to work on NS 3.0 by Kevin White +# <klwhite@magnus.acs.ohio-state.edu>, based on suggestions by Andreas +# Koenig and Andy Dougherty. + +echo With NS 3.0 you won\'t be able to use the POSIX module. >&4 +echo Be aware that some of the tests that are run during \"make test\" >&4 +echo will fail due to the lack of POSIX support on this system. >&4 +echo >&4 +echo Also, if you have the GDBM installed, make sure the header file >&4 +echo is located at a place on the system where the C compiler will >&4 +echo find it. By default, it is placed in /usr/local/include/gdbm.h. >&4 +echo It will not be found there. Try moving it to >&4 +echo /NextDeveloper/Headers/bsd/gdbm.h. >&4 + +ccflags='-DUSE_NEXT_CTYPE -DNEXT30_NO_ATTRIBUTE' +POSIX_cflags='ccflags="-posix $ccflags"' +useposix='undef' +ldflags='-u libsys_s' +libswanted='dbm gdbm db' +# +lddlflags='-r' +# Give cccdlflags an empty value since Configure will detect we are +# using GNU cc and try to specify -fpic for cccdlflags. +cccdlflags=' ' +# +i_utime='undef' +groupstype='int' +direntrytype='struct direct' +d_strcoll='undef' +# the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails +# with Larry's malloc on NS 3.2 due to broken sbrk() +usemymalloc='n' +d_uname='define' + +# Thanks to Etienne Grossman <etienne@isr.isr.ist.utl.pt> for sending +# the correct values for perl5.003_11 for the following 4 +# variables. For older version all four were defined. +d_setsid='undef' +d_tcgetpgrp='undef' +d_tcsetpgrp='undef' +d_setpgid='undef' + +# +# On some NeXT machines, the timestamp put by ranlib is not correct, and +# this may cause useless recompiles. Fix that by adding a sleep before +# running ranlib. The '5' is an empirical number that's "long enough." +# (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>) +ranlib='sleep 5; /bin/ranlib' + diff --git a/contrib/perl5/hints/next_4.sh b/contrib/perl5/hints/next_4.sh new file mode 100644 index 0000000..b3887e6 --- /dev/null +++ b/contrib/perl5/hints/next_4.sh @@ -0,0 +1,95 @@ +###################################################################### +# +# IMPORTANT: before you run 'make', you need to enter one of these two +# lines (depending on your shell): +# DYLD_LIBRARY_PATH=`pwd`; export DYLD_LIBRARY_PATH +# or +# setenv DYLD_LIBRARY_PATH `pwd` +# +###################################################################### + +# Posix support has been removed from NextStep +# +useposix='undef' + +libpth='/lib /usr/lib' +libswanted=' ' +libc='/NextLibrary/Frameworks/System.framework/System' + +ldflags='-dynamic -prebind' +lddlflags='-dynamic -bundle -undefined suppress' +ccflags='-dynamic -fno-common -DUSE_NEXT_CTYPE -DUSE_PERL_SBRK -DHIDEMYMALLOC' +cccdlflags='none' +ld='cc' +#optimize='-g -O' + +###################################################################### +# MAB support +###################################################################### +# By default we will build for all architectures your development +# environment supports. If you only want to build for the platform +# you are on, simply comment or remove the line below. +# +# If you want to build for specific architectures, change the line +# below to something like +# +# archs='m68k i386' +# +archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'` + +# +# leave the following part alone +# +archcount=`echo $archs |wc -w` +if [ $archcount -gt 1 ] +then + for d in $archs + do + mabflags="$mabflags -arch $d" + done + ccflags="$ccflags $mabflags" + ldflags="$ldflags $mabflags" + lddlflags="$lddlflags $mabflags" +fi +###################################################################### +# END MAB support +###################################################################### + +useshprlib='true' +dlext='bundle' +so='dylib' + +# +# The default prefix would be '/usr/local'. But since many people are +# likely to have still 3.3 machines on their network, we do not want +# to overwrite possibly existing 3.3 binaries. +# You can use Configure -Dprefix=/foo/bar to override this, or simply +# remove the lines below. +# +case "$prefix" in +'') prefix='/usr/local/OPENSTEP' ;; +esac + +archname='OPENSTEP-Mach' + +# +# At least on m68k there are situations when memcmp doesn't behave +# as expected. So we'll use perl's memcmp. +# +d_sanemcmp='undef' + +d_strcoll='undef' +i_dbm='define' +i_utime='undef' +groupstype='int' +direntrytype='struct direct' + +usemymalloc='y' +clocktype='int' + +# +# On some NeXT machines, the timestamp put by ranlib is not correct, and +# this may cause useless recompiles. Fix that by adding a sleep before +# running ranlib. The '5' is an empirical number that's "long enough." +# (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>) +ranlib='sleep 5; /bin/ranlib' diff --git a/contrib/perl5/hints/openbsd.sh b/contrib/perl5/hints/openbsd.sh new file mode 100644 index 0000000..4c98ec8 --- /dev/null +++ b/contrib/perl5/hints/openbsd.sh @@ -0,0 +1,51 @@ +# hints/openbsd.sh +# +# hints file for OpenBSD; Todd Miller <millert@openbsd.org> +# Edited to allow Configure command-line overrides by +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# + +# OpenBSD has a better malloc than perl... +test "$usemymalloc" || usemymalloc='n' + +# Currently, vfork(2) is not a real win over fork(2) but this will +# change in a future release. +usevfork='true' + +# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions +# in 4.4BSD. Configure will find these but they are just emulated +# and do not have the same semantics as in 4.3BSD. +d_setregid='undef' +d_setreuid='undef' +d_setrgid='undef' +d_setruid='undef' + +# +# Not all platforms support shared libs... +# +case `uname -m` in +alpha|mips|powerpc|vax) + d_dlopen=$undef + ;; +*) + d_dlopen=$define + d_dlerror=$define + # we use -fPIC here because -fpic is *NOT* enough for some of the + # extensions like Tk on some OpenBSD platforms (ie: sparc) + cccdlflags="-DPIC -fPIC $cccdlflags" + lddlflags="-Bforcearchive -Bshareable $lddlflags" + ;; +esac + +# OpenBSD doesn't need libcrypt but many folks keep a stub lib +# around for old NetBSD binaries. +libswanted=`echo $libswanted | sed 's/ crypt / /'` + +# Configure can't figure this out non-interactively +d_suidsafe='define' + +# cc is gcc so we can do better than -O +# Allow a command-line override, such as -Doptimize=-g +test "$optimize" || optimize='-O2' + +# end diff --git a/contrib/perl5/hints/opus.sh b/contrib/perl5/hints/opus.sh new file mode 100644 index 0000000..da6fcc9 --- /dev/null +++ b/contrib/perl5/hints/opus.sh @@ -0,0 +1 @@ +ccflags="$ccflags -X18" diff --git a/contrib/perl5/hints/os2.sh b/contrib/perl5/hints/os2.sh new file mode 100644 index 0000000..78d370a --- /dev/null +++ b/contrib/perl5/hints/os2.sh @@ -0,0 +1,302 @@ +#! /bin/sh +# hints/os2.sh +# This file reflects the tireless work of +# Ilya Zakharevich <ilya@math.ohio-state.edu> +# +# Trimmed and comments added by +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Exactly what is required beyond a standard OS/2 installation? +# (see in README.os2) + +# Note that symbol extraction code gives wrong answers (sometimes?) on +# gethostent and setsid. + +# Optimization (GNU make 3.74 cannot be loaded :-(): +emxload -m 30 sh.exe ls.exe tr.exe id.exe sed.exe # make.exe +emxload -m 30 grep.exe egrep.exe fgrep.exe cat.exe rm.exe mv.exe cp.exe +emxload -m 30 uniq.exe basename.exe sort.exe awk.exe echo.exe + +path_sep=\; + +if test -f $sh.exe; then sh=$sh.exe; fi + +startsh="#!$sh" +cc='gcc' + +# Make denser object files and DLL +case "X$optimize" in + X) + optimize="-O2 -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -s" + ld_dll_optimize="-s" + ;; +esac + +# Get some standard things (indented to avoid putting in config.sh): + oifs="$IFS" + IFS=" ;" + set $MANPATH + tryman="$@" + set $LIBRARY_PATH + libemx="$@" + set $C_INCLUDE_PATH + usrinc="$@" + IFS="$oifs" + tryman="`./UU/loc . /man $tryman`" + tryman="`echo $tryman | tr '\\\' '/'`" + + # indented to avoid having it *two* times at start + libemx="`./UU/loc os2.a /emx/lib $libemx`" + +usrinc="`./UU/loc stdlib.h /emx/include $usrinc`" +usrinc="`dirname $usrinc | tr '\\\' '/'`" +libemx="`dirname $libemx | tr '\\\' '/'`" + +if test -d $tryman/man1; then + sysman="$tryman/man1" +else + sysman="`./UU/loc . /man/man1 c:/man/man1 c:/usr/man/man1 d:/man/man1 d:/usr/man/man1 e:/man/man1 e:/usr/man/man1 f:/man/man1 f:/usr/man/man1 g:/man/man1 g:/usr/man/man1 /usr/man/man1`" +fi + +emxpath="`dirname $libemx`" +if test ! -d "$emxpath"; then + emxpath="`./UU/loc . /emx c:/emx d:/emx e:/emx f:/emx g:/emx h:/emx /emx`" +fi + +if test ! -d "$libemx"; then + libemx="$emxpath/lib" +fi +if test ! -d "$libemx"; then + if test -d "$LIBRARY_PATH"; then + libemx="$LIBRARY_PATH" + else + libemx="`./UU/loc . X c:/emx/lib d:/emx/lib e:/emx/lib f:/emx/lib g:/emx/lib h:/emx/lib /emx/lib`" + fi +fi + +if test ! -d "$usrinc"; then + if test -d "$emxpath/include"; then + usrinc="$emxpath/include" + else + if test -d "$C_INCLUDE_PATH"; then + usrinc="$C_INCLUDE_PATH" + else + usrinc="`./UU/loc . X c:/emx/include d:/emx/include e:/emx/include f:/emx/include g:/emx/include h:/emx/include /emx/include`" + fi + fi +fi + +rsx="`./UU/loc rsx.exe undef $pth`" + +if test "$libemx" = "X"; then echo "Cannot find C library!" >&2; fi + +# Acute backslashitis: +libpth="`echo \"$LIBRARY_PATH\" | tr ';\\\' ' /'`" +libpth="$libpth $libemx/mt $libemx" + +set `emxrev -f emxlibcm` +emxcrtrev=$5 + +so='dll' + +# Additional definitions: + +firstmakefile='GNUmakefile' +exe_ext='.exe' + +# We provide it +i_dlfcn='define' + +aout_d_shrplib='undef' +aout_useshrplib='false' +aout_obj_ext='.o' +aout_lib_ext='.a' +aout_ar='ar' +aout_plibext='.a' +aout_lddlflags="-Zdll $ld_dll_optimize" +if [ $emxcrtrev -ge 50 ]; then + aout_ldflags='-Zexe -Zsmall-conv -Zstack 32000' +else + aout_ldflags='-Zexe -Zstack 32000' +fi + +# To get into config.sh: +aout_ldflags="$aout_ldflags" + +aout_d_fork='define' +aout_ccflags='-DPERL_CORE -DDOSISH -DPERL_IS_AOUT -DOS2=2 -DEMBED -I.' +aout_cppflags='-DPERL_CORE -DDOSISH -DPERL_IS_AOUT -DOS2=2 -DEMBED -I.' +aout_use_clib='c' +aout_usedl='undef' +aout_archobjs="os2.o dl_os2.o" + +# variable which have different values for aout compile +used_aout='d_shrplib useshrplib plibext lib_ext obj_ext ar plibext d_fork lddlflags ldflags ccflags use_clib usedl archobjs cppflags' + +if [ "$emxaout" != "" ]; then + d_shrplib="$aout_d_shrplib" + useshrplib="$aout_useshrplib" + obj_ext="$aout_obj_ext" + lib_ext="$aout_lib_ext" + ar="$aout_ar" + plibext="$aout_plibext" + if [ $emxcrtrev -lt 50 ]; then + d_fork="$aout_d_fork" + fi + lddlflags="$aout_lddlflags" + ldflags="$aout_ldflags" + ccflags="$aout_ccflags" + cppflags="$aout_cppflags" + use_clib="$aout_use_clib" + usedl="$aout_usedl" +else + d_shrplib='define' + useshrplib='true' + obj_ext='.obj' + lib_ext='.lib' + ar='emxomfar' + plibext='.lib' + if [ $emxcrtrev -ge 50 ]; then + d_fork='define' + else + d_fork='undef' + fi + lddlflags="-Zdll -Zomf -Zmt -Zcrtdll $ld_dll_optimize" + # Recursive regmatch may eat 2.5M of stack alone. + ldflags='-Zexe -Zomf -Zmt -Zcrtdll -Zstack 32000' + if [ $emxcrtrev -ge 50 ]; then + ccflags='-Zomf -Zmt -DDOSISH -DOS2=2 -DEMBED -I.' + else + ccflags='-Zomf -Zmt -DDOSISH -DOS2=2 -DEMBED -I. -DEMX_BAD_SBRK' + fi + use_clib='c_import' + usedl='define' +fi + +# indented to miss config.sh + _ar="$ar" + +# To get into config.sh (should start at the beginning of line) +# or you can put it into config.over. +plibext="$plibext" +# plibext is not needed anymore. Just directly set $libperl. +libperl="libperl${plibext}" + +#libc="/emx/lib/st/c_import$lib_ext" +libc="$libemx/mt/$use_clib$lib_ext" + +if test -r "$libemx/c_alias$lib_ext"; then + libnames="$libemx/c_alias$lib_ext" +fi +# otherwise puts -lc ??? + +# [Maybe we should just remove c from $libswanted ?] + +# Test would pick up wrong rand, so we hardwire the value for random() +libs='-lsocket -lm -lbsd' +randbits=31 +archobjs="os2$obj_ext dl_os2$obj_ext" + +# Run files without extension with sh: +EXECSHELL=sh + +cccdlflags='-Zdll' +dlsrc='dl_dlopen.xs' +ld='gcc' + +#cppflags='-DDOSISH -DOS2=2 -DEMBED -I.' + +# for speedup: (some patches to ungetc are also needed): +# Note that without this guy tests 8 and 10 of io/tell.t fail, with it 11 fails + +stdstdunder=`echo "#include <stdio.h>" | cpp | egrep -c "char +\* +_ptr"` +d_stdstdio='define' +d_stdiobase='define' +d_stdio_ptr_lval='define' +d_stdio_cnt_lval='define' + +if test "$stdstdunder" = 0; then + stdio_ptr='((fp)->ptr)' + stdio_cnt='((fp)->rcount)' + stdio_base='((fp)->buffer)' + stdio_bufsiz='((fp)->rcount + (fp)->ptr - (fp)->buffer)' + ccflags="$ccflags -DMYTTYNAME" + myttyname='define' +else + stdio_ptr='((fp)->_ptr)' + stdio_cnt='((fp)->_rcount)' + stdio_base='((fp)->_buffer)' + stdio_bufsiz='((fp)->_rcount + (fp)->_ptr - (fp)->_buffer)' +fi + +# to put into config.sh +myttyname="$myttyname" + +# To have manpages installed +nroff='nroff.cmd' +# above will be overwritten otherwise, indented to avoid config.sh + _nroff='nroff.cmd' + +# should be handled automatically by Configure now. +ln='cp' +# Will be rewritten otherwise, indented to not put in config.sh + _ln='cp' +lns='cp' + +nm_opt='-p' + +####### We define these functions ourselves + +d_getprior='define' +d_setprior='define' + +if [ "X$usethreads" = "X$define" ]; then + ccflags="-Zmt $ccflags" + cppflags="-Zmt $cppflags" # Do we really need to set this? + aout_ccflags="-DUSE_THREADS $aout_ccflags" + aout_cppflags="-DUSE_THREADS $aout_cppflags" + aout_lddlflags="-Zmt $aout_lddlflags" + aout_ldflags="-Zmt $aout_ldflags" +fi + +# The next two are commented. pdksh handles #!, extproc gives no path part. +# sharpbang='extproc ' +# shsharp='false' + +# Commented: +#startsh='extproc ksh\\n#! sh' + +# Copy pod: + +cp ./README.os2 ./pod/perlos2.pod + +# Now install the external modules. We are in the ./hints directory. + +cd ./os2/OS2 + +if ! test -d ../../ext/OS2 ; then + mkdir ../../ext/OS2 +fi + +cp -rfu * ../../ext/OS2/ + +# Install tests: + +for xxx in * ; do + if $test -d $xxx/t; then + cp -uf $xxx/t/*.t ../../t/lib + else + if $test -d $xxx; then + cd $xxx + for yyy in * ; do + if $test -d $yyy/t; then + cp -uf $yyy/t/*.t ../../t/lib + fi + done + cd .. + fi + fi +done + + +# Now go back +cd ../.. diff --git a/contrib/perl5/hints/os390.sh b/contrib/perl5/hints/os390.sh new file mode 100644 index 0000000..1cf945d --- /dev/null +++ b/contrib/perl5/hints/os390.sh @@ -0,0 +1,56 @@ +# hints/os390.sh +# +# OS/390 hints by David J. Fiander <davidf@mks.com> +# +# OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to: +# +# John Pfuntner <pfuntner@vnet.ibm.com> +# Len Johnson <lenjay@ibm.net> +# Bud Huff <BAHUFF@us.oracle.com> +# Peter Prymmer <pvhp@forte.com> +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Tim Bunce <Tim.Bunce@ig.co.uk> +# +# as well as the authors of the aix.sh file +# + +# To get ANSI C, we need to use c89, and ld doesn't exist +cc='c89' +ld='c89' +# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again, +# YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant. +# -DEBCDIC should come from Configure. +ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' +# Turning on optimization breaks perl +optimize='none' + +alignbytes=8 + +usemymalloc='n' + +so='a' + +# On OS/390, libc.a doesn't really hold anything at all, +# so running nm on it is pretty useless. +usenm='n' + +# Dynamic loading doesn't work on OS/390 quite yet +usedl='n' +dlext='none' + +# Configure can't figure this out for some reason +d_shmatprototype='define' + +usenm='false' +i_time='define' +i_systime='define' + +# (from aix.sh) +# uname -m output is too specific and not appropriate here +# osname should come from Configure +# +case "$archname" in +'') archname="$osname" ;; +esac + +archobjs=ebcdic.o diff --git a/contrib/perl5/hints/powerux.sh b/contrib/perl5/hints/powerux.sh new file mode 100644 index 0000000..6d6bac0 --- /dev/null +++ b/contrib/perl5/hints/powerux.sh @@ -0,0 +1,95 @@ +# Hints for the PowerUX operating system running on Concurrent (formerly +# Harris) NightHawk machines. Written by Tom.Horsley@mail.ccur.com +# +# Note: The OS is fated to change names again to PowerMAX OS, but this +# PowerUX file should still work (I wish marketing would make up their mind +# about the name :-). +# +# This config uses dynamic linking and the Concurrent C compiler. It has +# been tested on Power PC based 6000 series machines running PowerUX. + +# Internally at Concurrent, we use a source management tool which winds up +# giving us read-only copies of source trees that are mostly symbolic links. +# That upsets the perl build process when it tries to edit opcode.h and +# embed.h or touch perly.c or perly.h, so turn those files into "real" files +# when Configure runs. (If you already have "real" source files, this won't +# do anything). +# +if [ -x /usr/local/mkreal ] +then + for i in '.' '..' + do + for j in embed.h opcode.h perly.h perly.c + do + if [ -h $i/$j ] + then + ( cd $i ; /usr/local/mkreal $j ; chmod 666 $j ) + fi + done + done +fi + +# We DO NOT want -lmalloc or -lPW, we DO need -lgen to follow -lnsl, so +# fixup libswanted to reflect that desire (also need -lresolv if you want +# DNS name lookup to work, which seems desirable :-). +# +libswanted=`echo ' '$libswanted' ' | sed -e 's/ malloc / /' -e 's/ PW / /' -e 's/ nsl / nsl gen resolv /'` + +# We DO NOT want /usr/ucblib in glibpth +# +glibpth=`echo ' '$glibpth' ' | sed -e 's@ /usr/ucblib @ @'` + +# Yes, csh exists, but doesn't work worth beans, if perl tries to use it, +# the glob test fails, so just pretend it isn't there... +# +d_csh='undef' + +# Need to use Concurrent cc for most of these options to be meaningful (if you +# want to get this to work with gcc, you're on your own :-). Passing +# -Bexport to the linker when linking perl is important because it leaves +# the interpreter internal symbols visible to the shared libs that will be +# loaded on demand (and will try to reference those symbols). +# +cc='/bin/cc' +cccdlflags='-Zpic' +ccdlflags='-Zlink=dynamic -Wl,-Bexport' +lddlflags='-Zlink=so' + +# Configure sometime finds what it believes to be ndbm header files on the +# system and imagines that we have the NDBM library, but we really don't. +# There is something there that once resembled ndbm, but it is purely +# for internal use in some tool and has been hacked beyond recognition +# (or even function :-) +# +i_ndbm='undef' + +# There is a bug in memcmp (which I hope will be fixed soon) which sometimes +# fails to provide the correct compare status (it is data dependant), so just +# pretend there is no memcmp... +# +d_memcmp='undef' + +# Due to problems with dynamic linking (which I also hope will be fixed soon) +# you can't build a libperl.so, the core has to be in the static part of the +# perl executable. +# +useshrplib='false' + +# PowerMAX OS has support for a few different kinds of filesystems. The +# newer "xfs" filesystem does *not* report a reasonable value in the +# 'nlinks' field of stat() info for directories (in fact, it is always 1). +# Since xfs is the only filesystem which supports partitions bigger than +# 2gig and you can't hardly buy a disk that small anymore, xfs is coming in +# to greater and greater use, so we pretty much have no choice but to +# abandon all hope that number of links will mean anything. +# +dont_use_nlink=define + +# Misc other flags that might be able to change, but I know these work right. +# +d_suidsafe='define' +d_isascii='define' +d_mymalloc='undef' +usemymalloc='n' +ssizetype='ssize_t' +usevfork='false' diff --git a/contrib/perl5/hints/qnx.sh b/contrib/perl5/hints/qnx.sh new file mode 100644 index 0000000..b53a33d --- /dev/null +++ b/contrib/perl5/hints/qnx.sh @@ -0,0 +1,182 @@ +#---------------------------------------------------------------- +# QNX hints +# +# As of perl5.004_04, all tests pass under: +# QNX 4.23A +# Watcom 10.6 with Beta/970211.wcc.update.tar.F +# socket3r.lib Nov21 1996. +# +# As with many unix ports, this one depends on a few "standard" +# unix utilities which are not necessarily standard for QNX. +# +# /bin/sh This is used heavily by Configure and then by +# perl itself. QNX's version is fine, but Configure +# will choke on the 16-bit version, so if you are +# running QNX 4.22, link /bin/sh to /bin32/ksh +# ar This is the standard unix library builder. +# We use wlib. With Watcom 10.6, when wlib is +# linked as "ar", it behaves like ar and all is +# fine. Under 9.5, a cover is required. One is +# included in ../qnx +# nm This is used (optionally) by configure to list +# the contents of libraries. I will generate +# a cover function on the fly in the UU directory. +# cpp Configure and perl need a way to invoke a C +# preprocessor. I have created a simple cover +# for cc which does the right thing. Without this, +# Configure will create it's own wrapper which works, +# but it doesn't handle some of the command line arguments +# that perl will throw at it. +# make You really need GNU make to compile this. GNU make +# ships by default with QNX 4.23, but you can get it +# from quics for earlier versions. +#---------------------------------------------------------------- +# Outstanding Issues: +# lib/posix.t test fails on test 17 because acos(1) != 0. +# Resolved in 970211 Beta +# lib/io_udp.t test hangs because of a bug in getsockname(). +# Fixed in latest BETA socket3r.lib +# There is currently no support for dynamically linked +# libraries. +#---------------------------------------------------------------- +# These hints were submitted by: +# Norton T. Allen +# Harvard University Atmospheric Research Project +# allen@huarp.harvard.edu +# +# If you have suggestions or changes, please let me know. +#---------------------------------------------------------------- + +echo "" +echo "Some tests may fail. Please read the hints/qnx.sh file." +echo "" + +#---------------------------------------------------------------- +# At present, all QNX systems are equivalent architectures, +# so it is reasonable to call archname=x86-qnx rather than +# making an unnecessary distinction between AT-qnx and PCI-qnx, +# for example. +#---------------------------------------------------------------- +archname='x86-qnx' + +#---------------------------------------------------------------- +# QNX doesn't come with a csh and the ports of tcsh I've used +# don't work reliably: +#---------------------------------------------------------------- +csh='' +d_csh='undef' +full_csh='' + +#---------------------------------------------------------------- +# setuid scripts are secure under QNX. +# (Basically, the same race conditions apply, but assuming +# the scripts are located in a secure directory, the methods +# for exploiting the race condition are defeated because +# the loader expands the script name fully before executing +# the interpreter.) +#---------------------------------------------------------------- +d_suidsafe='define' + +#---------------------------------------------------------------- +# difftime is implemented as a preprocessor macro, so it doesn't show +# up in the libraries: +#---------------------------------------------------------------- +d_difftime='define' + +#---------------------------------------------------------------- +# strtod is in the math library, but we can't tell Configure +# about the math library or it will confuse the linker +#---------------------------------------------------------------- +d_strtod='define' + +lib_ext='3r.lib' +libc='/usr/lib/clib3r.lib' + +#---------------------------------------------------------------- +# ccflags: +# I like to turn the warnings up high, but a few common +# constructs make a lot of noise, so I turn those warnings off. +# A few still remain... +# +# HIDEMYMALLOC is necessary if using mymalloc since it is very +# tricky (though not impossible) to totally replace the watcom +# malloc/free set. +# +# unix.h is required as a general rule for unixy applications. +#---------------------------------------------------------------- +ccflags='-DHIDEMYMALLOC -mf -w4 -Wc,-wcd=202 -Wc,-wcd=203 -Wc,-wcd=302 -Wc,-fi=unix.h' + +#---------------------------------------------------------------- +# ldflags: +# If you want debugging information, you must specify -g on the +# link as well as the compile. If optimize != -g, you should +# remove this. +#---------------------------------------------------------------- +ldflags="-g -N1M" + +so='none' +selecttype='fd_set *' + +#---------------------------------------------------------------- +# Add -lunix to list of libs. This is needed mainly so the nm +# search will find funcs in the unix lib. Including unix.h should +# automatically include the library without -l. +#---------------------------------------------------------------- +libswanted="$libswanted unix" + +if [ -z "`which ar 2>/dev/null`" ]; then + cat <<-'EOF' >&4 + I don't see an 'ar', so I'm guessing you are running + Watcom 9.5 or earlier. You may want to install the ar + cover found in the qnx subdirectory of this distribution. + It might reasonably be placed in /usr/local/bin. + + EOF +fi +#---------------------------------------------------------------- +# Here is a nm script which fixes up wlib's output to look +# something like nm's, at least enough so that Configure can +# use it. +#---------------------------------------------------------------- +if [ -z "`which nm 2>/dev/null`" ]; then + cat <<-EOF + Creating a quick-and-dirty nm cover for Configure to use: + + EOF + cat >./UU/nm <<-'EOF' + #! /bin/sh + #__USAGE + #%C <lib> [<lib> ...] + # Designed to mimic Unix's nm utility to list + # defined symbols in a library + unset WLIB + for i in $*; do wlib $i; done | + awk ' + /^ / { + for (i = 1; i <= NF; i++) { + sub("_$", "", $i) + print "000000 T " $i + } + }' + EOF + chmod +x ./UU/nm +fi + +cppstdin=`which cpp 2>/dev/null` +if [ -n "$cppstdin" ]; then + cat <<-EOF >&4 + I found a cpp at $cppstdin and will assume it is a good + thing to use. If this proves to be false, there is a + thin cover for cpp in the qnx subdirectory of this + distribution which you could move into your path. + EOF + cpprun="$cppstdin" +else + cat <<-EOF >&4 + + There is a cpp cover in the qnx subdirectory of this + distribution which works a little better than the + Configure default. You may wish to copy it to + /usr/local/bin or some other suitable location. + EOF +fi diff --git a/contrib/perl5/hints/sco.sh b/contrib/perl5/hints/sco.sh new file mode 100644 index 0000000..cef1c0c --- /dev/null +++ b/contrib/perl5/hints/sco.sh @@ -0,0 +1,140 @@ +# sco.sh +# Courtesy of Joel Rosi-Schwartz <j.schwartz@agonet.it> + +# Additional SCO version info from +# Peter Wolfe <wolfe@teloseng.com> +# Last revised +# Fri Jul 19 14:54:25 EDT 1996 +# by Andy Dougherty <doughera@lafcol.lafayette.edu> + +# To use gcc, use sh Configure -Dcc=gcc +# But gcc will *not* do dynamic laoding on 3.2.5, +# for that use sh Configure -Dcc=icc +# See below for more details. + +# figure out what SCO version we are. The output of uname -X is +# something like: +# System = SCO_SV +# Node = xxxxx +# Release = 3.2v5.0.0 +# KernelID = 95/08/08 +# Machine = Pentium +# BusType = ISA +# Serial = xxxxx +# Users = 5-user +# OEM# = 0 +# Origin# = 1 +# NumCPU = 1 + +# Use /bin/uname (because Gnu may be first on the path and +# it does not support -X) to figure out what SCO version we are: +case `/bin/uname -X | egrep '^Release'` in +*3.2v4.*) scorls=3 ;; # I don't know why this is 3 instead of 4 :-) +*3.2v5.*) scorls=5 ;; +*) scorls=3 ;; # this probabaly shouldn't happen +esac + +# Try to use libintl.a since it has strcoll and strxfrm +libswanted="intl $libswanted" +# Try to use libdbm.nfs.a since it has dbmclose. +# +if test -f /usr/lib/libdbm.nfs.a ; then + libswanted=`echo "dbm.nfs $libswanted " | sed -e 's/ dbm / /'` +fi +set X $libswanted +shift +libswanted="$*" + +# We don't want Xenix cross-development libraries +glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'` +xlibpth='' + +case "$cc" in +*gcc*) ccflags="$ccflags -U M_XENIX" + optimize="$optimize -O2" + ;; +scocc) ;; + +# On SCO 3.2v5 both cc and icc can build dynamic load, but cc core +# dumps if optimised, so I am only setting this up for icc. +# It is possible that some 3.2v4.2 system have icc, I seem to +# recall it was available as a seperate product but I have no +# knowledge if it can do dynamic loading and if so how. +# Joel Rosi-Schwartz +icc)# Apparently, SCO's cc gives rather verbose warnings + # Set -w0 to turn them off. + case $scorls in + 3) ccflags="$ccflags -W0 -quiet -U M_XENIX" ;; + 5) ccflags="$ccflags -belf -w0 -U M_XENIX" + optimize="-O1" # -g -O1 will not work + # optimize="-O0" may be needed for pack test to pass. + lddlflags='-G -L/usr/local/lib' + ldflags=' -W l,-Bexport -L/usr/local/lib' + dlext='so' + dlsrc='dl_dlopen.xs' + usedl='define' + ;; + esac + ;; + +*) # Apparently, miniperl core dumps if -O is used. + case "$optimize" in + '') optimize=none ;; + esac + # Apparently, SCO's cc gives rather verbose warnings + # Set -w0 to turn them off. + case $scorls in + 3) ccflags="$ccflags -W0 -quiet -U M_XENIX" ;; + 5) ccflags="$ccflags -w0 -U M_XENIX -DPERL_SCO5" ;; + esac + ;; +esac +i_varargs=undef + +# I have received one report that nm extraction doesn't work if you're +# using the scocc compiler. This system had the following 'myconfig' +# uname='xxx xxx 3.2 2 i386 ' +# cc='scocc', optimize='-O' +usenm='false' + +# If you want to use nm, you'll probably have to use nm -p. The +# following does that for you: +nm_opt='-p' + +# I have received one report that you can't include utime.h in +# pp_sys.c. Uncomment the following line if that happens to you: +# i_utime=undef + +# Apparently, some versions of SCO include both .so and .a libraries, +# but they don't mix as they do on other ELF systems. The upshot is +# that Configure finds -ldl (libdl.so) but 'ld' complains it can't +# find libdl.a. +# I don't know which systems have this feature, so I'll just remove +# -dl from libswanted for all SCO systems until someone can figure +# out how to get dynamic loading working on SCO. +# +# The output of uname -X on one such system was +# System = SCO_SV +# Node = xxxxx +# Release = 3.2v5.0.0 +# KernelID = 95/08/08 +# Machine = Pentium +# BusType = ISA +# Serial = xxxxx +# Users = 5-user +# OEM# = 0 +# Origin# = 1 +# NumCPU = 1 +# +# The 5.0.0 on the Release= line is probably the thing to watch. +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Thu Feb 1 15:06:56 EST 1996 +libswanted=`echo " $libswanted " | sed -e 's/ dl / /'` +set X $libswanted +shift +libswanted="$*" + +# Perl 5.003_05 and later try to include both <time.h> and <sys/select.h> +# in pp_sys.c, but that fails due to a redefinition of struct timeval. +# This will generate a WHOA THERE. Accept the default. +i_sysselct=$undef diff --git a/contrib/perl5/hints/sco_2_3_0.sh b/contrib/perl5/hints/sco_2_3_0.sh new file mode 100644 index 0000000..146363a --- /dev/null +++ b/contrib/perl5/hints/sco_2_3_0.sh @@ -0,0 +1,2 @@ +yacc='/usr/bin/yacc -Sm25000' +i_dirent=undef diff --git a/contrib/perl5/hints/sco_2_3_1.sh b/contrib/perl5/hints/sco_2_3_1.sh new file mode 100644 index 0000000..146363a --- /dev/null +++ b/contrib/perl5/hints/sco_2_3_1.sh @@ -0,0 +1,2 @@ +yacc='/usr/bin/yacc -Sm25000' +i_dirent=undef diff --git a/contrib/perl5/hints/sco_2_3_2.sh b/contrib/perl5/hints/sco_2_3_2.sh new file mode 100644 index 0000000..e113a4e --- /dev/null +++ b/contrib/perl5/hints/sco_2_3_2.sh @@ -0,0 +1,2 @@ +yacc='/usr/bin/yacc -Sm25000' +libswanted=`echo " $libswanted "| sed 's/ x / /'` diff --git a/contrib/perl5/hints/sco_2_3_3.sh b/contrib/perl5/hints/sco_2_3_3.sh new file mode 100644 index 0000000..6d398fc --- /dev/null +++ b/contrib/perl5/hints/sco_2_3_3.sh @@ -0,0 +1,3 @@ +yacc='/usr/bin/yacc -Sm25000' +echo "NOTE: you may have problems due to a spurious semicolon on the strerror()" >&4 +echo "macro definition in /usr/include/string.h. If so, delete the semicolon." >&4 diff --git a/contrib/perl5/hints/sco_2_3_4.sh b/contrib/perl5/hints/sco_2_3_4.sh new file mode 100644 index 0000000..34bcada --- /dev/null +++ b/contrib/perl5/hints/sco_2_3_4.sh @@ -0,0 +1,5 @@ +yacc='/usr/bin/yacc -Sm25000' +ccflags="$ccflags -UM_I86" +usemymalloc='y' +echo "NOTE: you may have problems due to a spurious semicolon on the strerror()" >&4 +echo "macro definition in /usr/include/string.h. If so, delete the semicolon." >&4 diff --git a/contrib/perl5/hints/solaris_2.sh b/contrib/perl5/hints/solaris_2.sh new file mode 100644 index 0000000..856f801 --- /dev/null +++ b/contrib/perl5/hints/solaris_2.sh @@ -0,0 +1,441 @@ +# hints/solaris_2.sh +# Last modified: Wed May 27 13:04:45 EDT 1998 +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Based on input from lots of folks, especially +# Dean Roehrich <roehrich@ironwood-fddi.cray.com> + +# If perl fails tests that involve dynamic loading of extensions, and +# you are using gcc, be sure that you are NOT using GNU as and ld. One +# way to do that is to invoke Configure with +# +# sh Configure -Dcc='gcc -B/usr/ccs/bin/' +# + +# See man vfork. +usevfork=false + +d_suidsafe=define + +# Avoid all libraries in /usr/ucblib. +set `echo $glibpth | sed -e 's@/usr/ucblib@@'` +glibpth="$*" + +# Remove bad libraries. -lucb contains incompatible routines. +# -lld doesn't do anything useful. +# -lmalloc can cause a problem with GNU CC & Solaris. Specifically, +# libmalloc.a may allocate memory that is only 4 byte aligned, but +# GNU CC on the Sparc assumes that doubles are 8 byte aligned. +# Thanks to Hallvard B. Furuseth <h.b.furuseth@usit.uio.no> +set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ malloc @ @' -e 's@ ucb @ @'` +libswanted="$*" + +# Look for architecture name. We want to suggest a useful default. +case "$archname" in +'') + if test -f /usr/bin/arch; then + archname=`/usr/bin/arch` + archname="${archname}-${osname}" + elif test -f /usr/ucb/arch; then + archname=`/usr/ucb/arch` + archname="${archname}-${osname}" + fi + ;; +esac + +###################################################### +# General sanity testing. See below for excerpts from the Solaris FAQ. + +# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995 +# Date: Thu, 7 Sep 1995 16:31:40 -0500 +# From: Dean Roehrich <roehrich@ironwood-fddi.cray.com> +# To: perl5-porters@africa.nicoh.com +# Subject: Re: On perl5/solaris/gcc + +# Here's another draft of the perl5/solaris/gcc sanity-checker. + +case `type ${cc:-cc}` in +*/usr/ucb/cc*) cat <<END >&4 + +NOTE: Some people have reported problems with /usr/ucb/cc. +If you have difficulties, please make sure the directory +containing your C compiler is before /usr/ucb in your PATH. + +END +;; +esac + + +# Check that /dev/fd is mounted. If it is not mounted, let the +# user know that suid scripts may not work. +/usr/bin/df /dev/fd 2>&1 > /dev/null +case $? in +0) ;; +*) + cat <<END >&4 + +NOTE: Your system does not have /dev/fd mounted. If you want to +be able to use set-uid scripts you must ask your system administrator +to mount /dev/fd. + +END + ;; +esac + + +# See if libucb can be found in /usr/lib. If it is, warn the user +# that this may cause problems while building Perl extensions. +/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1 +case $? in +0) + cat <<END >&4 + +NOTE: libucb has been found in /usr/lib. libucb should reside in +/usr/ucblib. You may have trouble while building Perl extensions. + +END +;; +esac + +# Use shell built-in 'type' command instead of /usr/bin/which to +# avoid possible csh start-up problems and also to use the same shell +# we'll be using to Configure and make perl. +# The path name is the last field in the output, but the type command +# has an annoying array of possible outputs, e.g.: +# make is hashed (/opt/gnu/bin/make) +# cc is /usr/ucb/cc +# foo not found +# use a command like type make | awk '{print $NF}' | sed 's/[()]//g' + +# See if make(1) is GNU make(1). +# If it is, make sure the setgid bit is not set. +make -v > make.vers 2>&1 +if grep GNU make.vers > /dev/null 2>&1; then + tmp=`type make | awk '{print $NF}' | sed 's/[()]//g'` + case "`/usr/bin/ls -lL $tmp`" in + ??????s*) + cat <<END >&2 + +NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id +bit set. You must either rearrange your PATH to put /usr/ccs/bin before the +GNU utilities or you must ask your system administrator to disable the +set-group-id bit on GNU make. + +END + ;; + esac +fi +rm -f make.vers + +# XXX EXPERIMENTAL A.D. 2/27/1998 +# XXX This script UU/cc.cbu will get 'called-back' by Configure after it +# XXX has prompted the user for the C compiler to use. +cat > UU/cc.cbu <<'EOSH' +# If the C compiler is gcc: +# - check the fixed-includes +# - check as(1) and ld(1), they should not be GNU +# (GNU as and ld 2.8.1 and later are reportedly ok, however.) +# If the C compiler is not gcc: +# - check as(1) and ld(1), they should not be GNU +# (GNU as and ld 2.8.1 and later are reportedly ok, however.) +# +# Watch out in case they have not set $cc. + +# Get gcc to share its secrets. +echo 'main() { return 0; }' > try.c + # Indent to avoid propagation to config.sh + verbose=`${cc:-cc} -v -o try try.c 2>&1` + +if echo "$verbose" | grep '^Reading specs from' >/dev/null 2>&1; then + # + # Using gcc. + # + #echo Using gcc + + tmp=`echo "$verbose" | grep '^Reading' | + awk '{print $NF}' | sed 's/specs$/include/'` + + # Determine if the fixed-includes look like they'll work. + # Doesn't work anymore for gcc-2.7.2. + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + if echo "$verbose" | grep ' /usr/ccs/bin/as ' >/dev/null 2>&1; then + : + else + cat <<END >&2 + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +I'm arranging to use /usr/ccs/bin/as by including -B/usr/ccs/bin/ +in your ${cc:-cc} command. (Note that the trailing "/" is required.) + +END + cc="${cc:-cc} -B/usr/ccs/bin/" + fi + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + # Recompute $verbose since we may have just changed $cc. + verbose=`${cc:-cc} -v -o try try.c 2>&1 | grep ld 2>&1` + if echo "$verbose" | grep ' /usr/ccs/bin/ld ' >/dev/null 2>&1; then + : + else + # It's not /usr/ccs/bin/ld - but it might be egcs's ld wrapper, + # which calls /usr/ccs/bin/ld in turn. Passing -V to it will + # make it show its true colors. + + myld=`echo $verbose| grep ld | awk '/\/ld/ {print $1}'` + # This assumes that gcc's output will not change, and that + # /full/path/to/ld will be the first word of the output. + + # all Solaris versions of ld I've seen contain the magic + # string used in the grep below. + if $myld -V 2>&1 | grep "ld: Software Generation Utilities" >/dev/null 2>&1; then + cat <<END >&2 + +Aha. You're using egcs and /usr/ccs/bin/ld. + +END + + else + cat <<END >&2 + +NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl. +I'm arranging to use /usr/ccs/bin/ld by including -B/usr/ccs/bin/ +in your ${cc:-cc} command. (Note that the trailing "/" is required.) + +END + cc="${cc:-cc} -B/usr/ccs/bin/" + fi + fi + +else + # + # Not using gcc. + # + #echo Not using gcc + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + case `as --version < /dev/null 2>&1` in + *GNU*) + cat <<END >&2 + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +You must arrange to use /usr/ccs/bin/as, perhaps by adding /usr/ccs/bin +to the beginning of your PATH. + +END + ;; + esac + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + # ld --version doesn't properly report itself as a GNU tool, + # as of ld version 2.6, so we need to be more strict. TWP 9/5/96 + gnu_ld=false + case `ld --version < /dev/null 2>&1` in + *GNU*|ld\ version\ 2*) + gnu_ld=true ;; + *) ;; + esac + if $gnu_ld ; then : + else + # Try to guess from path + case `type ld | awk '{print $NF}'` in + *gnu*|*GNU*|*FSF*) + gnu_ld=true ;; + esac + fi + if $gnu_ld ; then + cat <<END >&2 + +NOTE: You are apparently using GNU ld(1). GNU ld(1) will not build Perl. +You must arrange to use /usr/ccs/bin/ld, perhaps by adding /usr/ccs/bin +to the beginning of your PATH. + +END + fi + +fi + +# as --version or ld --version might dump core. +rm -f try try.c +rm -f core + +# XXX +EOSH + +if [ "X$usethreads" = "X$define" ]; then + ccflags="-D_REENTRANT $ccflags" + # -lpthread needs to come before -lc but after other libraries such + # as -lgdbm and such like. We assume here that -lc is present in + # libswanted. If that fails to be true in future, then this can be + # changed to add pthread to the very end of libswanted. + # sched_yield is in -lposix4 + set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'` + shift + libswanted="$*" + + # 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. + # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report. + # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by + # siglongjmp in a MT program". As of 19980622, there is no patch + # available. + cat >try.c <<'EOM' + /* Test for sig(set|long)jmp bug. */ + #include <setjmp.h> + + main() + { + sigjmp_buf env; + int ret; + + ret = sigsetjmp(env, 1); + if (ret) { return ret == 2; } + siglongjmp(env, 2); + } +EOM + if test "`arch`" = i86pc -a "$osvers" = 2.6 \ + && ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then + d_sigsetjmp=$undef + cat << 'EOM' >&2 + +You will see a *** WHOA THERE!!! *** message from Configure for +d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh +for more information. + +EOM + fi +fi + +# This is just a trick to include some useful notes. +cat > /dev/null <<'End_of_Solaris_Notes' + +Here are some notes kindly contributed by Dean Roehrich. + +----- +Generic notes about building Perl5 on Solaris: +- Use /usr/ccs/bin/make. +- If you use GNU make, remove its setgid bit. +- Remove all instances of *ucb* from your path. +- Make sure libucb is not in /usr/lib (it should be in /usr/ucblib). +- Do not use GNU as or GNU ld, or any of GNU binutils or GNU libc. +- Do not use /usr/ucb/cc. +- Do not change Configure's default answers, except for the path names. +- Do not use -lmalloc. +- Do not build on SunOS 4 and expect it to work properly on SunOS 5. +- /dev/fd must be mounted if you want set-uid scripts to work. + + +Here are the gcc-related questions and answers from the Solaris 2 FAQ. Note +the themes: + - run fixincludes + - run fixincludes correctly + - don't use GNU as or GNU ld + +Question 5.7 covers the __builtin_va_alist problem people are always seeing. +Question 6.1.3 covers the GNU as and GNU ld issues which are always biting +people. +Question 6.9 is for those who are still trying to compile Perl4. + +The latest Solaris 2 FAQ can be found in the following locations: + rtfm.mit.edu:/pub/usenet-by-group/comp.sys.sun.admin + ftp.fwi.uva.nl:/pub/solaris + +Perl5 comes with a script in the top-level directory called "myconfig" which +will print a summary of the configuration in your config.sh. My summary for +Solaris 2.4 and gcc 2.6.3 follows. I have also built with gcc 2.7.0 and the +results are identical. This configuration was generated with Configure's -d +option (take all defaults, don't bother prompting me). All tests pass for +Perl5.001, patch.1m. + +Summary of my perl5 (patchlevel 1) configuration: + Platform: + osname=solaris, osver=2.4, archname=sun4-solaris + uname='sunos poplar 5.4 generic_101945-27 sun4d sparc ' + hint=recommended + Compiler: + cc='gcc', optimize='-O', ld='gcc' + cppflags='' + ccflags ='' + ldflags ='' + stdchar='unsigned char', d_stdstdio=define, usevfork=false + voidflags=15, castflags=0, d_casti32=define, d_castneg=define + intsize=4, alignbytes=8, usemymalloc=y, randbits=15 + Libraries: + so=so + libpth=/lib /usr/lib /usr/ccs/lib /usr/local/lib + libs=-lsocket -lnsl -ldl -lm -lc -lcrypt + libc=/usr/lib/libc.so + Dynamic Linking: + dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef + cccdlflags='-fpic', ccdlflags=' ', lddlflags='-G' + + +Dean +roehrich@cray.com +9/7/95 + +----------- + +From: Casper.Dik@Holland.Sun.COM (Casper H.S. Dik - Network Security Engineer) +Subject: Solaris 2 Frequently Asked Questions (FAQ) 1.48 +Date: 25 Jul 1995 12:20:18 GMT + +5.7) Why do I get __builtin_va_alist or __builtin_va_arg_incr undefined? + + You're using gcc without properly installing the gcc fixed + include files. Or you ran fixincludes after installing gcc + w/o moving the gcc supplied varargs.h and stdarg.h files + out of the way and moving them back again later. This often + happens when people install gcc from a binary distribution. + If there's a tmp directory in gcc's include directory, fixincludes + didn't complete. You should have run "just-fixinc" instead. + + Another possible cause is using ``gcc -I/usr/include.'' + +6.1) Where is the C compiler or where can I get one? + + [...] + + 3) Gcc. + + Gcc is available from the GNU archives in source and binary + form. Look in a directory called sparc-sun-solaris2 for + binaries. You need gcc 2.3.3 or later. You should not use + GNU as or GNU ld. Make sure you run just-fixinc if you use + a binary distribution. Better is to get a binary version and + use that to bootstrap gcc from source. + + [...] + + When you install gcc, don't make the mistake of installing + GNU binutils or GNU libc, they are not as capable as their + counterparts you get with Solaris 2.x. + +6.9) I can't get perl 4.036 to compile or run. + + Run Configure, and use the solaris_2_0 hints, *don't* use + the solaris_2_1 hints and don't use the config.sh you may + already have. First you must make sure Configure and make + don't find /usr/ucb/cc. (It must use gcc or the native C + compiler: /opt/SUNWspro/bin/cc) + + Some questions need a special answer. + + Are your system (especially dbm) libraries compiled with gcc? [y] y + + yes: gcc 2.3.3 or later uses the standard calling + conventions, same as Sun's C. + + Any additional cc flags? [ -traditional -Dvolatile=__volatile__ + -I/usr/ucbinclude] -traditional -Dvolatile=__volatile__ + Remove /usr/ucbinclude. + + Any additional libraries? [-lsocket -lnsl -ldbm -lmalloc -lm + -lucb] -lsocket -lnsl -lm + + Don't include -ldbm, -lmalloc and -lucb. + + Perl 5 compiled out of the box. + +End_of_Solaris_Notes + diff --git a/contrib/perl5/hints/stellar.sh b/contrib/perl5/hints/stellar.sh new file mode 100644 index 0000000..23e15e9 --- /dev/null +++ b/contrib/perl5/hints/stellar.sh @@ -0,0 +1,2 @@ +optimize="-O0" +ccflags="$ccflags -nw" diff --git a/contrib/perl5/hints/sunos_4_0.sh b/contrib/perl5/hints/sunos_4_0.sh new file mode 100644 index 0000000..56a87bf --- /dev/null +++ b/contrib/perl5/hints/sunos_4_0.sh @@ -0,0 +1,2 @@ +ccflags="$ccflags -DFPUTS_BOTCH" +i_unistd=$undef diff --git a/contrib/perl5/hints/sunos_4_1.sh b/contrib/perl5/hints/sunos_4_1.sh new file mode 100644 index 0000000..4585d79 --- /dev/null +++ b/contrib/perl5/hints/sunos_4_1.sh @@ -0,0 +1,72 @@ +# hints/sunos_4_1.sh +# Last modified: Wed May 27 11:00:02 EDT 1998 +# Andy Dougherty <doughera@lafcol.lafayette.edu> + +case "$cc" in +*gcc*) usevfork=false + # GNU as and GNU ld might not work. See the INSTALL file. + ;; +*) usevfork=true ;; +esac + +# Configure will issue a WHOA warning. The problem is that +# Configure finds getzname, not tzname. If you're in the System V +# environment, you can set d_tzname='define' since tzname[] is +# available in the System V environment. +d_tzname='undef' + +# Configure will issue a WHOA warning. The problem is that unistd.h +# contains incorrect prototypes for some functions in the usual +# BSD-ish environment. In particular, it has +# extern int getgroups(/* int gidsetsize, gid_t grouplist[] */); +# but groupslist[] ought to be of type int, not gid_t. +# This is only really a problem for perl if the +# user is using gcc, and not running in the SysV environment. +# The gcc fix-includes script exposes those incorrect prototypes. +# There may be other examples as well. Volunteers are welcome to +# track them all down :-). In the meantime, we'll just skip unistd.h +# for SunOS in most of the code. (However, see ext/POSIX/hints/sunos_4.pl.) +i_unistd='undef' + +cat << 'EOM' >&4 + +You will probably see *** WHOA THERE!!! *** messages from Configure for +d_tzname and i_unistd. Keep the recommended values. See +hints/sunos_4_1.sh for more information. +EOM + +# The correct setting of groupstype depends on which version of the C +# library is used. If you are in the 'System V environment' +# (i.e. you have /usr/5bin ahead of /usr/bin in your PATH), and +# you use Sun's cc compiler, then you'll pick up /usr/5bin/cc, which +# links against the C library in /usr/5lib. This library has +# groupstype='gid_t'. +# If you are in the normal BSDish environment, then you'll pick up +# /usr/ucb/cc, which links against the C library in /usr/lib. That +# library has groupstype='int'. +# +# If you are using gcc, it links against the C library in /usr/lib +# independent of whether or not you are in the 'System V environment'. +# If you want to use the System V libraries, then you need to +# manually set groupstype='gid_t' and add explicit references to +# /usr/5lib when Configure prompts you for where to look for libraries. +# +# Check if user is in a bsd or system 5 type environment +if cat -b /dev/null 2>/dev/null +then # bsd + groupstype='int' +else # sys5 + case "$cc" in + *gcc*) groupstype='int';; # gcc doesn't do anything special + *) groupstype='gid_t';; # /usr/5bin/cc pulls in /usr/5lib/ stuff. + esac +fi + +# If you get the message "unresolved symbol '__lib_version' " while +# linking, your system probably has the optional 'acc' compiler (and +# libraries) installed, but you are using the bundled 'cc' compiler with +# the unbundled libraries. The solution is either to use 'acc' and the +# unbundled libraries (specifically /lib/libm.a), or 'cc' and the bundled +# library. +# +# Thanks to William Setzer <William_Setzer@ncsu.edu> for this info. diff --git a/contrib/perl5/hints/svr4.sh b/contrib/perl5/hints/svr4.sh new file mode 100644 index 0000000..cf6906d --- /dev/null +++ b/contrib/perl5/hints/svr4.sh @@ -0,0 +1,153 @@ +# svr4 hints, System V Release 4.x +# Last modified 1996/10/25 by Tye McQueen, tye@metronet.com +# Merged 1998/04/23 with perl5.004_04 distribution by +# Andy Dougherty <doughera@lafayette.edu> + +# Use Configure -Dcc=gcc to use gcc. +case "$cc" in +'') cc='/bin/cc' + test -f $cc || cc='/usr/ccs/bin/cc' + ;; +esac + +# We include support for using libraries in /usr/ucblib, but the setting +# of libswanted excludes some libraries found there. If you run into +# problems, you may have to remove "ucb" from libswanted. Just delete +# the comment '#' from the sed command below. +ldflags='-L/usr/ccs/lib -L/usr/ucblib' +ccflags='-I/usr/include -I/usr/ucbinclude' +# Don't use problematic libraries: +libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'` +# libmalloc.a - Probably using Perl's malloc() anyway. +# libucb.a - Remove it if you have problems ld'ing. We include it because +# it is needed for ODBM_File and NDBM_File extensions. + +if [ -r /usr/ucblib/libucb.a ]; then # If using BSD-compat. library: + d_Gconvert='gcvt((x),(n),(b))' # Try gcvt() before gconvert(). + # Use the "native" counterparts, not the BSD emulation stuff: + d_bcmp='undef' d_bcopy='undef' d_bzero='undef' d_safebcpy='undef' + d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef' + d_setlinebuf='undef' + # d_setregid='undef' d_setreuid='undef' # ??? +fi + +# UnixWare has /usr/lib/libc.so.1, /usr/lib/libc.so.1.1, and +# /usr/ccs/lib/libc.so. Configure chooses libc.so.1.1 while it +# appears that /usr/ccs/lib/libc.so contains more symbols: +# +# Try the following if you want to use nm-extraction. We'll just +# skip the nm-extraction phase, since searching for all the different +# library versions will be hard to keep up-to-date. +# +# if [ "" = "$libc" -a -f /usr/ccs/lib/libc.so -a \ +# -f /usr/lib/libc.so.1 -a -f /usr/lib/libc.so.1.1 ]; then +# if nm -h /usr/ccs/lib/libc.so | egrep '\<_?select$' >/dev/null; then +# if nm -h /usr/lib/libc.so.1 | egrep '\<_?select$'` >/dev/null || +# nm -h /usr/lib/libc.so.1.1 | egrep '\<_?select$'` >/dev/null; then +# : +# else +# libc=/usr/ccs/lib/libc.so +# fi +# fi +# fi +# +# Don't bother with nm. Just compile & link a small C program. +case "$usenm" in +'') usenm=false;; +esac + +# Broken C-Shell tests (Thanks to Tye McQueen): +# The OS-specific checks may be obsoleted by the this generic test. + sh_cnt=`sh -c 'echo /*' | wc -c` + csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c` + csh_cnt=`expr 1 + $csh_cnt` +if [ "$sh_cnt" -ne "$csh_cnt" ]; then + echo "You're csh has a broken 'glob', disabling..." >&2 + d_csh='undef' +fi + +# Unixware-specific problems. The undocumented -X argument to uname +# is probably a reasonable way of detecting UnixWare. +# UnixWare has a broken csh. (This might already be detected above). +# In Unixware 2.1.1 the fields in FILE* got renamed! +# Unixware 1.1 can't cast large floats to 32-bit ints. +# Configure can't detect memcpy or memset on Unixware 2 or 7 +# +# Leave leading tabs on the next two lines so Configure doesn't +# propagate these variables to config.sh + uw_ver=`uname -v` + uw_isuw=`uname -X 2>&1 | grep Release` + +if [ "$uw_isuw" = "Release = 4.2" ]; then + case $uw_ver in + 1.1) + d_casti32='undef' + ;; + esac +fi +if [ "$uw_isuw" = "Release = 4.2MP" ]; then + case $uw_ver in + 2.1) + d_csh='undef' + d_memcpy='define' + d_memset='define' + ;; + 2.1.*) + d_csh='undef' + d_memcpy='define' + d_memset='define' + stdio_cnt='((fp)->__cnt)' + d_stdio_cnt_lval='define' + stdio_ptr='((fp)->__ptr)' + d_stdio_ptr_lval='define' + ;; + esac +fi +if [ "$uw_isuw" = "Release = 5" ]; then + case $uw_ver in + 7) + d_csh='undef' + d_memcpy='define' + d_memset='define' + stdio_cnt='((fp)->__cnt)' + d_stdio_cnt_lval='define' + stdio_ptr='((fp)->__ptr)' + d_stdio_ptr_lval='define' + ;; + esac +fi +# End of Unixware-specific tests. + +# DDE SMES Supermax Enterprise Server +case "`uname -sm`" in +"UNIX_SV SMES") + # the *grent functions are in libgen. + libswanted="$libswanted gen" + # csh is broken (also) in SMES + # This may already be detected by the generic test above. + d_csh='undef' + case "$cc" in + *gcc*) ;; + *) # for cc we need -K PIC (not -K pic) + cccdlflags="$cccdlflags -K PIC" + ;; + esac + ;; +esac + +# Configure may fail to find lstat() since it's a static/inline function +# in <sys/stat.h> on Unisys U6000 SVR4, UnixWare 2.x, and possibly other +# SVR4 derivatives. (Though UnixWare has it in /usr/ccs/lib/libc.so.) +d_lstat=define + +d_suidsafe='define' # "./Configure -d" can't figure this out easilly + +cat <<'EOM' >&4 + +If you wish to use dynamic linking, you must use + LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH +or + setenv LD_LIBRARY_PATH `pwd` +before running make. + +EOM diff --git a/contrib/perl5/hints/ti1500.sh b/contrib/perl5/hints/ti1500.sh new file mode 100644 index 0000000..69482d8 --- /dev/null +++ b/contrib/perl5/hints/ti1500.sh @@ -0,0 +1 @@ +usemymalloc='n' diff --git a/contrib/perl5/hints/titanos.sh b/contrib/perl5/hints/titanos.sh new file mode 100644 index 0000000..cea99f8 --- /dev/null +++ b/contrib/perl5/hints/titanos.sh @@ -0,0 +1,39 @@ +# Hints file (perl 4.019) for Kubota Pacific's Titan 3000 Series Machines. +# Created by: JT McDuffie (jt@kpc.com) 26 DEC 1991 +# p5ed by: Jarkko Hietaniemi <jhi@iki.fi> Aug 27 1994 +# NOTE: You should run Configure with tcsh (yes, tcsh). +# Comments by Andy Dougherty <doughera@lafcol.lafayette.edu> 28 Mar 1995 +alignbytes="8" +byteorder="4321" +castflags='0' +gidtype='ushort' +groupstype='unsigned short' +intsize='4' +usenm='true' +nm_opt='-eh' +malloctype='void *' +models='none' +ccflags="$ccflags -I/usr/include/net -DDEBUGGING -DSTANDARD_C" +cppflags="$cppflags -I/usr/include/net -DDEBUGGING -DSTANDARD_C" +stdchar='unsigned char' +# +# Apparently there are some harmful libs in Configure's $libswanted. +# Perl5.000 had: libs='-lnsl -ldbm -lPW -lmalloc -lm' +# Unfortunately, this line prevents users from including things like +# -lgdbm and -ldb, which they may or may not have or want. +# We should probably fiddle with libswanted instead of libs. +# And even there, we should only bother to delete harmful libraries. +# However, I don't know what they are or why they should be deleted, +# so this will have to do for now. --AD 28 Mar 1995 +libswanted='sfio nsl dbm gdbm db PW malloc m' +# +# Extensions: This system can not compile POSIX. We'll let Configure +# figure out the others. +useposix='n' +# +uidtype='ushort' +voidflags='7' +inclwanted='/usr/include /usr/include/net' +# Setting libpth shouldn't be needed any more. +# libpth='/usr/lib /usr/local/lib /lib' +pth='. /bin /usr/bin /usr/ucb /usr/local/bin /usr/X11/bin /usr/lbin /etc /usr/lib' diff --git a/contrib/perl5/hints/ultrix_4.sh b/contrib/perl5/hints/ultrix_4.sh new file mode 100644 index 0000000..d8d2063 --- /dev/null +++ b/contrib/perl5/hints/ultrix_4.sh @@ -0,0 +1,66 @@ +# hints/ultrix_4.sh +# Last updated by Andy Dougherty <doughera@lafcol.lafayette.edu> +# Fri Feb 10 10:04:51 EST 1995 +# +# Use Configure -Dcc=gcc to use gcc. +# +# This used to use -g, but that pulls in -DDEBUGGING by default. +case "$optimize" in +'') + # recent versions have a working compiler. + case "$osvers" in + *4.[45]*) optimize='-O2' ;; + *) optimize='none' ;; + esac + ;; +esac + +# Some users have reported Configure runs *much* faster if you +# replace all occurences of /bin/sh by /bin/sh5 +# Something like: +# sed 's!/bin/sh!/bin/sh5!g' Configure > Configure.sh5 +# Then run "sh5 Configure.sh5 [your options]" + +case "$myuname" in +*risc*) cat <<EOF >&4 +Note that there is a bug in some versions of NFS on the DECStation that +may cause utime() to work incorrectly. If so, regression test io/fs +may fail if run under NFS. Ignore the failure. +EOF +esac + +# Compiler flags that depend on osversion: +case "$cc" in +*gcc*) ;; +*) + case "$osvers" in + *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3200" ;; + *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3200" + # Prototypes sometimes cause compilation errors in 4.2. + prototype=undef + case "$myuname" in + *risc*) d_volatile=undef ;; + esac + ;; + *4.3*) ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3200" ;; + *) ccflags="$ccflags -std -Olimit 3200" ;; + esac + ;; +esac + +# Other settings that depend on $osvers: +case "$osvers" in +*4.1*) ;; +*4.2*) libswanted=`echo $libswanted | sed 's/ malloc / /'` ;; +*4.3*) ;; +*) ranlib='ranlib' ;; +esac + +# Settings that don't depend on $osvers: + +util_cflags='ccflags="$ccflags -DLOCALE_ENVIRON_REQUIRED"' +groupstype='int' +# This will cause a WHOA THERE warning, but it's accurate. The +# configure test should be beefed up to try using the field when +# it can't find any of the standardly-named fields. +d_dirnamlen='define' diff --git a/contrib/perl5/hints/umips.sh b/contrib/perl5/hints/umips.sh new file mode 100644 index 0000000..17d5ff4 --- /dev/null +++ b/contrib/perl5/hints/umips.sh @@ -0,0 +1,39 @@ +# hints/umips.sh +# +# Mips R3030 / Bruker AspectSation running RISC/os (UMIPS) 4.52 +# compiling with gcc 2.7.2 +# +# Created Sat Aug 17 00:17:15 MET DST 1996 +# by Guenter Schmidt <gsc@bruker.de> +# +# uname -a output looks like this: +# xxx xxx 4_52 umips mips + +# Speculative notes on getting cc to work added by +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Tue Aug 20 21:51:49 EDT 1996 + +# Recommend the GNU C Compiler +case "$cc" in +'') echo 'gcc 2.7.2 (or later) is recommended. Use Configure -Dcc=gcc' >&4 + # The test with the native compiler not succeed: + # `sh cflags libperl.a miniperlmain.o` miniperlmain.c + # CCCMD = cc -c -I/usr/local/include -I/usr/include/bsd -DLANGUAGE_C -O + # ccom: Error: ./mg.h, line 12: redeclaration of formal parameter, sv + # int (*svt_set) (SV *sv, MAGIC* mg); + # ------------------------------------------^ + # ccom: Error: ./mg.h, line 12: redeclaration of formal parameter, mg + # This is probably a result of incomplete prototype support. + prototype=undef + ;; +esac + +# POSIX support in RiscOS is not useable +useposix='false' + +# Will give WHOA message, but the prototype are defined in the GCC inc dirs +case "$cc" in +*gcc*) d_shmatprototype='define' ;; +esac + +glibpth="$glibpth /usr/lib/cmplrs/cc" diff --git a/contrib/perl5/hints/unicos.sh b/contrib/perl5/hints/unicos.sh new file mode 100644 index 0000000..ab0203b --- /dev/null +++ b/contrib/perl5/hints/unicos.sh @@ -0,0 +1,16 @@ +case `uname -r` in +6.1*) shellflags="-m+65536" ;; +esac +case "$optimize" in +'') optimize="-O1" ;; +esac +d_setregid='undef' +d_setreuid='undef' +case "$usemymalloc" in +'') # The perl malloc.c SHOULD work says Ilya. + # But for the time being (5.004_68), alas, it doesn't. + # usemymalloc='y' + # ccflags="$ccflags -DNO_RCHECK" + usemymalloc='n' + ;; +esac diff --git a/contrib/perl5/hints/unicosmk.sh b/contrib/perl5/hints/unicosmk.sh new file mode 100644 index 0000000..f0b63cb --- /dev/null +++ b/contrib/perl5/hints/unicosmk.sh @@ -0,0 +1,10 @@ +case "$optimize" in +'') optimize="-O1" ;; +esac +d_setregid='undef' +d_setreuid='undef' +case "$usemymalloc" in +'') usemymalloc='y' + ccflags="$ccflags -DNO_RCHECK" + ;; +esac diff --git a/contrib/perl5/hints/unisysdynix.sh b/contrib/perl5/hints/unisysdynix.sh new file mode 100644 index 0000000..4251ba8 --- /dev/null +++ b/contrib/perl5/hints/unisysdynix.sh @@ -0,0 +1 @@ +d_waitpid=undef diff --git a/contrib/perl5/hints/utekv.sh b/contrib/perl5/hints/utekv.sh new file mode 100644 index 0000000..95a31fd --- /dev/null +++ b/contrib/perl5/hints/utekv.sh @@ -0,0 +1,12 @@ +# XD88/10 UTekV hints by Kaveh Ghazi (ghazi@caip.rutgers.edu) 2/11/92 +# Modified by Andy Dougherty <doughera@lafcol.lafayette.edu> 4 Oct. 1994 + +# The -X18 is only if you are using the Greenhills compiler. +ccflags="$ccflags -X18" + +usemymalloc='y' + +echo " " >&4 +echo "NOTE: You may have to take out makefile dependencies on the files in" >&4 +echo "/usr/include (i.e. /usr/include/ctype.h) or the make will fail. A" >&4 +echo "simple 'grep -v /usr/include/ makefile' should suffice." >&4 diff --git a/contrib/perl5/hints/uts.sh b/contrib/perl5/hints/uts.sh new file mode 100644 index 0000000..9ad72d7 --- /dev/null +++ b/contrib/perl5/hints/uts.sh @@ -0,0 +1,2 @@ +ccflags="$ccflags -DCRIPPLED_CC" +d_lstat=define |