dslinux/user/perl/hints 3b1.sh 3b1cc README.hints aix.sh aix_3.sh aix_4.sh altos486.sh amigaos.sh apollo.sh atheos.sh aux_3.sh beos.sh broken-db.msg bsdos.sh convexos.sh cxux.sh cygwin.sh darwin.sh dcosx.sh dec_osf.sh dgux.sh dos_djgpp.sh dynix.sh dynixptx.sh epix.sh esix4.sh fps.sh freebsd.sh genix.sh gnu.sh gnukfreebsd.sh gnuknetbsd.sh greenhills.sh hpux.sh i386.sh interix.sh irix_4.sh irix_5.sh irix_6.sh irix_6_0.sh irix_6_1.sh isc.sh isc_2.sh linux.sh lynxos.sh machten.sh machten_2.sh mint.sh mips.sh mpc.sh mpeix.sh ncr_tower.sh netbsd.sh newsos4.sh next_3.sh next_3_0.sh next_4.sh nonstopux.sh openbsd.sh opus.sh os2.sh os390.sh os400.sh posix-bc.sh powerux.sh qnx.sh rhapsody.sh sco.sh sco_2_3_0.sh sco_2_3_1.sh sco_2_3_2.sh sco_2_3_3.sh sco_2_3_4.sh solaris_2.sh stellar.sh sunos_4_0.sh sunos_4_1.sh super-ux.sh svr4.sh svr5.sh t001.c ti1500.sh titanos.sh ultrix_4.sh umips.sh unicos.sh unicosmk.sh unisysdynix.sh utekv.sh uts.sh uwin.sh vmesa.sh vos.sh

cayenne dslinux_cayenne at user.in-berlin.de
Mon Dec 4 17:59:58 CET 2006


Update of /cvsroot/dslinux/dslinux/user/perl/hints
In directory antilope:/tmp/cvs-serv17422/hints

Added Files:
	3b1.sh 3b1cc README.hints aix.sh aix_3.sh aix_4.sh altos486.sh 
	amigaos.sh apollo.sh atheos.sh aux_3.sh beos.sh broken-db.msg 
	bsdos.sh convexos.sh cxux.sh cygwin.sh darwin.sh dcosx.sh 
	dec_osf.sh dgux.sh dos_djgpp.sh dynix.sh dynixptx.sh epix.sh 
	esix4.sh fps.sh freebsd.sh genix.sh gnu.sh gnukfreebsd.sh 
	gnuknetbsd.sh greenhills.sh hpux.sh i386.sh interix.sh 
	irix_4.sh irix_5.sh irix_6.sh irix_6_0.sh irix_6_1.sh isc.sh 
	isc_2.sh linux.sh lynxos.sh machten.sh machten_2.sh mint.sh 
	mips.sh mpc.sh mpeix.sh ncr_tower.sh netbsd.sh newsos4.sh 
	next_3.sh next_3_0.sh next_4.sh nonstopux.sh openbsd.sh 
	opus.sh os2.sh os390.sh os400.sh posix-bc.sh powerux.sh qnx.sh 
	rhapsody.sh sco.sh sco_2_3_0.sh sco_2_3_1.sh sco_2_3_2.sh 
	sco_2_3_3.sh sco_2_3_4.sh solaris_2.sh stellar.sh sunos_4_0.sh 
	sunos_4_1.sh super-ux.sh svr4.sh svr5.sh t001.c ti1500.sh 
	titanos.sh ultrix_4.sh umips.sh unicos.sh unicosmk.sh 
	unisysdynix.sh utekv.sh uts.sh uwin.sh vmesa.sh vos.sh 
Log Message:
Adding fresh perl source to HEAD to branch from

--- NEW FILE: 3b1.sh ---
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

--- NEW FILE: broken-db.msg ---
# 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

--- NEW FILE: machten_2.sh ---
# machten.sh
# This file has been put together by Mark Pease <peasem at 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 at lafayette.edu>
#  Tue Aug 13 12:31:01 EDT 1996
#
#  Warning about tests which no longer fail
#    fixed by Tom Phoenix <rootbeer at 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

--- NEW FILE: os2.sh ---
#! /bin/sh
# hints/os2.sh
# This file reflects the tireless work of
# Ilya Zakharevich <ilya at math.ohio-state.edu>
#
# Trimmed and comments added by 
#     Andy Dougherty  <doughera at 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 `cmd /c emxrev -f emxlibcm`
emxcrtrev=$5
# indented to not put it into config.sh
  _defemxcrtrev=-D_EMX_CRT_REV_=$emxcrtrev

so='dll'

# Additional definitions:

firstmakefile='GNUmakefile'
exe_ext='.exe'

# We provide it
i_dlfcn='define'

# The default one uses exponential notation between 0.0001 and 0.1
d_Gconvert='gcvt_os2((x),(n),(b))'

cat > UU/uselongdouble.cbu <<'EOCBU'
# This script UU/uselongdouble.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use long doubles.
# If we will use them, let Configure choose us a Gconvert.
case "$uselongdouble:$d_longdbl:$d_sqrtl:$d_modfl" in
"$define:$define:$define:$define") d_Gconvert='' ;;
esac
EOCBU

# -Zomf build has a problem with _exit() *flushing*, so the test
# gets confused:
fflushNULL="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"

# -D__ST_MT_ERRNO__ allows a quick relink with -Zmtd to check problems
# which may be due to linking with -Zmtd DLLs

# Cannot have 32000K stack: get SYS0170  ?!
if [ $emxcrtrev -ge 50 ]; then 
    aout_ldflags='-Zexe -Zsmall-conv -Zstack 16000 -D__ST_MT_ERRNO__'
else
    aout_ldflags='-Zexe -Zstack 16000 -D__ST_MT_ERRNO__'
fi

# To get into config.sh:
aout_ldflags="$aout_ldflags"

aout_d_fork='define'
aout_ccflags="-DDOSISH -DPERL_IS_AOUT -DOS2=2 -DEMBED -I. $_defemxcrtrev -D__ST_MT_ERRNO__"
aout_cppflags="-DDOSISH -DPERL_IS_AOUT -DOS2=2 -DEMBED -I. $_defemxcrtrev -D__ST_MT_ERRNO__"
aout_use_clib='c'
aout_usedl='undef'
aout_archobjs="os2.o dl_os2.o"
# Not listed in dynamic_ext, but needed for AOUT static_ext nevertheless
aout_extra_static_ext="OS2::DLL"

# 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 -Zlinker /e:2"
    # Recursive regmatch may eat 2.5M of stack alone.
    ldflags='-Zexe -Zomf -Zmt -Zcrtdll -Zstack 32000 -Zlinker /e:2'
    if [ $emxcrtrev -ge 50 ]; then 
	ccflags="-Zomf -Zmt -DDOSISH -DOS2=2 -DEMBED -I. $_defemxcrtrev"
    else
	ccflags="-Zomf -Zmt -DDOSISH -DOS2=2 -DEMBED -I. -DEMX_BAD_SBRK $_defemxcrtrev"
    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_strtoll='define'
d_strtoull='define'
d_getprior='define'
d_setprior='define'
d_usleep='define'
d_usleepproto='define'

# The next two are commented. pdksh handles #!, extproc gives no path part.
# sharpbang='extproc '
# shsharp='false'

# Commented:
#startsh='extproc ksh\\n#! sh'

# Find patch:
gnupatch='patch'
if (gnupatch -v || gnupatch --version)   2>&1 >/dev/null; then
    gnupatch=gnupatch
else
    if (gpatch -v || gpatch --version)   2>&1 >/dev/null; then
	gnupatch=gpatch
    else
	# They may have a special PATH during configuring
	if (patch -v || patch --version) 2>&1 >/dev/null; then
	    gnupatch="`./UU/loc patch.exe undef $pth`"
	fi
    fi
fi

for f in less.exe less.sh less.ksh less.cmd more.exe more.sh more.ksh more.cmd ; do
  if test -z "$pager"; then
    pager="`./UU/loc $f '' $pth`"
  fi
done
if test -z "$pager"; then
  pager='cmd /c more'
fi

# Apply patches if needed
case "$0$running_c_cmd" in
  *[/\\]Configure|*[/\\]Configure.|Configure|Configure.) # Skip Configure.cmd
    if test "Xyes" = "X$configure_cmd_loop"; then
	cat <<EOC >&2
!!!
!!! PANIC: Loop of self-invocations detected, aborting!
!!!
EOC
	exit 20
    fi
    configure_cmd_loop=yes
    export configure_cmd_loop

    configure_needs_patch=''
    if test -s ./os2/diff.configure; then
	if ! grep "^#OS2-PATCH-APPLIED" ./Configure > /dev/null; then
	    configure_needs_patch=yes	    
	fi
    fi
    if test -n "$configure_needs_patch"; then
	# Not patched!
	# Restore the initial command line arguments
	if test -f ./Configure.cmd ; then
	    cat <<EOC >&2
!!!
!!! I see that what is running is ./Configure.
!!! ./Configure is not patched, but ./Configure.cmd exists.
!!!
!!! You are supposed to run Configure.cmd, not Configure
!!!  after an automagic patching.
!!!
!!! If you insist on running Configure, you may
!!!  patch it manually from ./os2/diff.configure.
!!!
!!! However, I went through incredible hoolahoops, and I expect I can
!!!  auto-restart Configure.cmd myself.  I will start it with arguments:
!!!
!!!    Configure.cmd $args_exp
!!!
EOC
	    rp='Do you want to auto-restart Configure.cmd?'
	    dflt='y'
	    . UU/myread
	    case "$ans" in
		[yY]) echo >&4 "Okay, continuing." ;;
		*) echo >&4 "Okay, bye."
		   exit 2
		   ;;
	    esac
	    eval "set X $args_exp";
	    shift;
	    # Restore the output
	    exec Configure.cmd "$@" 1>&2
	    exit 2
	fi
	cat <<EOC >&2
!!!
!!! You did not patch ./Configure!
!!! I can create Configure.cmd and patch it from ./os2/diff.configure with the command
!!!
!!!   $gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch
EOC
	rp='Do you want to auto-patch Configure to Configure.cmd?'
	dflt='y'
	. UU/myread
	case "$ans" in
		[yY]) echo >&4 "Okay, continuing." ;;
		*) echo >&4 "Okay, bye."
		   exit 2
		   ;;
	esac
	($gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch) >&2
	cat <<EOC >&2
!!!
!!! The report of patching is copied to 00_auto_patch.
!!! Now we need to restart Configure.cmd with all the options.
!!!
EOC
	echo "extproc sh" > Configure.ctm
	( cat Configure.cmd >> Configure.ctm && mv -f Configure.ctm Configure.cmd ) || (echo "!!! Failure to add extproc-line to Configure.cmd." >&2 ; exit 21)
	cat <<EOC >&2
!!! I went through incredible hoolahoops, and I expect I can
!!!  auto-restart Configure.cmd myself.  I will start it with arguments:
!!!
!!!    Configure.cmd $args_exp
!!!
EOC
	rp='Do you want to auto-restart Configure.cmd?'
	dflt='y'
	. UU/myread
	case "$ans" in
		[yY]) echo >&4 "Okay, continuing." ;;
		*) echo >&4 "Okay, bye."
		   exit 2
		   ;;
	esac
	eval "set X $args_exp";
	shift;
	exec Configure.cmd "$@" 1>&2
	exit 2
    else
	if test -s ./os2/diff.configure; then
	    echo "!!! Apparently we are running a patched Configure." >&2
	else
	    echo "!!! Apparently there is no need to patch Configure." >&2
	fi
    fi 
    ;;
  *) echo "!!! Apparently we are running a renamed Configure: '$0'." >&2
esac

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
	ccflags="-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"
	;;
esac
EOCBU

if test -z "$cryptlib"; then
	cryptlib=`UU/loc crypt$lib_ext "" $libpth`
	if $test -n "$cryptlib"; then
		cryptlib=-lcrypt
	else
		cryptlib=`UU/loc ufc$lib_ext "" $libpth`
		if $test -n "$cryptlib"; then
			cryptlib=-lufc
		fi
	fi
fi
if test -n "$cryptlib"; then
	libs="$libs $cryptlib"
	# d_crypt=define
fi

# 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:

cp -uf ../*.t ../../t/lib
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

case "$ldlibpthname" in
'') ldlibpthname=none ;;
esac

# Now go back
cd ../..
cp os2/*.t t/lib

--- NEW FILE: isc.sh ---
#  isc.sh
#  Interactive Unix Versions 3 and 4. 
#  Compile perl entirely in posix mode. 
#  Andy Dougherty		doughera at 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"


--- NEW FILE: svr4.sh ---
# svr4 hints, System V Release 4.x
# Last modified 1996/10/25 by Tye McQueen, tye at metronet.com
# Merged 1998/04/23 with perl5.004_04 distribution by 
# Andy Dougherty <doughera at 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:
    gconvert_preference='gcvt sprintf'	# 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

# NCR MP-RAS.  Thanks to Doug Hendricks for this info.
# The output of uname -a looks like this
#	foo foo 4.0 3.0 3441 Pentium III(TM)-ISA/PCI
# Similar errors reported for
#       foo foo 4.0 3.0 4400 pentium ii(tm)-isapci '
# and also for
#	foo foo 4.2 1.1.2 shg2 386at
# W. Geoffrey Rommel, 2003-09-09 reported:
# I have talked to a developer at NCR, and there seems to be no
# reliable way to make sure that this is really MP-RAS. It's not
# in uname, it's not in the kernel, it's not in sysinfo ...
# However, the files /etc/issue and /etc/.relid are present in MP-RAS.
#
# Other System V-derived systems may have /etc/issue, but /etc/.relid
# may well be unique.  Configure-time tests for the POSIX
# _mwoflocheckl issue (see ext/POSIX/hints/svr4.pl) would be appreciated.
#
if test -f /etc/issue -a -f /etc/.relid; then
    # libcrypt contains nothing libc wouldn't have.
    libswanted=`echo " $libswanted " | sed -e 's/ crypt / /'`
    # With the NCR High Performance C Compiler R3.0c, miniperl fails
    # t/op/regexp.t test 461 unless we compile with optimize=-O0.
    # Volunteers are needed to determine just which files need special
    # treatment.  For now, use optimize=-O0 for everything.
    #
    d_usleep='undef'
    d_ualarm='undef'
    case "$optimize" in
    '') optimize='-O0' ;;
    esac
fi

# 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


--- NEW FILE: newsos4.sh ---
#
# 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 '    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 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)
gconvert_preference=sprintf
# No POSIX.
useposix='false'

--- NEW FILE: next_3_0.sh ---
# This file has been put together by Anno Siegel <siegel at zrz.TU-Berlin.DE>
# and Andreas Koenig <k at franz.ww.TU-Berlin.DE>. Comments, questions, and
# improvements welcome!

# This file was modified to work on NS 3.0 by Kevin White
# <klwhite at 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="$ccflags -DUSE_NEXT_CTYPE"
POSIX_cflags='ccflags="-posix $ccflags"'
useposix='undef'
ldflags="$ldflags -u libsys_s"
libswanted="$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 at 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 at franz.ww.tu-berlin.de>)
ranlib='sleep 5; /bin/ranlib' 

# Doesn't support attributes, so we'll set that here.
d_attribute_format='undef'
d_attribute_malloc='undef'
d_attribute_nonnull='undef'
d_attribute_noreturn='undef'
d_attribute_pure='undef'
d_attribute_unused='undef'
d_attribute_warn_unused_result='undef'

--- NEW FILE: super-ux.sh ---
# Len Makin <len at hpc.CSIRO.AU>

# No dynamically loaded libraries
so='none'

case "$optimize" in
# No compile option -O
'') optimize='-h2' ;;
esac

# size_t is 32 bits. Next version of compiler will have -hsize_t64
# enabling size_t to be 64 bits.
# Current cc version 4.80 allows -hsubscript64 for 64 bit array subscripts.
ccflags="$ccflags -hxint -hmath vector -hsubscript64"

case "$usemymalloc" in
'') # The perl malloc.c SHOULD work
    usemymalloc='y'
    ;;
esac

--- NEW FILE: altos486.sh ---
: have heard of problems with -lc_s on Altos 486
set `echo " $libswanted " | sed "s/ c_s / /"`
libswanted="$*"

--- NEW FILE: irix_5.sh ---
# 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'
i_inttypes='undef'

case "$cc" in
*gcc*) ccflags="$ccflags -D_BSD_TYPES" ;;
*)
   # The warnings turned off are:
   # 608: Undefined the ANSI standard library defined macro stderr (nostdio.h)
   # 658: bit-field 'th_off' type required to be int, unsigned int, or signed int. <netinet/tcp.h>
   # 734: enum declaration must contain enum literals <sys/vnode.h>
   # 799: 'long long' is not standard ANSI.
   ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4300 -woff 608,658,734,799"
# Without this the cc thinks that a struct timeval * is not equivalent to
# a struct timeval *.  Yeah, you read that right.
pp_sys_cflags='ccflags="$ccflags -DPERL_IRIX5_SELECT_TIMEVAL_VOID_CAST"'
   ;;
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="$*"

# IRIX 5.x does not have -woff for ld.
# Don't groan about unused libraries.
# case "$ldflags" in
#     *-Wl,-woff,84*) ;;
#     *) ldflags="$ldflags -Wl,-woff,84" ;;
# esac

# Date: Fri, 22 Dec 1995 11:49:17 -0800
# From: Matthew Black <black at 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.

case "$usethreads" in
$define|true|[yY]*)
        cat >&4 <<EOM
IRIX `uname -r` does not support POSIX threads.
You should upgrade to at least IRIX 6.2 with pthread patches.
EOM
	exit 1
	;;
esac

case " $use64bits $use64bitint $use64bitall " in
*" $define "*|*" true "*|*" [yY] "*)
	cat >&4 <<EOM
IRIX `uname -r` does not support 64-bit types.
You should upgrade to at least IRIX 6.2.
Cannot continue, aborting.
EOM
	exit 1
esac


--- NEW FILE: sco_2_3_4.sh ---
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

--- NEW FILE: os400.sh ---
#
# We will just reuse the AIX hints since we support only building
# for the PASE and the PASE hints are merged with the AIX hints.
#

case "$PASE" in
'') cat >&4 <<EOF
***
*** This build process only works with the PASE environment (not ILE).
*** You must supply the -DPASE parameter to the Configure script,
*** please read the file README.os400.  Exiting now.
***
EOF
    exit 1
    ;;
*)  cat >&4 <<EOF
***
*** Using the AIX hints file, $src/hints/aix.sh.
***
EOF
    osname=aix
    . $src/hints/aix.sh
    ;;
esac

--- NEW FILE: opus.sh ---
ccflags="$ccflags -X18"

--- NEW FILE: utekv.sh ---
# XD88/10 UTekV hints by Kaveh Ghazi (ghazi at caip.rutgers.edu)  2/11/92
# Modified by Andy Dougherty <doughera at 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

--- NEW FILE: titanos.sh ---
# Hints file (perl 4.019) for Kubota Pacific's Titan 3000 Series Machines.
# Created by: JT McDuffie (jt at kpc.com)  26 DEC 1991
# p5ed by: Jarkko Hietaniemi <jhi at iki.fi> Aug 27 1994
#  NOTE:   You should run Configure with tcsh (yes, tcsh).
# Comments by Andy Dougherty <doughera at 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 *'
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'

--- NEW FILE: amigaos.sh ---
# hints/amigaos.sh
#
# talk to pueschel at imsdd.meb.uni-bonn.de if you want to change this file.
#
# misc stuff
archname='m68k-amigaos'
cc='gcc'
firstmakefile='GNUmakefile'
usenm='true'
d_fork='undef' # available but ENOSYS

usemymalloc='n'
useperlio='true'
d_eofnblk='define'
groupstype='int'

# libs

libpth="$prefix/lib /local/lib"
glibpth="$libpth"
xlibpth="$libpth"

# This should remove unwanted libraries instead of limiting the set
# to just these few.  E.g. what about Berkeley DB?
libswanted='gdbm m dld'
so=' '
libs='-lm'

# compiler & linker flags
# Respect command-line values.

ccflags="$ccflags -DAMIGAOS"
case "$optimize" in
'') optimize='-O2 -fomit-frame-pointer';;
esac
dlext='o'
# Are these two different from the defaults?
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'

--- NEW FILE: unicos.sh ---
case `uname -r` in
6.1*) shellflags="-m+65536" ;;
esac

case "$optimize" in
# If we used fastmd (the default) integer values would be limited to 46 bits.
# --Mark P. Lutz
'') optimize="$optimize -O1 -h nofastmd" ;;
esac

# At least in the following environment
# uname -a: snxxxx xxxx 9.0.2.2 sin.0 CRAY Y-MP
# cc -V:    Cray Standard C Version 4.0.3  (057126) Jan 29 2006  07:27:26
# one has to drop optimisation from perl.c or otherwise
# the resulting miniperl executable does nothing (visible)
# but always exits with zero (success) exit status, this
# making it impossible to build the perl executable. --jhi
perl_cflags='optimize="-O0"'

# The default is to die in runtime on math overflows.
# Let's not do that. --jhi
ccflags="$ccflags -h matherror=errno" 

# Cray floating point (cfp) CPUs need -h rounddiv
# (It gives int((2/3)*3) a chance to be 2, not 1. --jhi)
# (but IEEE CPUs, IEEE/ieee/CPE1 CPUs should not have -h rounddiv,
#  since the compiler on those CPUs doesn't even support the option.)
if /etc/cpu -i | grep -q cfp
then
    ccflags="$ccflags -h rounddiv"
fi

# Avoid an optimizer bug where a volatile variables
# isn't correctly saved and restored --Mark P. Lutz 
pp_ctl_cflags='ccflags="$ccflags -h scalar0 -h vector0"'
# Otherwise the unpack %65c checksums will fail.
pp_pack_cflags='optimize="$ccflags -h scalar0 -h vector0"'
case "$usemymalloc" in
'') # The perl malloc.c SHOULD work says Ilya.
    # But for the time being (5.004_68), alas, it doesn't. --jhi
    # usemymalloc='y'
    # ccflags="$ccflags -DNO_RCHECK"
    usemymalloc='n'
    ;;
esac
# Configure gets fooled for some reason, these do not exist.
d_getpgid='undef'
d_setitimer='undef'
# These exist but do not really work.
d_setregid='undef'
d_setreuid='undef'
# No shared libraries.
so='none'
# No dynaloading.
d_dlopen='undef'
i_dlfcn='undef'
# Threads call-back unit.
cat > UU/usethreads.cbu <<'EOCBU'
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
        set `echo X "$libswanted "| sed -e "s/ c / pthread c /"`
        shift
        libswanted="$*"
	;;
esac
EOCBU

--- NEW FILE: t001.c ---
/* Beginning of modification history */
/* Written 02-04-10 by Paul Green (Paul.Green at stratus.com) */
/* End of modification history */

/* This test case is extracted from Perl version 5.7.3.  It is
   in the Perl_unpack_str function of the pp_pack.c source file.

   GCC 2.95.2 improperly assumes that it can compensate for an
   extra fsub by performing a fadd.  This would work in
   fixed-point arithmetic, but does not work in floating-point
   arithmetic.

   This problem has been seen on HP-UX and on Stratus VOS, both
   of which have an HP PA-RISC target (hppa1.1).  The Stratus
   bug number is gnu_g++-220.  */

/* #define _POSIX_C_SOURCE 199506L -- added by Configure */
#include <stdio.h>
#include <string.h>
#include <math.h>

void test(double *result)
{
	float	afloat;
	double	adouble;
	int		checksum = 0;
	unsigned	cuv = 0;
	double	cdouble = 0.0;
	const int	bits_in_uv = 8 * sizeof(cuv);

	checksum = 53;
	cdouble = -1.0;

	if (checksum) {
		if (checksum > bits_in_uv) {
			double trouble;

			adouble = (double) (1 << (checksum & 15));

			while (checksum >= 16) {
				checksum -= 16;
				adouble *= 65536.0;
			}

			/* At -O1, GCC 2.95.2 compiles the following loop
			   into:

			   L$0014
				fcmp,dbl,>= %fr4,%fr0
				ftest
				b L$0014
				fadd,dbl %fr4,%fr12,%fr4
				fsub,dbl %fr4,%fr12,%fr4

				This code depends on the floading-add and
				floating-subtract retaining all of the
				precision present in the operands.  There is
				no such guarantee when using floating-point,
				as this test case demonstrates.

				The code is okay at -O0.  */

			while (cdouble < 0.0)
				cdouble += adouble;

			cdouble = modf (cdouble / adouble, &trouble) * adouble;
		}
	}

	*result = cdouble;
}

int main (int argc, char ** argv)
{
double	value;

	test (&value);

	if (argc == 2 && !strcmp(argv[1],"-v"))
		printf ("value = %.18e\n", value);

	if (value != 9.007199254740991e+15) {
		printf ("t001 fails!\n");
		return -1;
	}
	else {
		printf ("t001 works.\n");
		return 0;
	}
}

--- NEW FILE: powerux.sh ---
# Hints for the Power MAX OS operating system (formerly PowerUX - hence the
# name) running on Concurrent (formerly Harris) NightHawk machines.  Written
# by Tom.Horsley at ccur.com
#
# This hint uses dynamic linking and the new Concurrent C compiler (based
# on the Edison front end).  This hint file was produced for a build of the
# 5.7.3 development release of perl running on a PowerMAX_OS 5.1SR2 system
# (but it should work on any Power MAX release using the newer "ec" (versus
# "cc") compiler, and hopefully will also work for the upcoming 5.8
# development release of perl).

# First find out where the root of the source tree is located.

SRCROOT=""
if [ -f ./INSTALL ]
then
   SRCROOT="."
else
   if [ -f ../INSTALL ]
   then
      SRCROOT=".."
   fi
fi
if [ -z "$SRCROOT" ]
then
   echo "powerux hint file cannot locate root perl source!" 1>&2
   exit 2
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 ec 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 -usys_nerr
# drags in some stuff from libc that perl proper doesn't reference but
# some dynamically linked extension will need to be in the static part
# of perl (there are probably more of these that might be useful, but
# for the extensions I build, this turned out to be enough). The -uldexp
# makes sure the custom ldexp.o I add to archobjs actually gets pulled
# into perl from libperl.a.  The -unanosleep makes Timer::HiRes happy.
#
cc='/usr/ccs/bin/ec'
cccdlflags='-Zpic'
ccdlflags='-Zlink=dynamic -Wl,-usys_nerr -Wl,-uldexp -Wl,-unanosleep -Wl,-Bexport'
lddlflags='-Zlink=so'

# Sigh... Various versions of Power MAX went out with a broken ldexp runtime
# routine in libc (it is fixed for sure in the upcoming SR4 release, but
# that hasn't made it out the door yet). Since libc is linked dynamically,
# and the perl you build might try to run on one of the broken systems, we
# need to statically link a corrected copy of ldexp.o into perl. What the
# following code does is determine if the ldexp.o on the current system
# works right. If it does, it simply extracts the ldexp.o from the system C
# library and uses that .o file. If the system .o is broken, the btoa
# encoded copy of a correct ldexp.o file included in this hint file is used
# (what a pain...)
#
if [ ! -f $SRCROOT/ldexp.o ]
then
   echo Finding a correct copy of ldexp.o to link with... 1>&2
   cat > $SRCROOT/UU/ldexptest.c <<'EOF'
#include <stdio.h>
#include <math.h>
#include <string.h>
int
main(int argc, char ** argv) {
   double result = pow(2.0, 38.0);
   char buf[100];
   sprintf(buf, "%g", result);
   if (strncmp(buf, "inf", 3) == 0) {
      exit(2);
   }
   return 0;
}
EOF
   GOODLDEXP="no"
   $cc -v -Zlink=static -o $SRCROOT/UU/ldexptest $SRCROOT/UU/ldexptest.c -lm > $SRCROOT/UU/ldexptest.lo 2>&1
   if [ $? -eq 0 ]
   then
      $SRCROOT/UU/ldexptest
      if [ $? -eq 0 ]
      then
         LDEXPLIB=`fgrep libc.a $SRCROOT/UU/ldexptest.lo | tail -1 | sed -e 's@^[^/]*@@'`
         if [ -s "$LDEXPLIB" ]
         then
            if [ -f "$LDEXPLIB" ]
            then
               GOODLDEXP="yes"
            fi
         fi
      fi
   fi
   if [ "$GOODLDEXP" = "yes" ]
   then
      echo Congratulations! The ldexp.o on this system looks good! 1>&2
      echo Using ldexp.o from $LDEXPLIB 1>&2
      ( cd $SRCROOT ; ar x $LDEXPLIB ldexp.o )
   else
      echo Sorry, the ldexp.o on this system is busted. 1>&2
      echo Using the ldexp.o from the powerux hint file 1>&2
      atob > $SRCROOT/ldexp.o << 'EOF'
xbtoa Begin
Imm%#!<N9%zz!!*'-!!!!"zz!!!8Jz!&OZU!!!!I!"/c-!%r>7Ecb`!!%rA)G]Wp<Ec5JsFC>/%FC\
s(@fS,lAR]dp?YjFoAH3u00JG4;0JEJZF*VVE@:B4QA7^")/n4k]/hUsNAU&0$@rH4'?Zg7#FC/KgB
5)5`!%om?A7^")?Yj7aG]7#$DI``"/o5'0G]7#+A7^")?N:'+5\stBG]7#+Bl7KhF*(i2F9"RBA7^"
)?YjFoARB"dA,nl2A7^")?YjFoARAnXB5)5`5\stBG]7#/Ec5c4B6 at cmASu#Y5\stBG]7#/Ec5c4B6
@cm at V'1dD?'ZQA7^")!+0)TBQ at HkEcQ&9!+p7_G]3XiCh[?cG%G]8Bl at kh?XIJhB4YFn@;GorEb0&q
/p(ZLF9!q6ASbd-FC\s(@fS-%ASbd-A7]4mB4#IhDIieJz3$J<@IAd4EOoYQ5HuL$L3Pb]og;*c.rk
Jf$0+\*`g>N$VfHC6nOeDcBJaNL<r#i5*<UF at H/I_sb5`,PtJ;sU43WK.'.>.[$5ct)L<TXBJ5b\68
8,rVja<:P^38ac\OQ-<@b/"'sb2E>Fr#l&\JY<(2JcPk%3$A9`IAd7F:4N<e<U"H%5b\5i3FDgf;/_
p at OmW2L8,rVjOok[aa<:P^b/"'sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<e6(.iX4J2ZSb2iU's-C.p6
,!Blr#i5*3+2eP8,rVjJH5a9/J%m^4[8uI/!'`P5`#LiIF(:p4CCN1/WKr63FDgf5ck%!8,rVj4[8u
I3T'l]4obQ_OlHEAJP#nB/d_RY5dCAdrg(%ob2E>F4eMcT^b#Nd5a26gb/"'sJY<(2JcPk%3$A9`IA
d7F:4N<eb/"'s4J2ZS^a/s\JY<(2JcPk%3$A9`IAd7F:4N<eaKPXErt`*EJY<(25aVNob/"'sr#dCa
IAd7Fb2E>FJcPk%3$A9`:4N<eb/"'sr#dDL4TGH^IAd7Fb2E>FJcPk%3$A9`:4N<eaQ`a*5b.lp4Wj
_)b,G@@3Y;>Nrmh6n.M)S$6';3>OC8,cI;FEfb2E>FD1mE>OF[C2aT2B<JY<(2JcPk%r5^iGIAd7Fr
&+S]b/"'s3$A9`:4N<eI'>pO3T0qs/VX)J4[;@g3<0$[I1UWg5car>8,rVj35>M<r#iM2OM_%ub/"'
sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<eJY<(25_oC_4hq$tb)QH%3Y29438jhrrmh6.IulWT6(IuEO[
/tTILlM+IAd7Fb2E>FI11W[4obQ_a\Vs;D1mE>OF[CBa^G0WJcPk%r@:\mr&.(kb/"'s3$A9`:4N<e
b/"'sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<ezzzs*t(KzIt.Luz6-oT3z6SJK?J,fQL4qI\oz!!!!s!
!!!$zz!s/HG!!!"\!!!!)s8W,W!!!*$!!!"@!!3-#!"]85q[3`2!<E3%!!!!"!!!!&!WW3#!!WNU!W
rH*If]fT!sSf.!Cp$,"p9>V!<FMOCe,mh8j5 at -)[6Co!W`<V"u5N)49bn;!W`<+-`^N""p9>V!<F,D
Bh&@0If]WO"t'Ld!Y>A:>Q=d*zz"98E)zzzzzzzzzz!!!!\zz"9AJl!!!!dzz!rr<&!!!!ezz!!!!#
!!!"(zz!rr<'!!!")!!!)]z!!!!#!!!";!!!!Mz!!!!#!!!"Jzz!rr<(!!!"Kzz!rr<)!!!"Lzz!!!
!&!!!"^!!!"Dz!!!!&!!!"n!!!!%z!!!!&!!!#+!!!!;z!!!!&!!!#?!!!!+z!!!!&!!!#Uzz!rr<*
!!!#Vz!!!)]&c_n5!!!#\zz&-)\1!!!#hzz&-)\1!!!#nzz&-)\1!!!$&zz&-)\1!!!"$!!!Q<z!!!
"h!!!Q<z!!!#A!!!-Gz!!!#E!!!-Hz!!!#W!!!T=z!!!#e!!!-G!!!!A!!!$.!!!Q<z!!!$4!!!WUz
!!!$<!!!ZVz!!!$D!!!WVz!!!$X!!!-G!!!!)!!!$\!!!-H!!!!)!!!%+!!!-G!!!!1!!!%/!!!-H!
!!!1!!!%G!!!ZWz!!!&&!!!ZVz!!!&>!!!-H!!!!A!!!&F!!!-G!!!!9!!!&J!!!-H!!!!9!!!'[!!
!Q<z!!!(<!!!-G!!!!I!!!(@!!!-H!!!!I!!!(l!!!-G!!!!A!!!(p!!!-H!!!!A!!!!)!!!3Gz!!!
!-!!!'C!!!)]!!!!>!!!*Ezzzzzzzzzzz!!!!"!!!!$zz!!!!U!!!$Yzz!!!!"z!!!!*!!!!"!!!!'
z!!!%=!!!)]zz!!!!1z!!!!0!!!!"!!!!#z!!!.(!!!!Qzz!!!!)z!!!!8!!!!"!!!!#z!!!.X!!!!
Ezz!!!!%z!!!!?!!!!"zz!!!/'!!!"Dzz!!!!%z!!!!KJ,fQLzz!!!0J!!!!Ezz!!!!%z!!!!T!!!!
#zz!!!0n!!!$b!!!!"!!!!0!!!!%!!!!1!!!$1!!!!%zz!!!4Z!!!$B!!!!(!!!!#!!!!%!!!!-!!!
$<!!!!%zz!!!8&!!!!9!!!!(!!!!%!!!!%!!!!-!!!$H!!!!%zz!!!8>!!!!-!!!!(!!!!&!!!!%!!
!!-
xbtoa End N 2436 984 E ad S 1bf43 R a7867666
EOF
   fi
   ( cd $SRCROOT/UU ; rm -f ldexptest* )
fi
if [ -f $SRCROOT/ldexp.o ]
then
   archobjs='ldexp.o'
fi

# 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'

# I have no clue what perl thinks it wants <sys/mode.h> for, but if you
# include it in a program in PowerMAX without first including <sys/vnode.h>
# the code don't compile (apparently some other operating system has
# something completely different in its sys/mode.h)
#
i_sysmode='undef'

# There was a bug in memcmp (which was fixed a while ago) which sometimes
# fails to provide the correct compare status (it is data dependant). I
# don't wnat to figure out if you are building with the correct version or
# not, so just pretend there is no memcmp (since perl has its own handy
# substitute).
#
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

# Configure comes up with the wrong type for these for some reason.  The
# pointers shouldn't have const in them. (And it looks like I have to
# provide netdb_hlen_type as well becuase when I predefine the others it
# comes up empty :-).
#
netdb_host_type='char *'
netdb_name_type='char *'
netdb_hlen_type='int'

# 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'


--- NEW FILE: dgux.sh ---
# $Id: dgux.sh,v 1.2 2006-12-04 16:59:51 dslinux_cayenne Exp $

# This is a hints file for DGUX, which is EMC's 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 an 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.
#
# -Roderick Schertler <roderick at argon.org>

# 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.

##########################################
# Modified by Takis Psarogiannakopoulos
# Universirty of Cambridge
# Centre for Mathematical Sciences
# Department of Pure Mathematics
# Wilberforce road
# Cambridge CB3 0WB , UK
# e-mail <takis at XFree86.Org>
# Use GCC-2.95.2/3 rev (DG/UX) for threads
# This compiler supports the -pthread switch
# to link correctly DG/UX 's -lthread.
# March 2002
###########################################

cc=gcc
ccflags="-DDGUX -D_DGUX_SOURCE"
# Debug build. If using GNU as,ld use the flag -gstabs+
# ccflags="-g -mstandard -DDGUX -D_DGUX_SOURCE -DDEBUGGING"
# Dummy ; always compile with -O2 on GCC 2.95.2/3 rev (DG/UX)
# even if you debugging the program!
optimize="-mno-legend -O2"

archname="ix86-dgux"
libpth="/usr/lib"

#####################################
# <takis at XFree86.Org>
# Change this if you want.
# prefix =/usr/local
#####################################

prefix=/usr/local
perlpath="$prefix/bin/perl58"
startperl="#! $prefix/bin/perl58"
privlib="$prefix/lib/perl58"
man1dir="$prefix/man/man1"
man3dir="$prefix/man/man3"

sitearch="$prefix/lib/perl58/$archname"
sitelib="$prefix/lib/perl58"

#Do not overwrite by default /usr/bin/perl of DG/UX
installusrbinperl="$undef"

# Configure may fail to find lstat()
# function in <sys/stat.h>.
d_lstat='define'

# Internal (perl) malloc is causing serious problems and
# test failures in DG/UX. Most notable Embed.t 
# So for perl-5.7.3 and on do NOT use. 
# I have no time to investigate more.
# <takis at XFree86.Org>

case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

case "$uselongdouble" in
'') uselongdouble='y' ;;
esac

#usevfork=true
usevfork=false

# 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

#####################################
# <takis at XFree86.Org>
#####################################

libperl="libperl58.so"

# 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.

#####################################
# <takis at XFree86.Org>
#####################################

# libswanted="dgc gdbm $libswanted"
#libswanted="dbm posix $libswanted"
# Do *NOT* add there the malloc native 
# DG/UX library!
libswanted="dbm posix resolv socket nsl dl m"

#####################################
# <takis at XFree86.Org>
#####################################

mydomain='.localhost'
cf_by=`(whoami) 2>/dev/null`
cf_email="$cf_by at localhost"

# 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
usedl=false

# For cc rather than gcc the flags would be `-K PIC' for compiling and
# -G for loading.  I haven't tested this.

#####################################
# <takis at XFree86.Org>
# Use -fPIC instead -fpic 
#####################################

cccdlflags=-fPIC
#We must use gcc
ld="gcc"
lddlflags="-shared"

############################################################################
# DGUX Posix 4A Draft 10 Thread support
# <takis at XFree86.Org>
# use Configure -Dusethreads to enable
############################################################################

cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
	ccflags="$ccflags"
	# DG/UX has this for sure! Main Configure fails to
	# detect it but it is needed!
	d_pthread_atfork='define'
	shift
	# DG/UX's sched_yield is in -lrte
	# Do *NOT* add there the malloc native 
	# DG/UX library!
	libswanted="dbm posix resolv socket nsl dl m rte"
	archname="ix86-dgux-thread"
	sitearch="$prefix/lib/perl58/$archname"
	sitelib="$prefix/lib/perl58"
  case "$cc" in
	*gcc*)
	   #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
	   #### Otherwise take out the switch -pthread 
	   #### And add manually the -D_POSIX4A_DRAFT10_SOURCE flag.
	   ld="gcc"
	   ccflags="$ccflags -D_POSIX4A_DRAFT10_SOURCE"
	   # Debug build : use -DS flag on command line perl
	   # ccflags="$ccflags -g -mstandard -DDEBUGGING -D_POSIX4A_DRAFT10_SOURCE -pthread"
	   cccdlflags='-fPIC'
	   lddlflags="-shared"
	   #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
	   #### Otherwise take out the switch -pthread
	   #### And add manually the -lthread library.
	   ldflags="$ldflags -pthread"
	;;

	*)
	   echo "Not supported DG/UX cc and threads !"
	;;
  esac
esac
EOCBU

# "./Configure -d" can't figure this out easily
d_suidsafe='define'

###################################################

--- NEW FILE: irix_6.sh ---
# hints/irix_6.sh
#
# original from Krishna Sethuraman, krishna at sgi.com
#
# Modified Mon Jul 22 14:52:25 EDT 1996
# 	Andy Dougherty <doughera at lafayette.edu>
# 	with help from Dean Roehrich <roehrich at cray.com>.
#   cc -n32 update info from Krishna Sethuraman, krishna at sgi.com.
#       additional update from Scott Henry, scotth at sgi.com

# Futzed with by John Stoffel <jfs at 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):
#       1184 - "=" is used where where "==" may have been intended
#       1552 - variable "foo" set but never used

# Tweaked by Chip Salzenberg <chip at perl.com> on 5/13/97
#    - don't assume 'cc -n32' if the n32 libm.so is missing

# Threaded by Jarkko Hietaniemi <jhi at iki.fi> on 11/18/97
#    - POSIX threads knowledge by IRIX version

# gcc-enabled by Kurt Starsinic <kstar at isinet.com> on 3/24/1998

# 64-bitty by Jarkko Hietaniemi on 9/1998

# Martin Pool added -shared for gcc on 2004-01-27

# 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.

# NOTE: some IRIX cc versions, e.g. 7.3.1.1m (try cc -version) have
# been known to have issues (coredumps) when compiling perl.c.
# If you've used -OPT:fast_io=ON and this happens, try removing it.
# If that fails, or you didn't use that, then try adjusting other
# optimization options (-LNO, -INLINE, -O3 to -O2, etcetera).
# The compiler bug has been reported to SGI.
# -- Allen Smith <allens at cpan.org>

# Modified (10/30/04) to turn off usemallocwrap (PERL_MALLOC_WRAP) in -n32
# mode - Allen.

case "$use64bitall" in
$define|true|[yY]*)
    case "`uname -s`" in
       IRIX)
           cat <<END >&2
You have asked for use64bitall but you aren't running on 64-bit IRIX.
I'll try changing it to use64bitint.
END
       use64bitall="$undef"

       case "`uname -r`" in
           [1-5]*|6.[01])
               cat <<END >&2
Sorry, can't do use64bitint either. Try upgrading to IRIX 6.2 or later.
END
               use64bitint="$undef"
           ;;
           *) use64bitint="$define"
           ;;
       esac
       ;;
    esac
    ;;
esac

# Until we figure out what to be probed for in Configure (ditto for hpux.sh)
case "$usemorebits" in # Need to expand this now, then.
$define|true|[yY]*)
    case "`uname -r`" in
           [1-5]*|6.[01])
               uselongdouble="$define"
               ;;
           *) use64bitint="$define" uselongdouble="$define" ;;
    esac
esac

# 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
'') case "$use64bitall" in
    "$define"|true|[yY]*) test -f /usr/lib64/libm.so && cc='cc -64' ;;
    *) test -f /usr/lib32/libm.so && cc='cc -n32' ;;
    esac    	
esac

case "$use64bitint" in
    "$define"|true|[yY]*) ;;
    *)  d_casti32="$undef" ;;
esac

cc=${cc:-cc}
cat=${cat:-cat}

$cat > UU/cc.cbu <<'EOCCBU'
# This script UU/cc.cbu will get 'called-back' by Configure after it
# has prompted the user for the C compiler to use.

case "$cc" in
*gcc*) ;;
*) ccversion=`cc -version 2>&1` ;;
esac

# Check for which compiler we're using

case "$cc" in
*"cc -n32"*)
    test -z "$ldlibpthname" && ldlibpthname='LD_LIBRARYN32_PATH'

	# If a library is requested to link against, make sure the
	# objects in the library are of the same ABI we are compiling
	# against. Albert Chin-A-Young <china at thewrittenword.com>

       # In other words, you no longer have to worry regarding having old
       # library paths (/usr/lib) in the searchpath for -n32 or -64; thank
       # you very much, Albert! Now if we could just get more module authors
       # to use something like this... - Allen

	libscheck='case "$xxx" in
*.a) /bin/ar p $xxx `/bin/ar t $xxx | sed q` >$$.o;
  case "`/usr/bin/file $$.o`" in
  *N32*) rm -f $$.o ;;
  *) rm -f $$.o; xxx=/no/n32$xxx ;;
  esac ;;
*) case "`/usr/bin/file $xxx`" in
  *N32*) ;;
  *) xxx=/no/n32$xxx ;;
  esac ;;
esac'

	# NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
       test -z "$ldflags" && ldflags=' -L/usr/local/lib32 -L/usr/local/lib'
	cccdlflags=' '
    # From: David Billinghurst <David.Billinghurst at 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"
       test -z "$lddlflags" && lddlflags="-n32 -shared"
       test -z "$libc" && libc='/usr/lib32/libc.so'
       test -z "$plibpth" && plibpth='/usr/lib32 /lib32 /usr/ccs/lib'

       # PERL_MALLOC_WRAP gives false alarms ("panic: memory wrap") in IRIX
       # -n32 mode, resulting in perl compiles never getting further than
       # miniperl. I am not sure whether it actually does any good in -32 or
       # -64 mode, especially the latter, but it does not give false
       # alarms (in testing). -Allen

       usemallocwrap=${usemallocwrap:-false}
       ;;
*"cc -64"*)
    case "`uname -s`" in
    IRIX)
	$cat >&4 <<EOM
You cannot use cc -64 or -Duse64bitall in 32-bit IRIX, sorry.
Cannot continue, aborting.
EOM
       exit 1
       ;;
    esac
       test -z "$ldlibpthname" && ldlibpthname='LD_LIBRARY64_PATH'
       test -z "$use64bitall" && use64bitall="$define"
       test -z "$use64bitint" && use64bitint="$define"
	loclibpth="$loclibpth /usr/lib64"
	libscheck='case "`/usr/bin/file $xxx`" in
*64-bit*) ;;
*) xxx=/no/64-bit$xxx ;;
esac'
	# NOTE: -L/usr/lib64 -L/lib64 are automatically selected by the linker
       test -z "$ldflags" && ldflags=' -L/usr/local/lib64 -L/usr/local/lib'
	cccdlflags=' '
       test -z "$archname64" && archname64='64all'
    # From: David Billinghurst <David.Billinghurst at riotinto.com.au>
    # If you get complaints about so_locations then change the following
    # line to something like:
    #	lddlflags="-64 -shared -check_registry /usr/lib64/so_locations"
       test -z lddlflags="-64 -shared"
       test -z "$libc" && libc='/usr/lib64/libc.so'
       test -z "$plibpth" && plibpth='/usr/lib64 /lib64 /usr/ccs/lib'
	;;
*gcc*)
	ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME"
       test -z "$optimize" && optimize="-O3"
	usenm='undef'
	# It seems gcc can build Irix shlibs, but of course it needs
	# -shared.  Otherwise you get link errors looking for main().
	lddlflags="$lddlflags -shared"
	case "`uname -s`" in
	# Without the -mabi=64 gcc in 64-bit IRIX has problems passing
	# and returning small structures.  This affects inet_*() and semctl().
	# See http://reality.sgi.com/ariel/freeware/gcc-2.8.1-notes.html
	# for more information.  Reported by Lionel Cons <lionel.cons at cern.ch>.
	IRIX64)	ccflags="$ccflags -mabi=64"
		ldflags="$ldflags -mabi=64 -L/usr/lib64"
		lddlflags="$lddlflags -mabi=64"
		;;
	*)	ccflags="$ccflags -DIRIX32_SEMUN_BROKEN_BY_GCC"
                # XXX Note: It is possible that turning off usemallocwrap is
                # needed here; insufficient data! - Allen
		;;
	esac
	;;
*)
	# 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

# Settings common to both native compiler modes.
case "$cc" in
*"cc -n32"*|*"cc -64"*)
       test -z "$ld" && ld=$cc

	# perl's malloc can return improperly aligned buffer
	# which (under 5.6.0RC1) leads into really bizarre bus errors
	# and freak test failures (lib/safe1 #18, for example),
	# even more so with -Duse64bitall: for example lib/io_linenumtb.
	# fails under the harness but succeeds when run separately,
	# under make test pragma/warnings #98 fails, and lib/io_dir
	# apparently coredumps (the last two don't happen under
    	# the harness.  Helmut Jarausch is seeing bus errors from
        # miniperl, as was Scott Henry with snapshots from just before
	# the RC1. --jhi
	usemymalloc='undef'

       # Was at the first of the line - Allen
       #malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'

       nm_opt="$nm_opt -p"
       nm_so_opt="$nm_so_opt -p"

	# Warnings to turn off because the source code hasn't
	# been cleaned up enough yet to satisfy the IRIX cc.
	# 1184: "=" is used where where "==" may have been intended.
	# 1552: The variable "foobar" is set but never used.
	woff=1184,1552

	# 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 $woff -OPT:Olimit=0"
	     optimize='none'
	     ;;
	*7.1*|*7.2|*7.20)             # Mongoose 7.1+
            ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff $woff"
            case "$optimize" in
               '') optimize='-O3 -OPT:Olimit=0' ;;
               '-O') optimize='-O3 -OPT:Olimit=0' ;;
               *) ;;
            esac

           # This is a temporary fix for 5.005+.
           # See hints/README.hints, especially the section
           # =head2 Propagating variables to config.sh

           # Note the part about case statements not working without
           # weirdness like the below echo statement... and, since
           # we're in a callback unit, it's to config.sh, not UU/config.sh
           # - Allen


           pp_ctl_cflags="$pp_ctl_flags optimize=\"$optimize -O1\""
           echo "pp_ctl_cflags=\"$pp_ctl_flags optimize=\\\"\$optimize -O1\\\"\"" >> config.sh
	     ;;



# XXX What is space=ON doing in here? Could someone ask Scott Henry? - Allen

	*7.*)                         # Mongoose 7.2.1+
            ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff $woff"
            case "$optimize" in
               '') optimize='-O3 -OPT:Olimit=0:space=ON' ;;
               '-O') optimize='-O3 -OPT:Olimit=0:space=ON' ;;
               *) ;;
            esac
	     ;;
	*6.2*)                        # Ragnarok 6.2
	     ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff $woff"
	     optimize='none'
	     ;;
	*)                            # Be safe and not optimize
	     ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff $woff"
	     optimize='none'
	     ;;
	esac

# this is to accommodate the 'modules' capability of the 
# 7.2 MIPSPro compilers, which allows for the compilers to be installed
# in a nondefault location.  Almost everything works as expected, but
# /usr/include isn't caught properly.  Hence see the /usr/include/pthread.h
# change below to include TOOLROOT (a modules environment variable),
# and the following code.  Additional
# code to accommodate the 'modules' environment should probably be added
# here if possible, or be inserted as a ${TOOLROOT} reference before
# absolute paths (again, see the pthread.h change below). 
# -- krishna at sgi.com, 8/23/98

	if [ "X${TOOLROOT}" != "X" ]; then
	# we cant set cppflags because it gets overwritten
	# we dont actually need $TOOLROOT/usr/include on the cc line cuz the 
	# modules functionality already includes it but
	# XXX - how do I change cppflags in the hints file?
		ccflags="$ccflags -I${TOOLROOT}/usr/include"
	usrinc="${TOOLROOT}/usr/include"
        fi

	;;
esac

# workaround for an optimizer bug
# Made to work via UU/config.sh thing (or, rather, config.sh, since we're in
# a callback) from README.hints, plus further stuff; doesn't handle -g still,
# unfortunately - Allen
case "`$cc -version 2>&1`" in
*7.2.*)
    test -z "$op_cflags" && echo "op_cflags=\"optimize=\\\"\$optimize -O1\\\"\"" >> config.sh
    test -z "$op_cflags" && op_cflags="optimize=\"\$optimize -O1\""
    test -z "$opmini_cflags" && echo "opmini_cflags=\"optimize=\\\"\$optimize -O1\\\"\"" >> config.sh
    test -z "$opmini_cflags" && opmini_cflags="optimize=\"\$optimize -O1\""
    ;;
*7.3.1.*)
    test -z "$op_cflags" && echo "op_cflags=\"optimize=\\\"\$optimize -O2\\\"\"" >> config.sh
    test -z "$op_cflags" && op_cflags="$op_cflags optimize=\"\$optimize -O2\""
    test -z "$opmini_cflags" && echo "opmini_cflags=\"optimize=\\\"\$optimize -O2\\\"\"" >> config.sh
    test -z "$opmini_cflags" && opmini_cflags="optimize=\"\$optimize -O2\""
    ;;
esac

EOCCBU

# End of cc.cbu callback unit. - Allen

# We don't want these libraries.
# Socket networking is in libc, these are not installed by default,
# and just slow perl down. (scotth at sgi.com)
# librt contains nothing we need (some places need it for Time::HiRes) --jhi
set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /' -e 's/ rt / /'`
shift
libswanted="$*"

# I have conflicting reports about the sun, crypt, bsd, and PW
# libraries on Irix 6.2.
#
# One user reports:
# 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 at sgi.com

set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /' -e 's/ malloc / /'`
shift
libswanted="$*"

# libbind.{so|a} would be from a BIND/named installation - IRIX 6.5.* has
# pretty much everything that would be useful in libbind in libc, including
# accessing a local caching server (nsd) that will also look in /etc/hosts,
# NIS (yuck!), etcetera. libbind also doesn't have the _r (thread-safe
# reentrant) functions.
# - Allen <easmith at beatrice.rutgers.edu>

case "`uname -r`" in
6.5)
    set `echo X "$libswanted "|sed -e 's/ bind / /'`
    shift
    libswanted="$*"
    ;;
esac

# Don't groan about unused libraries.
case "$ldflags" in
    *-Wl,-woff,84*) ;;
    *) ldflags="$ldflags -Wl,-woff,84" ;;
esac

# Irix 6.5.6 seems to have a broken header <sys/mode.h>
# don't include that (it doesn't contain S_IFMT, S_IFREG, et al)

i_sysmode="$undef"

$cat > UU/usethreads.cbu <<'EOCBU'
# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
        if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
            case "`uname -r`" in
            [1-5].*|6.[01])
 	        cat >&4 <<EOM
IRIX `uname -r` does not support POSIX threads.
You should upgrade to at least IRIX 6.2 with pthread patches.
EOM
	        ;;
	    6.2)
 	        cat >&4 <<EOM
IRIX 6.2 can have the POSIX threads.
However, the following IRIX patches (or their replacements) MUST 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.
EOM
	        ;;
  	    [67].*)
	        cat >&4 <<EOM
IRIX `uname -r` should have the POSIX threads.
But, somehow, you do not seem to have them installed.
EOM
	        ;;
	    esac
            cat >&4 <<EOM
Cannot continue, aborting.
EOM
            exit 1
        fi
        set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
        shift
        libswanted="$*"

        usemymalloc='n'

	# These are hidden behind a _POSIX1C ifdef that would
	# require including <pthread.h> for the Configure hasproto
	# to see these.

#      d_asctime_r_proto="$define"
#      d_ctime_r_proto="$define"
#      d_gmtime_r_proto="$define"
#      d_localtime_r_proto="$define"

       # Safer just to go ahead and include it, for other ifdefs like them
       # (there are a lot, such as in netdb.h). - Allen
       ccflags="$ccflags -DPTHREAD_H_FIRST"

       pthread_h_first="$define"
       echo "pthread_h_first='define'" >> config.sh

	;;

esac
EOCBU

# The -n32 makes off_t to be 8 bytes, so we should have largefileness.

$cat > UU/use64bitint.cbu <<'EOCBU'
# This script UU/use64bitint.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use 64 bit integers.

case "$use64bitint" in
$define|true|[yY]*)
           case "`uname -r`" in
           [1-5]*|6.[01])
               cat >&4 <<EOM
IRIX `uname -r` does not support 64-bit types.
You should upgrade to at least IRIX 6.2.
Cannot continue, aborting.
EOM
               exit 1
               ;;
            esac
    usemymalloc="$undef"
    ;;
*) d_casti32="$undef" ;;
esac

EOCBU

$cat > UU/use64bitall.cbu <<'EOCBU'
# This script UU/use64bitall.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to be maximally 64 bitty.

case "$use64bitall" in
$define|true|[yY]*)
    case "$cc" in
       *-n32*|*-32*)
           cat >&4 <<EOM
You cannot use a non-64 bit cc for -Duse64bitall, sorry.
Cannot continue, aborting.
EOM
           exit 1
       ;;
    esac
    ;;
esac

EOCBU

$cat > UU/uselongdouble.cbu <<'EOCBU'
# This script UU/uselongdouble.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use long doubles.

# This script is designed to test IRIX (and other machines, once it's put into
# Configure) for a bug in which they fail to round correctly when using
# sprintf/printf/etcetera on a long double with precision specified (%.0Lf or
# whatever). Sometimes, this only happens when the number in question is
# between 1 and -1, weirdly enough. - Allen

case "$uselongdouble" in
$define|true|[yY]*)

case "$d_PRIfldbl" in
$define|true|[yY]*)

    echo " " >try.c
    $cat >>try.c <<EOP
#include <stdio.h>

#define sPRIfldbl $sPRIfldbl

#define I_STDLIB $i_stdlib
#ifdef I_STDLIB
#include <stdlib.h>
#endif

int main()
{ 
        char buf1[64];
 	char buf2[64];
        buf1[63] = '\0';
	buf2[63] = '\0';

	(void)sprintf(buf1,"%.0"sPRIfldbl,(long double)0.6L);
	(void)sprintf(buf2,"%.0f",(double)0.6);
	if (strcmp(buf1,buf2)) {
	    exit(1);
	}
	(void)sprintf(buf1,"%.0"sPRIfldbl,(long double)-0.6L);
	(void)sprintf(buf2,"%.0f",(double)-0.6);
	if (strcmp(buf1,buf2)) {
	    exit(1);
	} else {
	    exit(0);
	}
}

EOP

    set try
    if eval $compile && $run ./try; then
	rm -f try try.* >/dev/null
    else
	rm -f try try.* core a.out >/dev/null
	ccflags="$ccflags -DHAS_LDBL_SPRINTF_BUG"
	cppflags="$cppflags -DHAS_LDBL_SPRINTF_BUG"

        echo " " >try.c
    $cat >>try.c <<EOP
#include <stdio.h>

#define sPRIfldbl $sPRIfldbl

#define I_STDLIB $i_stdlib
#ifdef I_STDLIB
#include <stdlib.h>
#endif

int main()
{ 
        char buf1[64];
 	char buf2[64];
        buf1[63] = '\0';
	buf2[63] = '\0';

	(void)sprintf(buf1,"%.0"sPRIfldbl,(long double)1.6L);
	(void)sprintf(buf2,"%.0f",(double)1.6);
	if (strcmp(buf1,buf2)) {
	    exit(1);
	}
	(void)sprintf(buf1,"%.0"sPRIfldbl,(long double)-1.6L);
	(void)sprintf(buf2,"%.0f",(double)-1.6);
	if (strcmp(buf1,buf2)) {
	    exit(1);
	} else {
	    exit(0);
	}
}

EOP

	set try
	if eval $compile && $run ./try; then
	    rm -f try try.c >/dev/null
	    ccflags="$ccflags -DHAS_LDBL_SPRINTF_BUG_LESS1"
	    cppflags="$cppflags -DHAS_LDBL_SPRINTF_BUG_LESS1"
	else
	    rm -f try try.c core try.o a.out >/dev/null
	fi
    fi
;;
*) # Can't tell!
   ccflags="$ccflags -DHAS_LDBL_SPRINTF_BUG"
   cppflags="$cppflags -DHAS_LDBL_SPRINTF_BUG"
   ;;
esac

# end of case statement for how to print ldbl with 'f'
;;
*) ;;
esac

# end of case statement for whether to do long doubles

EOCBU

# Helmut Jarausch reports that Perl's malloc is rather unusable
# with IRIX, and SGI confirms the problem.
usemymalloc=${usemymalloc:-false}

--- NEW FILE: mips.sh ---
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

--- NEW FILE: aux_3.sh ---
# hints/aux_3.sh
#
# Improved by Jake Hamby <jehamby at 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

--- NEW FILE: openbsd.sh ---
# hints/openbsd.sh
#
# hints file for OpenBSD; Todd Miller <millert at openbsd.org>
# Edited to allow Configure command-line overrides by
#  Andy Dougherty <doughera at lafayette.edu>
#
# To build with distribution paths, use:
#	./Configure -des -Dopenbsd_distribution=defined
#

# OpenBSD has a better malloc than perl...
test "$usemymalloc" || usemymalloc='n'

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# Currently, vfork(2) is not a real win over fork(2).
usevfork="$undef"

# In OpenBSD < 3.3, the setre?[ug]id() are emulated using the
# _POSIX_SAVED_IDS functionality which does not have the same
# semantics as 4.3BSD.  Starting with OpenBSD 3.3, the original
# semantics have been restored.
case "$osvers" in
[0-2].*|3.[0-2])
	d_setregid=$undef
	d_setreuid=$undef
	d_setrgid=$undef
	d_setruid=$undef
esac

#
# Not all platforms support dynamic loading...
# For the case of "$openbsd_distribution", the hints file
# needs to know whether we are using dynamic loading so that
# it can set the libperl name appropriately.
# Allow command line overrides.
#
ARCH=`arch | sed 's/^OpenBSD.//'`
case "${ARCH}-${osvers}" in
alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-7]|m88k-*|hppa-*|vax-*)
	test -z "$usedl" && usedl=$undef
	;;
*)
	test -z "$usedl" && usedl=$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"
	case "$osvers" in
	[01].*|2.[0-7]|2.[0-7].*)
		lddlflags="-Bshareable $lddlflags"
		;;
	2.[8-9]|3.0)
		ld=${cc:-cc}
		lddlflags="-shared -fPIC $lddlflags"
		;;
	*) # from 3.1 onwards
		ld=${cc:-cc}
		lddlflags="-shared -fPIC $lddlflags"
		libswanted=`echo $libswanted | sed 's/ dl / /'`
		;;
	esac

	# We need to force ld to export symbols on ELF platforms.
	# Without this, dlopen() is crippled.
	ELF=`${cc:-cc} -dM -E - </dev/null | grep __ELF__`
	test -n "$ELF" && ldflags="-Wl,-E $ldflags"
	;;
esac

#
# Tweaks for various versions of OpenBSD
#
case "$osvers" in
2.5)
	# OpenBSD 2.5 has broken odbm support
	i_dbm=$undef
	;;
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
case ${ARCH} in
m88k)
   optimize='-O0'
   ;;
hppa)
   optimize='-O0'
   ;;
*)
   test "$optimize" || optimize='-O2'
   ;;
esac

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
	# any openbsd version dependencies with pthreads?
	ccflags="-pthread $ccflags"
	ldflags="-pthread $ldflags"
	case "$osvers" in
	[0-2].*|3.[0-2])
		# Change from -lc to -lc_r
		set `echo "X $libswanted " | sed 's/ c / c_r /'`
		shift
		libswanted="$*"
	;;
	esac
	case "$osvers" in
	[012].*|3.[0-6])
        	# Broken at least up to OpenBSD 3.6, we'll see about 3.7
		d_getservbyname_r=$undef ;;
	esac
esac
EOCBU

# This script UU/use64bitint.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use 64-bitness.
cat > UU/use64bitint.cbu <<'EOCBU'
case "$use64bitint" in
$define|true|[yY]*)
	echo " "
	echo "Checking if your C library has broken 64-bit functions..." >&4
	$cat >check.c <<EOCP
#include <stdio.h>
typedef $uquadtype myULL;
int main (void)
{
    struct {
	double d;
	myULL  u;
    } *p, test[] = {
	{4294967303.15, 4294967303ULL},
	{4294967294.2,  4294967294ULL},
	{4294967295.7,  4294967295ULL},
	{0.0, 0ULL}
    };
    for (p = test; p->u; p++) {
	myULL x = (myULL)p->d;
	if (x != p->u) {
	    printf("buggy\n");
	    return 0;
	}
    }
    printf("ok\n");
    return 0;
}
EOCP
	set check
	if eval $compile_ok; then
	    libcquad=`./check`
	    echo "Your C library's 64-bit functions are $libcquad."
	else
	    echo "(I can't seem to compile the test program.)"
	    echo "Assuming that your C library's 64-bit functions are ok."
	    libcquad="ok"
	fi
	$rm -f check.c check

	case "$libcquad" in
	    buggy*)
		cat >&4 <<EOM

*** You have a C library with broken 64-bit functions.
*** 64-bit support does not work reliably in this configuration.
*** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
*** Cannot continue, aborting.

EOM
		exit 1
		;;
	esac
esac
EOCBU

# When building in the OpenBSD tree we use different paths
# This is only part of the story, the rest comes from config.over
case "$openbsd_distribution" in
''|$undef|false) ;;
*)
	# We put things in /usr, not /usr/local
	prefix='/usr'
	prefixexp='/usr'
	sysman='/usr/share/man/man1'
	libpth='/usr/lib'
	glibpth='/usr/lib'
	# Local things, however, do go in /usr/local
	siteprefix='/usr/local'
	siteprefixexp='/usr/local'
	# Ports installs non-std libs in /usr/local/lib so look there too
	locincpth='/usr/local/include'
	loclibpth='/usr/local/lib'
	# Link perl with shared libperl
	if [ "$usedl" = "$define" -a -r shlib_version ]; then
		useshrplib=true
		libperl=`. ./shlib_version; echo libperl.so.${major}.${minor}`
	fi
	;;
esac

# end

--- NEW FILE: machten.sh ---
#! /bin/bash
# machten.sh
# This is for MachTen 4.1.4.  It might work on other versions and variants
# too.  MachTen is now obsolete, lacks many features expected in modern UNIX
# implementations, and suffers from a number of bugs which are likely never
# to be fixed. This means that, in the absence of extensive work on
# this file and on the perl source code, versions of perl later than 5.6.x
# cannot successfully be built on MachTen. This file enforces this
# restriction. Should you wish to port a later version of perl to MachTen,
# feel free to contact me for pointers.
#                      -- Dominic Dunlop <domo at computer.org> 040213
#
# 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.
#
# The original version of this file was put together by Andy Dougherty
# <doughera at lafayette.edu> based on comments from lots of
# folks, especially 
# 	Mark Pease <peasem at primenet.com>
#	Martijn Koster <m.koster at webcrawler.com>
#	Richard Yeh <rcyeh at cco.caltech.edu>
#
# Prevent building of perls later than 5.6.x, stating why -- see above.
#                      -- Dominic Dunlop <domo at computer.org> 040213
# Deny system's false claims to support mmap() and munmap(); note
# also that Sys V IPC (re)disabled by jhi due to continuing inadequacy
#                      -- Dominic Dunlop <domo at computer.org> 001111
# Remove dynamic loading libraries from search; enable SysV IPC with
# MachTen 4.1.4 and above; define SYSTEM_ALIGN_BYTES for old MT versions
#                      -- Dominic Dunlop <domo at computer.org> 000224
# Disable shadow password file access: MT 4.1.1 has necessary library
# functions, but not header file (or documentation)
#                      -- Dominic Dunlop <domo at computer.org> 990804
# 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 at computer.org> 9800802
# Completely disable SysV IPC pending more complete support from Tenon
#                      -- Dominic Dunlop <domo at computer.org> 980712
# Use vfork and perl's malloc by default
#                      -- Dominic Dunlop <domo at computer.org> 980630
# Raise perl's stack size again; cut down reg_infty; document
#                      -- Dominic Dunlop <domo at 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 at computer.org> 980211
# Raise perl's stack size -- Dominic Dunlop <domo at 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

# Assume that PERL_REVISON in patchlevel.h is 5.
# If you want to try building perl-5.8.x or later, set PERL_VERSION_SAFE_MAX
# appropriately in your environment before running Configure.
if [ `awk '$1=="#define" && $2=="PERL_VERSION"{print $3}' patchlevel.h` \
      -gt ${PERL_VERSION_SAFE_MAX:-6} ]
then
    cat <<EOF >&4

Perl versions greater than 5.6.x have not been ported to MachTen. If you
wish to build a version from the 5.6 track, please see the notes in
README.machten
EOF
    exit 1
fi
#
# MachTen 4.1.1's support for shadow password file access is incomplete:
# disable its use completely.
d_getspnam=${d_getspnam:-undef}

# 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}

# Older versions of MachTen malloc() data on a two-byte boundary, which
# works, but slows down operations on long, float and double data.
# Perl's malloc() can compensate if SYSTEM_ALLOC_ALIGNMENT is suitably
# defined.
if expr "$osvers" \< "4.1" >/dev/null
then
system_alloc_alignment=" -DSYSTEM_ALLOC_ALIGNMENT=2"
fi
# Do not wrap the following long line
malloc_cflags='ccflags="$ccflags -DPLAIN_MALLOC -DNO_FANCY_MALLOC -DUSE_PERL_SBRK$system_alloc_alignment"'

# 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 less 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 before MachTen 4.1.4 is incomplete (missing msg function
# prototypes, no ftok()), buggy (semctl(.., ..,  IPC_STATUS, ..) hangs
# system), and undocumented.  Claim it's not there at all before 4.1.4.
if expr "$osvers" \< "4.1.4" >/dev/null
then
d_msg=${d_msg:-undef}
d_sem=${d_sem:-undef}
d_shm=${d_shm:-undef}
fi


# As of MachTen 4.1.4 the msg* and shm* are in libc but unimplemented
# (an attempt to use them causes a runtime error)
# XXX Configure probe for really functional msg*() is needed XXX
# XXX Configure probe for really functional shm*() is needed XXX
if test "$d_msg" = ""; then
    d_msgget=${d_msgget:-undef}
    d_msgctl=${d_msgctl:-undef}
    d_msgsnd=${d_msgsnd:-undef}
    d_msgrcv=${d_msgrcv:-undef}
    case "$d_msgget$d_msgsnd$d_msgctl$d_msgrcv" in
    *"undef"*) d_msg="$undef" ;;
    esac
fi
if test "$d_shm" = ""; then
    d_shmat=${d_shmat:-undef}
    d_shmdt=${d_shmdt:-undef}
    d_shmget=${d_shmget:-undef}
    d_shmctl=${d_shmctl:-undef}
    case "$d_shmat$d_shmctl$d_shmdt$d_shmget" in
    *"undef"*) d_shm="$undef" ;;
    esac
fi

# MachTen has stubs for mmap and munmap(), but they just result in the
# caller being killed on the grounds of "Bad system call"
d_mmap=${d_mmap:-undef}
d_munmap=${d_munmap:-undef}

# Get rid of some extra libs which it takes Configure a tediously
# long time never to find on MachTen, or which break perl
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/ dl / /' -e 's/ dld / /' \
    -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.
Similar considerations apply to memory mapping of files, controlled
by \$d_mmap and \$d_munmap.

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.

You may also see "WHOA THERE!!!" messages concerning \$d_getspnam.
Select the default answer: MachTen's support for shadow password
file access is incomplete, and should not be used.

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
        Propagating recommended variable system_alloc_alignment
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

--- NEW FILE: sco_2_3_3.sh ---
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

--- NEW FILE: cygwin.sh ---
#! /bin/sh
# cygwin.sh - hints for building perl using the Cygwin environment for Win32
#

# not otherwise settable
exe_ext='.exe'
firstmakefile='GNUmakefile'
case "$ldlibpthname" in
'') ldlibpthname=PATH ;;
esac
archobjs='cygwin.o'

# mandatory (overrides incorrect defaults)
test -z "$cc" && cc='gcc'
if test -z "$plibpth"
then
    plibpth=`gcc -print-file-name=libc.a`
    plibpth=`dirname $plibpth`
    plibpth=`cd $plibpth && pwd`
fi
so='dll'
# - eliminate -lc, implied by gcc and a symlink to libcygwin.a
libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
# - eliminate -lm, symlink to libcygwin.a
libswanted=`echo " $libswanted " | sed -e 's/ m / /g'`
# - eliminate -lutil, symbols are all in libcygwin.a
libswanted=`echo " $libswanted " | sed -e 's/ util / /g'`
# - add libgdbm_compat $libswanted
# - libcygipc doesn't work much at all with
#   the Perl SysV IPC tests so not adding it --jhi 2003-08-09
#   (with cygwin 1.5.7, cygipc is deprecated in favor of the builtin cygserver)
libswanted="$libswanted gdbm_compat"
test -z "$optimize" && optimize='-O2'
ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
# - otherwise i686-cygwin
archname='cygwin'

# dynamic loading
# - otherwise -fpic
cccdlflags=' '
ld='ld2'

case "$osvers" in

# Configure gets these wrong if the IPC server isn't yet running:
# only use for 1.5.7 and onwards
[2-9]*|1.[6-9]*|1.[1-5][0-9]*|1.5.[7-9]*|1.5.[1-6][0-9]*)
        d_semctl_semid_ds='define'
        d_semctl_semun='define'
        ;;
esac;

# Win9x problem with non-blocking read from a closed pipe
d_eofnblk='define'

# strip exe's and dll's
#ldflags="$ldflags -s"
#ccdlflags="$ccdlflags -s"
#lddlflags="$lddlflags -s"

--- NEW FILE: sunos_4_1.sh ---
# hints/sunos_4_1.sh
# Last modified:  Wed May 27 11:00:02 EDT 1998
# Andy Dougherty  <doughera at 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 for one exception.
i_unistd='undef'
# See util.c for another:  We need _SC_OPEN_MAX, which is in
# <unistd.h>.

# fflush(NULL) will core dump on SunOS 4.1.3.  In util.c we'll
# try explicitly fflushing all open files.  Unfortunately,
# on my SunOS 4.1.3 system, sysconf(_SC_OPEN_MAX) returns
# 64, but only 32 of those file pointers can be accessed 
# directly by _iob[i].  The remainder are off in dynamically
# allocated memory somewhere and I don't know to automatically
# fflush() them.  -- Andy Dougherty  Wed May 26 15:25:22 EDT 1999
util_cflags='ccflags="$ccflags -DPERL_FFLUSH_ALL_FOPEN_MAX=32"'

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 at ncsu.edu> for this info.

# Don't use the GNU ld, that doesn't work, you'll get a lot of
# relocation truncated to fit: BASE13 ...
# from many extensions, like B and Data::Dumper.
ld=/usr/bin/ld

# As of Perl 5.8.1 it seems that dynaloading is broken in SunOS 4.x, sniff.
case "$usedl" in
'') usedl=undef ;;
esac


--- NEW FILE: linux.sh ---
# hints/linux.sh
# Original version by rsanders
# Additional support by Kenneth Albanowski <kjahds at kjahds.com>
#
# ELF support by H.J. Lu <hjl at nynexst.com>
# Additional info from Nigel Head <nhead at ESOC.bitnet>
# and Kenneth Albanowski <kjahds at kjahds.com>
#
# Consolidated by Andy Dougherty <doughera at lafayette.edu>
#
# Updated Thu Feb  8 11:56:10 EST 1996

# Updated Thu May 30 10:50:22 EDT 1996 by <doughera at lafayette.edu>

# Updated Fri Jun 21 11:07:54 EDT 1996
# NDBM support for ELF renabled by <kjahds at kjahds.com>

# No version of Linux supports setuid scripts.
d_suidsafe='undef'

# Debian and Red Hat, and perhaps other vendors, provide both runtime and
# development packages for some libraries.  The runtime packages contain shared
# libraries with version information in their names (e.g., libgdbm.so.1.7.3);
# the development packages supplement this with versionless shared libraries
# (e.g., libgdbm.so).
#
# If you want to link against such a library, you must install the development
# version of the package.
#
# These packages use a -dev naming convention in both Debian and Red Hat:
#   libgdbmg1  (non-development version of GNU libc 2-linked GDBM library)
#   libgdbmg1-dev (development version of GNU libc 2-linked GDBM library)
# So make sure that for any libraries you wish to link Perl with under
# Debian or Red Hat you have the -dev packages installed.
#
# Some operating systems (e.g., Solaris 2.6) will link to a versioned shared
# library implicitly.  For example, on Solaris, `ld foo.o -lgdbm' will find an
# appropriate version of libgdbm, if one is available; Linux, however, doesn't
# do the implicit mapping.
ignore_versioned_solibs='y'

# BSD compatibility library no longer needed
# 'kaffe' has a /usr/lib/libnet.so which is not at all relevant for perl.
# bind causes issues with several reentrant functions
set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /'`
shift
libswanted="$*"

# If you have glibc, then report the version for ./myconfig bug reporting.
# (Configure doesn't need to know the specific version since it just uses
# gcc to load the library for all tests.)
# We don't use __GLIBC__ and  __GLIBC_MINOR__ because they
# are insufficiently precise to distinguish things like
# libc-2.0.6 and libc-2.0.7.
if test -L /lib/libc.so.6; then
    libc=`ls -l /lib/libc.so.6 | awk '{print $NF}'`
    libc=/lib/$libc
fi

# Configure may fail to find lstat() since it's a static/inline
# function in <sys/stat.h>.
d_lstat=define

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# The system malloc() is about as fast and as frugal as perl's.
# Since the system malloc() has been the default since at least
# 5.001, we might as well leave it that way.  --AD  10 Jan 2002
case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

# Check if we're about to use Intel's ICC compiler
case "`${cc:-cc} -V 2>&1`" in
*"Intel(R) C++ Compiler"*|*"Intel(R) C Compiler"*)
    # This is needed for Configure's prototype checks to work correctly
    ccflags="-we147 $ccflags"
    # If we're using ICC, we usually want the best performance
    case "$optimize" in
    '') optimize='-O3' ;;
    esac
    ;;
*"Sun C"*)
    optimize='-xO2'
    cccdlflags='-KPIC'
    lddlflags='-G -Bdynamic'
    ;;
esac

case "$optimize" in
# use -O2 by default ; -O3 doesn't seem to bring significant benefits with gcc
'')
    optimize='-O2'
    case "`uname -m`" in
        ppc*)
            # on ppc, it seems that gcc (at least gcc 3.3.2) isn't happy
	    # with -O2 ; so downgrade to -O1.
            optimize='-O1'
        ;;
    esac
    ;;
esac

# Are we using ELF?  Thanks to Kenneth Albanowski <kjahds at 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 && $run ./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

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 at 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/sh -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.

# November 2001:  That warning's pretty old now and probably not so
# relevant, especially since perl now uses File::Glob for globbing.
# We'll still look for tcsh, but tone down the warnings.
# Andy Dougherty, Nov. 6, 2001
if $csh -c 'echo $version' >/dev/null 2>&1; then
    echo 'Your csh is really tcsh.  Good.'
else
    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
    elif [ -f "$csh" ]; then
	echo "Couldn't find tcsh.  Csh-based globbing might be broken."
    fi
fi

# Shimpei Yamashita <shimpei at socrates.patnet.caltech.edu>
# Message-Id: <33EF1634.B36B6500 at pobox.com>
#
# The DR2 of MkLinux (osname=linux,archname=ppc-linux) may need
# special flags passed in order for dynamic loading to work.
# instead of the recommended:
#
# ccdlflags='-rdynamic'
#
# it should be:
# ccdlflags='-Wl,-E'
#
# So if your DR2 (DR3 came out summer 1998, consider upgrading)
# has problems with dynamic loading, uncomment the
# following three lines, make distclean, and re-Configure:
#case "`uname -r | sed 's/^[0-9.-]*//'``arch`" in
#'osfmach3ppc') ccdlflags='-Wl,-E' ;;
#esac

case "`uname -m`" in
sparc*)
	case "$cccdlflags" in
	*-fpic*) cccdlflags="`echo $cccdlflags|sed 's/-fpic/-fPIC/'`" ;;
	*)	 cccdlflags="$cccdlflags -fPIC" ;;
	esac
	;;
esac

# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
# true libraries. The scripts cause binding against static
# version of -lgdbm which is a bad idea. So if we have 'nm'
# make sure it can read the file
# NI-S 2003/08/07
if [ -r /usr/lib/libndbm.so  -a  -x /usr/bin/nm ] ; then
   if /usr/bin/nm /usr/lib/libndbm.so >/dev/null 2>&1 ; then
    echo 'Your shared -lndbm seems to be a real library.'
   else
    echo 'Your shared -lndbm is not a real library.'
    set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
    shift
    libswanted="$*"
   fi
fi


# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
        ccflags="-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS $ccflags"
        set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
        shift
        libswanted="$*"

	# Somehow at least in Debian 2.2 these manage to escape
	# the #define forest of <features.h> and <time.h> so that
	# the hasproto macro of Configure doesn't see these protos,
	# even with the -D_GNU_SOURCE.

	d_asctime_r_proto="$define"
	d_crypt_r_proto="$define"
	d_ctime_r_proto="$define"
	d_gmtime_r_proto="$define"
	d_localtime_r_proto="$define"
	d_random_r_proto="$define"

	;;
esac
EOCBU

cat > UU/uselargefiles.cbu <<'EOCBU'
# This script UU/uselargefiles.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use large files.
case "$uselargefiles" in
''|$define|true|[yY]*)
# Keep this in the left margin.
ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"

	ccflags="$ccflags $ccflags_uselargefiles"
	;;
esac
EOCBU

# Purify fails to link Perl if a "-lc" is passed into its linker
# due to duplicate symbols.
case "$PURIFY" in
$define|true|[yY]*)
    set `echo X "$libswanted "| sed -e 's/ c / /'`
    shift
    libswanted="$*"
    ;;
esac

--- NEW FILE: dec_osf.sh ---
# 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.

cc=${cc:-cc}

case "`$cc -v 2>&1 | grep cc`" in
*gcc*) isgcc=gcc ;;
esac

# do NOT, I repeat, *NOT* take away the leading tabs
# Configure Black Magic (TM)
	# reset
	_DEC_cc_style=
case "$isgcc" in
gcc)	if [ "X$gccversion" = "X" ]; then
	    # Done too late in Configure if hinted
	    gccversion=`$cc --version | sed 's/.*(GCC) *//'`
	fi
	set $gccversion
	if test "$1" -lt 2 -o \( "$1" -eq 2 -a \( "$2" -lt 95 -o \( "$2" -eq 95 -a "$3" -lt 3 \) \) \); then
	    cat >&4 <<EOF

*** Your cc seems to be gcc and its version ($gccversion) seems to be
*** less than 2.95.3.  This is not a good idea since old versions of gcc
*** are known to produce buggy code when compiling Perl (and no doubt for
*** other programs, too).
***
*** Therefore, I strongly suggest upgrading your gcc.  (Why don't you use
*** the vendor cc is also a good question.  It comes with the operating
*** system, produces good code, and is very ANSI C fastidious.)

Cannot continue, aborting.

EOF
	    exit 1
	fi
	if test "$1" -eq 2 -a "$2" -eq 95 -a "$3" -le 2; then
	    cat >&4 <<EOF

*** Note that as of gcc 2.95.2 (19991024) and Perl 5.6.0 (March 2000)
*** if the said Perl is compiled with the said gcc the lib/sdbm test
*** may dump core (meaning that the SDBM_File extension is unusable).
*** As this core dump never happens with the vendor cc, this is most
*** probably a lingering bug in gcc.  Therefore unless you have a better
*** gcc installation you are still better off using the vendor cc.

Since you explicitly chose gcc, I assume that you know what are doing.

EOF
	fi
	# -ansi is fine for gcc in Tru64 (-ansi is not universally so).
	_ccflags_strict_ansi="-ansi"
        ;;
*)	# compile something.
	cat >try.c <<EOF
int main() { return 0; }
EOF
	ccversion=`cc -V | awk '/(Compaq|DEC) C/ {print $3}' | grep '^V'`
    	# the main point is the '-v' flag of 'cc'.
       	case "`cc -v -c try.c 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
	# We need to figure out whether -c99 is a valid flag to use.
	# If it is, we can use it for being nauseatingly C99 ANSI --
	# but even then the lddlflags needs to stay -std1.
	# If it is not, we must use -std1 for both flags.
	#
       	case "`cc -c99 try.c 2>&1`" in
	*"-c99: Unknown flag"*)
		_ccflags_strict_ansi="-std1"
		;;
	*)	# However, use the -c99 only if compiling for
		# -DPERL_MEM_LOG, where the C99 feature __func__
		# is useful to have.  Otherwise use the good old
		# -std1 so that we stay C89 strict, which the goal
		# of the Perl C code base (no //, no code between
		# declarations, etc).  Moreover, the Tru64 cc is
		# not fully C99, and most probably never will be.
		#
		# The -DPERL_MEM_LOG can be either in ccflags
		# (if using an old config.sh) or in the command line
		# (which has been stowed away in UU/cmdline.opt).
		#
		case "$ccflags `cat UU/cmdline.opt`" in
		*-DPERL_MEM_LOG*)	_ccflags_strict_ansi="-c99"  ;;
		*)			_ccflags_strict_ansi="-std1" ;;
		esac
		;;
	esac
	_lddlflags_strict_ansi="-std1"
	# -no_ansi_alias because Perl code is not that strict
	# (also gcc uses by default -fno-strict-aliasing).
	_ccflags_strict_ansi="$_ccflags_strict_ansi -no_ansi_alias"
	# Cleanup.
	rm -f try.c try.o
	;;
esac

# Be nauseatingly ANSI
ccflags="$ccflags $_ccflags_strict_ansi"

# for gcc the Configure knows about the -fpic:
# position-independent code for dynamic loading

# we want optimisation

case "$optimize" in
'')	case "$isgcc" in
	gcc)	optimize='-O3'				;;
	*)	case "$_DEC_cc_style" in
		new)	optimize='-O4'			;;
		old)	optimize='-O2 -Olimit 3200'	;;
	    	esac
		ccflags="$ccflags -D_INTRINSICS"
		;;
	esac
	;;
esac

## Optimization limits
case "$isgcc" in
gcc) #  gcc 3.2.1 wants a lot of memory for -O3'ing toke.c
cat >try.c <<EOF
#include <sys/resource.h>

int main ()
{
    struct rlimit rl;
    int i = getrlimit (RLIMIT_DATA, &rl);
    printf ("%d\n", rl.rlim_cur / (1024 * 1024));
    } /* main */
EOF
$cc -o try $ccflags $ldflags try.c
	maxdsiz=`./try`
rm -f try try.c core
if [ $maxdsiz -lt 256 ]; then
    # less than 256 MB is probably not enough to optimize toke.c with gcc -O3
    cat <<EOM >&4

Your process datasize is limited to $maxdsiz MB, which is (sadly) not
always enough to fully optimize some source code files of Perl,
at least 256 MB seems to be necessary as of Perl 5.8.0.  I'll try to
use a lower optimization level for those parts.  You could either try
using your shell's ulimit/limit/limits command to raise your datasize
(assuming the system-wide hard resource limits allow you to go higher),
or if you can't go higher and if you are a sysadmin, and you *do* want
the full optimization, you can tune the 'max_per_proc_data_size'
kernel parameter: see man sysconfigtab, and man sys_attrs_proc.

EOM
toke_cflags='optimize=-O2'
    fi
;;
esac

# The patch 23787
# http://public.activestate.com/cgi-bin/perlbrowse?patch=23787
# broke things for gcc (at least gcc 3.3) so that many of the pack()
# checksum tests for formats L, j, J, especially when combined
# with the < and > specifiers, started to fail if compiled with plain -O3.
case "$isgcc" in
gcc)
pp_pack_cflags='optimize="-O3 -fno-cse-skip-blocks"'
;;
esac

# we want dynamic fp rounding mode, and we want ieee exception semantics
case "$isgcc" in
gcc)	;;
*)	case "$_DEC_cc_style" in
	new)	ccflags="$ccflags -fprm d -ieee"	;;
	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 "*"'

# Intentional leading tab.
	myosvers="`/usr/sbin/sizer -v 2>/dev/null || uname -r`"

# Fancy compiler suites use optimising linker as well as compiler.
# <spider at Orb.Nashua.NH.US>
case "`uname -r`" in
*[123].*)	# old loader
		lddlflags="$lddlflags -O3"
		;;
*)            if $test "X$optimize" = "X$undef"; then
                      lddlflags="$lddlflags -msym"
              else
		  case "$myosvers" in
		  *4.0D*)
		      # QAR 56761: -O4 + .so may produce broken code,
		      # fixed in 4.0E or better.
		      ;;
		  *)    
                      lddlflags="$lddlflags $optimize"
		      ;;
		  esac
		  # -msym: If using a sufficiently recent /sbin/loader,
		  # keep the module symbols with the modules.
                  lddlflags="$lddlflags -msym $_lddlflags_strict_ansi"
              fi
		;;
esac
# Yes, the above loses if gcc does not use the system linker.
# If that happens, let me know about it. <jhi at iki.fi>

# Because there is no other handy way to recognize 3.X.
case "`uname -r`" in
*3.*)	ccflags="$ccflags -DDEC_OSF1_3_X" ;;
esac

# 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 "`uname -r`" in
	*[123].*)
		case "$useshrplib" in
		false|undef|'')	lddlflags="$lddlflags -s"	;;
		esac
		;;
        *) lddlflags="$lddlflags -s"
	        ;;
    	esac
    	;;
esac

#
# 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.
#

case "$_DEC_cc_style.$useshrplib" in
	new.)	useshrplib="$define"	;;
esac

# The EFF_ONLY_OK from <sys/access.h> is present but dysfunctional for
# [RWX]_OK as of Digital UNIX 4.0[A-D]?.  If and when this gets fixed,
# please adjust this appropriately.  See also pp_sys.c just before the
# emulate_eaccess().

# Fixed in V5.0A.
case "$myosvers" in
*5.0[A-Z]*|*5.[1-9]*|*[6-9].[0-9]*)
	: ok
	;;
*)
# V5.0 or previous
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
	;;
esac

# The off_t is already 8 bytes, so we do have largefileness.

cat > UU/usethreads.cbu <<'EOCBU'
# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
	# In Tru64 V5 (at least V5.1A, V5.1B) gcc (at least 3.2.2)
	# cannot be used to compile a threaded Perl.
	cat > pthread.c <<EOF
#include <pthread.h>
extern int foo;	
EOF
	$cc -c pthread.c 2> pthread.err
	if grep -q "unrecognized compiler" pthread.err; then
	    cat >&4 <<EOF
***
*** I'm sorry but your C compiler ($cc) cannot be used to
*** compile Perl with threads.  The system C compiler should work.
***

Cannot continue, aborting.

EOF
	    rm -f pthread.*
	    exit 1
	fi
	rm -f pthread.*
	# Threads interfaces changed with V4.0.
	case "$isgcc" in
	gcc)
	    ccflags="-D_REENTRANT $ccflags"
	    ;;
	*)  case "`uname -r`" in
	    *[123].*)	ccflags="-threads $ccflags" ;;
	    *)          ccflags="-pthread $ccflags" ;;
	    esac
	    ;;
	esac    
	case "`uname -r`" in
	*[123].*) libswanted="$libswanted pthreads mach exc c_r" ;;
	*)        libswanted="$libswanted pthread exc" ;;
	esac

	case "$usemymalloc" in
	'')
		usemymalloc='n'
		;;
	esac
	# These symbols are renamed in <time.h> so
	# that the Configure hasproto doesn't see them.
	d_asctime_r_proto="$define"
	d_ctime_r_proto="$define"
	d_gmtime_r_proto="$define"
	d_localtime_r_proto="$define"
	;;
esac
EOCBU

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

cat > UU/uselongdouble.cbu <<'EOCBU'
# This script UU/uselongdouble.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use long doubles.
case "$uselongdouble" in
$define|true|[yY]*)
	case "$myosvers" in
	*[1-4].0*)	cat >&4 <<EOF

***
*** Sorry, you cannot use long doubles in pre-V5.0 releases of Tru64.
***

Cannot continue, aborting.

EOF
		exit 1
		;;
	*)
		# Test whether libc's been fixed yet for long doubles.
		cat >try.c <<\TRY
#include <stdio.h>
int main(int argc, char **argv)
{
	unsigned long uvmax = ~0UL;
	long double ld = uvmax + 0.0L;
	char buf1[30], buf2[30];

	(void) sprintf(buf1, "%lu", uvmax);
	(void) sprintf(buf2, "%.0Lf", ld);
	return strcmp(buf1, buf2) != 0;
}
TRY
		# Don't bother trying to work with Configure's idea of
		# cc and the various flags.  This might not work as-is
		# with gcc -- but we're testing libc, not the compiler.
		if cc -o try $_ccflags_strict_ansi try.c && ./try
		then
			: ok
		else
			cat <<\UGLY >&4
!
Warning!  Your libc has not yet been patched so that its "%Lf" format for
printing long doubles shows all the significant digits.  You will get errors
in the t/op/numconvert test because of this.  (The data is still good
internally, and the "%e" format of printf() or sprintf() in perl will still
produce valid results.)  See README.tru64 for additional details.

Continuing anyway.
!
UGLY
		fi
		$rm -f try try.c
	esac
	;;
esac
EOCBU

case "$myosvers" in
*[1-4].0*) d_modfl=undef ;; # must wait till 5.0
esac

# Keep that leading tab.
	old_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
for p in $loclibpth
do
	if test -d $p; then
	    echo "Appending $p to LD_LIBRARY_PATH." >& 4
	    case "$LD_LIBRARY_PATH" in
	    '') LD_LIBRARY_PATH=$p                  ;;
	    *)  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$p ;;
	    esac
	fi	
done
case "$LD_LIBRARY_PATH" in
"$old_LD_LIBRARY_PATH") ;;
*) echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH." >& 4 ;;
esac
case "$LD_LIBRARY_PATH" in
'') ;;
* ) export LD_LIBRARY_PATH ;;
esac

#
# Unset temporary variables no more needed.
#

unset _DEC_cc_style
    
#
# History:
#
# perl5.005_51:
#
#	September-1998 Jarkko Hietaniemi <jhi at iki.fi>
#
#	* Added the -DNO_EFF_ONLY_OK flag ('use filetest;' support).
#
# perl5.004_57:
#
#	19-Dec-1997 Spider Boardman <spider at Orb.Nashua.NH.US>
#
#	* Newer Digital 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 at Orb.Nashua.NH.US>
#
#	* libnet on Digital UNIX is for JAVA, not for sockets.
#
#
# perl5.003_28:
#
#       22-Feb-1997 Jarkko Hietaniemi <jhi at 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 at 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 at iki.fi>
#
#	* unset _DEC_cc_style and more commentary on -std.
#
#
# perl5.003_26:
#
#	15-Feb-1997 Jarkko Hietaniemi <jhi at iki.fi>
#
#	* -std and -ansi.
#
#
# perl5.003_24:
#
#	30-Jan-1997 Jarkko Hietaniemi <jhi at iki.fi>
#
#	* Fixing the note on -DDEBUGGING.
#
#	* Note on -O5 -fast.
#
#
# perl5.003_23:
#
#	26-Jan-1997 Jarkko Hietaniemi <jhi at iki.fi>
#
#	* Notes on how to do both optimisation and debugging.
#
#
#	25-Jan-1997 Jarkko Hietaniemi <jhi at 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 at 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 at 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 at 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 at rosat.mpe-garching.mpg.de>
#	
#	* Set -Olimit to 3200 because perl_yylex.c got too big
#	  for the optimizer.
#


--- NEW FILE: nonstopux.sh ---
# tom_bates at att.net
# mips-compaq-nonstopux

. $src/hints/svr4.sh

case "$cc" in
        *gcc*)
                ccflags='-fno-strict-aliasing'
                lddlflags='-shared'
                ldflags=''
		;;
        *)
                cc="cc -Xa -Olimit 4096"
                malloctype="void *"
		;;
esac

libswanted=`echo " $libswanted " | sed -e 's/ ucb / /'`
glibpth=`echo " $glibpth " | sed -e 's/ \/usr\/ucblib / /'`


--- NEW FILE: gnuknetbsd.sh ---
#! /bin/sh

# Support for Debian GNU/NetBSD (netbsd-i386 and netbsd-alpha)
# A port of the Debian GNU system using the NetBSD kernel.

. ./hints/linux.sh

# Configure sets these where $osname = linux
ccdlflags='-Wl,-E'
lddlflags='-shared'

--- NEW FILE: vmesa.sh ---
# hints/vmesa.sh
#
# VM/ESA hints by Neale Ferguson (neale at mailbox.tabnsw.com.au)
#
# Currently (1999-Jan-09) Configure cannot be used in VM/ESA because
# too many things are done differently in the C compiler environment.
# Therefore the hints file is hand-crafted. --jhi at iki.fi
# 

case "$archname" in
'') archname="$osname" ;;
esac
bin='/usr/local/bin'
binexp='/usr/local/bin'
byacc='byacc'
c='\c'
cc='c89'
ccflags="-D_OE_SOCKETS -DOLD_PTHREADS_API -DYYDYNAMIC -DDEBUGGING -I.." \
	"-I/usr/local/include -W c,hwopts\\\(string\\\),langlvl\\\(ansi\\\)"
clocktype='clock_t'
cryptlib="n"
d_Gconvert='gcvt((x),(n),(b))'
d_access='define'
d_alarm='define'
d_archlib='define'
# randbits='15'
archobjs="vmesa.o"
d_attribute_format='undef'
d_attribute_malloc='undef'
d_attribute_nonnull='undef'
d_attribute_noreturn='undef'
d_attribute_pure='undef'
d_attribute_unused='undef'
d_attribute_warn_unused_result='undef'
d_bcmp='define'
d_bcopy='define'
d_bsd='undef'
d_bsdgetpgrp='undef'
d_bsdsetpgrp='undef'
d_bzero='define'
d_casti32='define'
d_castneg='define'
d_charvspr='undef'
d_chown='define'
d_chroot='undef'
d_chsize='undef'
d_closedir='define'
d_const='define'
d_crypt='undef'
d_csh='undef'
d_cuserid='define'
d_dbl_dig='define'
d_difftime='define'
d_dirnamlen='undef'
d_dlerror='define'
d_dlopen='define'
d_dlsymun='define'
d_dosuid='undef'
d_dup2='define'
d_endgrent='undef'
d_endpwent='undef'
d_eofnblk='define'
d_eunice='undef'
d_fchmod='define'
d_fchown='define'
d_fcntl='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
d_flexfnam='define'
d_flock='undef'
d_fork='undef'
d_fpathconf='define'
d_fsetpos='define'
d_ftime='undef'
d_getgrent='undef'
d_gethent='define'
d_gethname='undef'
d_getlogin='define'
d_getpgid='undef'
d_getpgrp='define'
d_getpgrp2='undef'
d_getppid='define'
d_getprior='undef'
d_getpwent='undef'
d_gettimeod='define'
d_gnulibc='undef'
d_htonl='define'
d_index='define'
d_inetaton='undef'
d_isascii='define'
d_killpg='define'
d_link='define'
d_locconv='define'
d_lockf='define'
d_longdbl='undef'
d_longllong='undef'
d_lstat='define'
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
d_memcmp='define'
d_memcpy='define'
d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkfifo='define'
d_mktime='define'
d_msg='define'
d_msgctl='define'
d_msgget='define'
d_msgrcv='define'
d_msgsnd='define'
d_mymalloc='undef'
d_nice='undef'
d_oldsock='undef'
d_open3='define'
d_pathconf='define'
d_pause='define'
d_phostname='undef'
d_pipe='define'
d_poll='undef'
d_portable='define'
d_pwage='undef'
d_pwchange='undef'
d_pwclass='undef'
d_pwcomment='undef'
d_pwexpire='undef'
d_pwquota='undef'
d_readdir='define'
d_readlink='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
d_safebcpy='define'
d_safemcpy='undef'
d_sanemcmp='define'
d_sched_yield='undef'
d_seekdir='undef'
d_select='define'
d_sem='define'
d_semctl='define'
d_semctl_semid_ds='define'
d_semget='define'
d_semop='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='undef'
d_setgrps='undef'
d_setlinebuf='undef'
d_setlocale='define'
d_setpgid='define'
d_setpgrp='define'
d_setpgrp2='undef'
d_setprior='undef'
d_setpwent='undef'
d_setregid='undef'
d_setresgid='undef'
d_setresuid='undef'
d_setreuid='undef'
d_setrgid='undef'
d_setruid='undef'
d_setsid='define'
d_sfio='undef'
d_shm='define'
d_shmat='define'
d_shmatprototype='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_sigaction='define'
d_sigsetjmp='define'
d_socket='define'
d_sockpair='undef'
d_statblks='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdiobase='undef'
d_stdstdio='undef'
d_strchr='define'
d_strcoll='define'
d_strctcpy='undef'
d_strerrm='strerror(e)'
d_strerror='define'
d_strtod='define'
d_strtol='define'
d_strtoul='define'
d_strxfrm='define'
d_suidsafe='undef'
d_symlink='define'
d_syscall='undef'
d_sysconf='define'
d_sysernlst="n"
d_syserrlst='undef'
d_system='define'
d_tcgetpgrp='define'
d_tcsetpgrp='define'
d_telldir='undef'
d_time='define'
d_times='define'
d_truncate='define'
d_tzname='define'
d_umask='define'
d_uname='define'
d_union_semun='undef'
d_vfork='define'
d_void_closedir='undef'
d_voidsig='define'
d_voidtty="n"
d_volatile='define'
d_vprintf='define'
d_waitpid='define'
d_wait4='undef'
d_wcstombs='define'
d_wctomb='define'
d_xenix='undef'
db_hashtype='u_int32_t'
db_prefixtype='size_t'
direntrytype='struct dirent'
dlext='none'
dlsrc='dl_vmesa.xs'
dynamic_ext=''
eagain='EAGAIN'
ebcdic='define'
exe_ext=''
fpostype='fpos_t'
freetype='void'
groupstype='gid_t'
h_fcntl='false'
h_sysfile='true'
hint='recommended'
i_arpainet="define"
i_bsdioctl="n"
i_db='undef'
i_dbm='define'
i_dirent='define'
i_dld='define'
i_dlfcn='define'
i_fcntl='undef'
i_float='define'
i_gdbm='define'
i_grp='define'
i_limits='define'
i_locale='define'
i_malloc='undef'
i_math='define'
i_memory='define'
i_ndbm='define'
i_neterrno='undef'
i_niin='define'
i_pwd='define'
i_rpcsvcdbm='undef'
i_sfio='undef'
i_sgtty='undef'
i_stdarg='define'
i_stddef='define'
i_stdlib='define'
i_string='define'
i_sysdir='define'
i_sysfile='define'
i_sysfilio='undef'
i_sysin='undef'
i_sysioctl='define'
i_sysndir='undef'
i_sysparam='undef'
i_sysresrc='define'
i_sysselct='undef'
i_syssockio="n"
i_sysstat='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
i_systypes='define'
i_sysun='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='undef'
i_unistd='define'
i_utime='define'
i_values='undef'
i_varargs='undef'
i_varhdr='stdarg.h'
i_vfork='undef'
ld='c89'
ldflags='-L/usr/local/lib -L.'
lib_ext='.a'
libc=''
libperl='libperl.a'
libpth='/usr/local/lib /lib /usr/lib'
libs='-l//posxsock -l//vmmtlib -lgdbm -lxpg4'
libswanted='gdbm'
lint="n"
locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
make_set_make='#'
make='gnumake'
mallocobj=''
mallocsrc=''
malloctype='void *'
netdb_hlen_type='size_t'
netdb_host_type='char *'
netdb_name_type='const char *'
netdb_net_type='in_addr_t'
o_nonblock='O_NONBLOCK'
obj_ext='.o'
optimize='undef'
prefix='/usr/local'
prefixexp='/usr/local'
prototype='define'
ranlib=':'
rd_nodata='-1'
scriptdir='/usr/local/bin'
scriptdirexp='/usr/local/bin'
selecttype='fd_set *'
shmattype='void *'
shrpenv=''
signal_t='void'
sig_name_init='"ZERO","HUP","INT","ABRT","ILL","POLL","URG","STOP","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","NUM18","CONT","CHLD","TTIN","TTOU","IO","QUIT","TSTP","TRAP","NUM27","WINCH","XCPU","XFSZ","VTALRM","PROF","NUM33","NUM34","NUM35","NUM36","NUM3","NUM38","NUM39","NUM40","NUM41","NUM42","NUM43","NUM44","NUM45","NUM46","NUM47","NUM48","NUM49","CLD"'
sig_num_init='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,20 '
sizetype='size_t'
so='.a'
ssizetype='ssize_t'
static_ext='Data/Dumper Digest/MD5 Fcntl Filter/Util/Call GDBM_File IO IPC/SysV List/Util MIME/Base64 NDBM_File Opcode PerlIO/scalar POSIX Socket Storable Thread Time/HiRes Time/Piece attrs re'
stdchar='char'
stdio_cnt='(fp)->__countIn'
stdio_ptr='(fp)->__bufPtr'
timeincl='sys/time.h '
timetype='time_t'
uidtype='uid_t'
usedl='define'
usemymalloc='n'
usenm='false'
useopcode='true'
useperlio='undef'
useposix='true'
usesfio='false'
useshrplib='false'
usethreads='y'
usevfork='true'
vi='x'

--- NEW FILE: atheos.sh ---
# AtheOS hints file ( http://www.atheos.cx/ )
# Kurt Skauen, kurt at atheos.cx 
 
prefix="/usr/perl5"

libpth='/system/libs /usr/lib'
usrinc='/include'

libs=' '

d_htonl='define'
d_htons='define'
d_ntohl='define'
d_ntohs='define'

d_locconv='undef'

# POSIX and BSD functions are scattered over several non-standard libraries
# in AtheOS, so I figured it would be safer to let the linker figure out
# which symbols are available.

usenm='false'

# Hopefully, the native malloc knows better than perl's.
usemymalloc='n'

# AtheOS native FS does not support hard-links, but link() is defined
# (for other FS's).

d_link='undef'
dont_use_nlink='define'

ld='gcc'
cc='gcc'


--- NEW FILE: sunos_4_0.sh ---
ccflags="$ccflags -DFPUTS_BOTCH"
i_unistd=$undef

--- NEW FILE: irix_4.sh ---
#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 at 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

case "$usethreads" in
$define|true|[yY]*)
        cat >&4 <<EOM
IRIX `uname -r` does not support POSIX threads.
You should upgrade to at least IRIX 6.2 with pthread patches.
EOM
	exit 1
	;;
esac

case " $use64bits $use64bitint $use64bitall " in
*" $define "*|*" true "*|*" [yY] "*)
	cat >&4 <<EOM
IRIX `uname -r` does not support 64-bit types.
You should upgrade to at least IRIX 6.2.
Cannot continue, aborting.
EOM
	exit 1
esac


--- NEW FILE: qnx.sh ---
#----------------------------------------------------------------
# QNX hints
#
# Most of the hints in this file are for QNX4, which needed
# more help. The QNX6 hints are located toward the bottom.
#
# perl-5.7.3 passes all tests under QNX4.24G
#  Watcom 10.6 with Beta/970211.wcc.update.tar.F
#  socket3r.lib Nov21 1996.
# perl-5.7.3 fails 2 known tests under QNX6.1.0
#
# As with many unix ports, this one depends on a few "standard"
# unix utilities which are not necessarily standard for QNX4.
#
# /bin/sh  This is used heavily by Configure and then by
#          perl itself. QNX4'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 its 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 for QNX4:
#   There is no support for dynamically linked libraries in
#   QNX4.
#
#   If you wish to compile with the Socket extension, you need
#   to have the TCP/IP toolkit, and you need to make sure that
#   -lsocket locates the correct copy of socket3r.lib. Beware
#   that the Watcom compiler ships with a stub version of
#   socket3r.lib which has very little functionality. Also
#   beware the order in which wlink searches directories for
#   libraries. You may have /usr/lib/socket3r.lib pointing to
#   the correct library, but wlink may pick up
#   /usr/watcom/10.6/usr/lib/socket3r.lib instead. Make sure
#   they both point to the correct library, that is,
#   /usr/tcptk/current/usr/lib/socket3r.lib.
# 
#   ext/Cwd/Cwd.t will complain if `pwd` and cwd don't give
#   the same results. cwd calls `fullpath -t`, so if you
#   cd `fullpath -t` before running the test, it will
#   pass.
#
#   lib/File/Find/taint.t will complain if '.' is in your
#   PATH. The PATH test is triggered because cwd calls
#   `fullpath -t`.
#
#   ext/IO/lib/IO/t/io_sock.t: Subtest 14 is skipped due to
#   the fact that the functionality to read back the non-blocking
#   status of a socket is not implemented in QNX's TCP/IP. This
#   has been reported to QNX and it may work with later versions
#   of TCP/IP.
#
# Older issues:
#   lib/posix.t test failed 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
#----------------------------------------------------------------
# Outstanding Issues for QNX6:
#  The following tests are still failing as of 5.7.3:
#
#   op/sprintf.........................FAILED at test 91
#   lib/Benchmark......................FAILED at test 26
#
# This is due to a bug in the C library's printf routine.
# printf("'%e'", 0. ) produces '0.000000e+0', but ANSI requires
# '0.000000e+00'. QNX has acknowledged the bug and it should be
# fixed in 6.2.0.
#
#----------------------------------------------------------------
# These hints were submitted by:
#   Norton T. Allen
#   Harvard University Atmospheric Research Project
#   allen at 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 QNX4 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. I will use uname's architecture for Neutrino.
#----------------------------------------------------------------
set X `uname -a`
shift
[ "$1" != "QNX" ] && echo "uname doesn't look like QNX!"
case $4 in
  42[2-9]) archname='x86-qnx';;
  *) osname='nto'
	 osvers=$3
     archname="$5-nto";;
esac

if [ "$osname" = "qnx" ]; then
  #----------------------------------------------------------------
  # 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...
  #
  # unix.h is required as a general rule for unixy applications.
  #----------------------------------------------------------------
  ccflags='-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
else
  # $^O eq nto

  ccflags='-DDLOPEN_WONT_DO_RELATIVE_PATHS'

  # Options required to get dynamic linking to work
  lddlflags='-shared'
  ccdlflags='-Wl,-E'

  # Somewhere in the build, something tries to throw a gcc
  # option to $cc if it knows it invokes gcc. Our cc doesn't
  # recognize that option, so we're better off setting cc=gcc.
  cc='gcc'

  # If we use perl's malloc, it dies with an invalid sbrk.
  # This is probably worth tracking down someday.
  usemymalloc='false'
fi

--- NEW FILE: gnukfreebsd.sh ---
#! /bin/sh

# Support for Debian GNU/kFreeBSD (kfreebsd-gnu)
# A port of the Debian GNU system using the FreeBSD kernel.

. ./hints/linux.sh

# Configure sets these where $osname = linux
ccdlflags='-Wl,-E'
lddlflags='-shared'

--- NEW FILE: isc_2.sh ---
#  isc_2.sh
#  Interactive Unix Version 2.2
#  Compile perl entirely in posix mode. 
#  Andy Dougherty		doughera at 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"

--- NEW FILE: os390.sh ---
# hints/os390.sh
#
# OS/390 hints by David J. Fiander <davidf at mks.com>
#
# OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to:
# 
#     John Goodyear <johngood at us.ibm.com>
#     John Pfuntner <pfuntner at vnet.ibm.com>
#     Len Johnson <lenjay at ibm.net>
#     Bud Huff  <BAHUFF at us.oracle.com>
#     Peter Prymmer <pvhp at forte.com>
#     Andy Dougherty  <doughera at lafayette.edu>
#     Tim Bunce  <Tim.Bunce at 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
# You can override this with Configure -Dcc=gcc -Dld=ld.
case "$cc" in
'') cc='c89' ;;
esac
case "$ld" in
'') ld='c89' ;;
esac

# -DMAXSIG=38 maximum signal number
# -DOEMVS is used in place of #ifdef __MVS__ in certain places.
# -D_OE_SOCKETS alters system headers.
# -D_XOPEN_SOURCE_EXTENDEDA alters system headers.
# 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 and need not be mentioned here.
# Prepend your favorites with Configure -Dccflags=your_favorites
case "$ccflags" in
'') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
*) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
esac

# Turning on optimization breaks perl.
# You can override this with Configure -Doptimize='-O' or somesuch.
case "$optimize" in
'') optimize='none' ;;
esac

# To link via definition side decks we need the dll option
# You can override this with Configure -Ucccdlflags or somesuch.
case "$cccdlflags" in
'') cccdlflags='-W 0,dll' ;;
esac

case "$so" in
'') so='a' ;;
esac

case "$alignbytes" in
'') alignbytes=8 ;;
esac

case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

# On OS/390, libc.a doesn't really hold anything at all,
# so running nm on it is pretty useless.
# You can override this with Configure -Dusenm.
case "$usenm" in
'') usenm='false' ;;
esac

# Setting ldflags='-Wl,EDIT=NO' will get rid of the symbol
# information at the end of the executable (=> smaller binaries).
# Override this option with -Dldflags='whatever else you wanted'.
case "$ldflags" in
'') ldflags='-Wl,EDIT=NO' ;;
esac

# In order to build with dynamic be sure to specify:
#   Configure -Dusedl
# Do not forget to add $archlibexp/CORE to your LIBPATH.
# You might want to override some of this with things like:
#  Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
case "$usedl" in
'')
    usedl='n' 
    case "$dlext" in
    '') dlext='none' ;;
    esac
    ;;
define)
    case "$useshrplib" in
    '') useshrplib='true' ;;
    esac
    case "$dlsrc" in
    '') dlsrc='dl_dllload.xs' ;;
    esac
    # For performance use 'so' at or beyond v2.8, 'dll' for 2.7 and prior versions
    case "`uname -v`x`uname -r`" in
    02x0[89].*|02x1[0-9].*|[0-9][3-9]x*) 
        so='so'
        case "$dlext" in
        '') dlext='so' ;;
        esac
        ;;
    *) 
        so='dll'
        case "$dlext" in
        '') dlext='dll' ;;
        esac
        ;;
    esac
    libperl="libperl.$so"
    ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
    cccdlflags='-c -Wc,dll,EXPORTALL'
    # The following will need to be modified for the installed libperl.x.
    # The modification to Config.pm is done by the installperl script after the build and test.
    ccdlflags="-W l,dll `pwd`/libperl.x"
    lddlflags="-W l,dll `pwd`/libperl.x"
    ;;
esac
# even on static builds using LIBPATH should be OK.
case "$ldlibpthname" in
'') ldlibpthname=LIBPATH ;;
esac

# The folowing should always be used
d_oldpthreads='define'

# Header files to include.
# You can override these with Configure -Ui_time -Ui_systime -Dd_pthread_atfork.
case "$i_time" in
'') i_time='define' ;;
esac
case "$i_systime" in
'') i_systime='define' ;;
esac
case "$d_pthread_atfork" in
'') d_pthread_atfork='undef' ;;
esac
case "$d_pthread_atfork" in                                                  
'') d_pthread_atfork='undef' ;;                                              
esac                                                                         

# (from aix.sh)
# uname -m output is too specific and not appropriate here
# osname should come from Configure
# You can override this with Configure -Darchname='s390' but please don't.
case "$archname" in
'') archname="$osname" ;;
esac

# We have our own cppstdin script.  This is not a variable since 
# Configure sees the presence of the script file.
# We put system header -D definitions in so that Configure
# can find the shmat() prototype in <sys/shm.h> and various
# other things.  Unfortunately, cppflags occurs too late to be of 
# value external to the script.  This may need to be revisited 
# under a compiler other than c89.
case "$usedl" in
define)
echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -D_SHR_ENVIRON -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
    ;;
*)
echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
    ;;
esac

#
# Note that Makefile.SH employs a bare yacc command to generate 
# perly.[hc] and a2p.[hc], hence you may wish to:
#
#    alias yacc='myyacc'
#
# Then if you would like to use myyacc and skip past the
# following warnings try invoking Configure like so: 
#
#    sh Configure -Dbyacc=yacc
#
# This trick ought to work even if your yacc is byacc.
#
if test "X$byacc" = "Xbyacc" ; then
    if test -e /etc/yyparse.c ; then
        : we should be OK - perhaps do a test -r?
    else
        cat <<EOWARN >&4

Warning.  You do not have a copy of yyparse.c, the default 
yacc parser template file, in place in /etc.
EOWARN
        if test -e /samples/yyparse.c ; then
            cat <<EOWARN >&4

There does appear to be a template file in /samples though.
Please run:

      cp /samples/yyparse.c /etc

before attempting to Configure the build of $package.

EOWARN
        else
            cat <<EOWARN >&4

There does not appear to be one in /samples either.  
If you feel you can make use of an alternate yacc-like 
parser generator then please read the comments in the
hints/os390.sh file carefully.

EOWARN
        fi
        exit 1
    fi
fi

# Most of the time gcvt() seems to work fine but
# sometimes values like 0.1, 0.2, come out as "10", "20",
# a trivial Perl demonstration snippet is 'print 0.1'.
# The -W 0,float(ieee) seems to be the switch breaking gcvt().
# sprintf() seems to get things right(er).
gconvert_preference=sprintf

cat >config.arch<<'__CONFIG_ARCH__'
# The '-W 0,float(ieee)' cannot be used during Configure as ldflags.

ccflags="$ccflags -W 0,float(ieee)"

__CONFIG_ARCH__

--- NEW FILE: rhapsody.sh ---
##
# Rhapsody (Mac OS X Server) hints
# Wilfredo Sanchez <wsanchez at wsanchez.net>
##

##
# Paths
##

# Configure hasn't figured out the version number yet.  Bummer.
perl_revision=`awk '/define[   ]+PERL_REVISION/ {print $3}' $src/patchlevel.h`
perl_version=`awk '/define[    ]+PERL_VERSION/ {print $3}' $src/patchlevel.h`
perl_subversion=`awk '/define[         ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h`
version="${perl_revision}.${perl_version}.${perl_subversion}"

# BSD paths
case "$prefix" in
  '')
    # Default install; use non-system directories
    prefix='/usr/local'; # Built-in perl uses /usr
    siteprefix='/usr/local';
    vendorprefix='/usr'; usevendorprefix='define';

    # Where to put modules.
    sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also
    vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
    ;;

  '/usr')
    # We are building/replacing the built-in perl
    siteprefix='/usr/local';
    vendorprefix='/usr/local'; usevendorprefix='define';

    # Where to put modules.
    sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also
    vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
    ;;
esac

##
# Tool chain settings
##

# Since we can build fat, the archname doesn't need the processor type
archname='rhapsody';

# nm works.
usenm='true';
  
# Libc is in libsystem.
libc='/System/Library/Frameworks/System.framework/System';

# Optimize.
optimize='-O3';

# -fno-common because common symbols are not allowed in MH_DYLIB
ccflags="${ccflags} -fno-common"

# Unverified whether this is necessary on Rhapsody, but the test shouldn't hurt.
# At least on Darwin 1.3.x:
#
# # define INT32_MIN -2147483648
# int main () {
#  double a = INT32_MIN;
#  printf ("INT32_MIN=%g\n", a);
#  return 0;
# }
# will output:
# INT32_MIN=2.14748e+09
# Note that the INT32_MIN has become positive.
# INT32_MIN is set in /usr/include/stdint.h by:
# #define INT32_MIN        -2147483648
# which seems to break the gcc.  Defining INT32_MIN as (-2147483647-1)
# seems to work.  INT64_MIN seems to be similarly broken.
# -- Nicholas Clark, Ken Williams, and Edward Moy
#
case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in
  *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;;
esac

# cpp-precomp is problematic.
cppflags='${cppflags} -traditional-cpp';

# This is necessary because perl's build system doesn't
# apply cppflags to cc compile lines as it should.
ccflags="${ccflags} ${cppflags}"

# Shared library extension is .dylib.
# Bundle extension is .bundle.
ld='cc';
so='dylib';
dlext='bundle';
dlsrc='dl_dyld.xs';
usedl='define';
cccdlflags='';
lddlflags="${ldflags} -bundle -undefined suppress";
ldlibpthname='DYLD_LIBRARY_PATH';
useshrplib='true';

##
# System libraries
##
  
# vfork works
usevfork='true';

# our malloc works (but allow users to override)
case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

#
# The libraries are not threadsafe in Rhapsody
#
# Fix when Apple fixes libc.
#
case "$usethreads$useithreads" in
  *define*)
    cat <<EOM >&4



*** Warning, there might be problems with your libraries with
*** regards to threading.  The test ext/threads/t/libc.t is likely
*** to fail.

EOM
    ;;
esac

##
# Build process
##

# Case-insensitive filesystems don't get along with Makefile and
# makefile in the same place.  Since Darwin uses GNU make, this dodges
# the problem.
firstmakefile=GNUmakefile;

--- NEW FILE: posix-bc.sh ---
:
# hints/posix-bc.sh
#
# BS2000 (Posix Subsystem) hints by Thomas Dorner <Thomas.Dorner at start.de>
#
# Thanks to the authors of the os390.sh for the very first draft.
#
# You can modify almost any parameter set here using Configure with
# the appropriate -D option.

# remove this line if dynamic libraries are working for you:
 bs2000_ignoredl='y'

# To get ANSI C, we need to use c89
# You can override this with Configure -Dcc=gcc
# (if you ever get a gcc ported to BS2000 ;-).
case "$cc" in
'') cc='c89' ;;
esac

# C-Flags:
# -DPOSIX_BC
# -DUSE_PURE_BISON
# -D_XOPEN_SOURCE_EXTENDED alters system headers.
# Prepend your favorites with Configure -Dccflags=your_favorites
ccflags="$ccflags -Kc_names_unlimited,enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -DYYMAXDEPTH=65000 -DYYINITDEPTH=1000 -D_XOPEN_SOURCE_EXTENDED"

# Now, what kind of BS2000 system are we running on?
echo
if [ -n "`bs2cmd SHOW-SYSTEM-INFO | egrep 'HSI-ATT.*TYPE.*SR'`" ]; then
    echo "You are running a BS2000 machine with Sunrise CPUs."
    echo "Let's hope you have the matching RISC compiler as well."
    ccflags="-K risc_4000 $ccflags"
    bs2000_ldflags='-K risc_4000'
else
    echo "Seems like a standard 390 BS2000 machine to me."
    bs2000_ldflags=''
fi
echo
if [ -z "$bs2000_ignoredl" -a -e /usr/lib/libdl.a ]; then
    echo "Wow, your BS2000 is State Of The Art and seems to support dynamic libraries."
    echo "I just can't resist giving them a try."
    bs2000_lddlflags='-Bsymbolic -Bdynamic'
    # dynamic linkage of system libraries gave us runtime linker
    # errors, so we use static linkage while generating our DLLs :-(
#    bs2000_lddlflags='-Bstatic'
    bs2000_so='none'
    bs2000_usedl='define'
    bs2000_dlext='so'
    case $bs2000_ldflags in
	*risc_4000*)
	    bs2000_ld="perl_genso"
	    echo "
Now you must buy everything they sell you, musn't you?
Didn't somebody tell you that RISC machines and dynamic library support gives
you helluva lot of configuration problems at the moment?
Sigh.  Now you'll expect me to fix it for you, eh?
OK, OK, I'll give you a wrapper.
Just copy $bs2000_ld anywhere into your path before you try to install
additional modules!"

cat > $bs2000_ld <<EOF
#! /bin/sh
#
# Perl's wrapper for genso by Thomas.Dorner at start.de

 GENSO=/usr/bin/genso
 options=""
 params=""
while [[ \$# -gt 0 ]]; do
    case \$1 in
	-K)
	    shift
	    ;;
	-K*)
	    ;;
	*.a)
	    lib=\${1##*/lib}
	    options="\$options -L\${1%/lib*.a} -l\${lib%.a}"
	    ;;
	*.o)
	    params="\$params \$1"
	    ;;
	*)
	    options="\$options \$1"
    esac
    shift
done
echo \$GENSO \$options \$params
exec \$GENSO \$options \$params
EOF

	    chmod +x $bs2000_ld
	    if [[ -w /usr/local/bin && ! -f /usr/local/bin/$bs2000_ld ]]; then
		cp -p $bs2000_ld /usr/local/bin/$bs2000_ld
		echo "(Actually I just did that as well, have a look into /usr/local/bin.)"
	    fi
	    ;;
	*)
	    bs2000_ld='genso'
    esac
else
    if [ -e /usr/lib/libdl.a ]; then
	echo "Your BS2000 supports dynamic libraries, but you (or we ;-) decided to leave them alone."
    else
	echo "Your BS2000 does'n support dynamic libraries so we're just staying static."
    fi
    bs2000_ld='c89'
    bs2000_lddlflags=''
    bs2000_so='none'
    bs2000_usedl='n'
    bs2000_dlext='none'
fi

case "$ld" in
'') ld=$bs2000_ld ;;
esac

# ccdlflags have yet to be determined.
#case "$ccdlflags" in
#'') ccdlflags='-c' ;;
#esac

# cccdlflags have yet to be determined.
#case "$cccdlflags" in
#'') cccdlflags='' ;;
#esac

case "$ldflags" in
'') ldflags=$bs2000_ldflags ;;
esac

case "$lddlflags" in
'') lddlflags=$bs2000_lddlflags ;;
esac

# Turning on optimization breaks perl (CORE-DUMP):
# You can override this with Configure -Doptimize='-O' or somesuch.
case "$optimize" in
'') optimize='none' ;;
esac

# BS2000 doesn't use dynamic memory on its own (yet):
case "$so" in
'') so=$bs2000_so ;;
esac

case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

# On BS2000/Posix, libc.a does not really hold anything at all,
# so running nm on it is pretty useless.
# You can override this with Configure -Dusenm.
case "$usenm" in
'') usenm='false' ;;
esac

#  Configure -Dusedl -Ddlext=.so -Ddlsrc=dl_dllload.xs.
case "$usedl" in
'') usedl=$bs2000_usedl ;;
esac
case "$dlext" in
'') dlext=$bs2000_dlext ;;
esac
#case "$dlsrc" in
#'') dlsrc='none' ;;
#esac
#case "$ldlibpthname" in
#'') ldlibpthname=LIBPATH ;;
#esac

--- NEW FILE: aix.sh ---
# hints/aix.sh

# AIX 3 and AIX 4 are split off to aix_3.sh and aix_4.sh
#    early Feb 2004 by H.Merijn Brand
# please read comments in there for historic questions.
#    many now stripped here

# Contact dfavor at corridor.com for any of the following:
#
#    - AIX 43x and above support
#    - gcc + threads support
#    - socks support
#
# Notes:
#
#    - shared libperl support is tricky. if ever libperl.a ends up
#      in /usr/local/lib/* it can override any subsequent builds of
#      that same perl release. to make sure you know where the shared
#      libperl.a is coming from do a 'dump -Hv perl' and check all the
#      library search paths in the loader header.
#
#      it would be nice to warn the user if a libperl.a exists that is
#      going to override the current build, but that would be complex.
#
#      better yet, a solid fix for this situation should be developed.
#

# Configure finds setrgid and setruid, but they're useless.  The man
# pages state:
#    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

case "$usemymalloc" in
    '')  usemymalloc='n' ;;
    esac

# malloc wrap works, but not in vac-5, see later
case "$usemallocwrap" in
    '') usemallocwrap='define' ;;
    esac

# Intuiting the existence of system calls under AIX is difficult,
# at best; the safest technique is to find them empirically.

case "$usenativedlopen" in
    '') usenativedlopen='true' ;;
    esac

so="a"
# AIX itself uses .o (libc.o) but we prefer compatibility
# with the rest of the world and with rest of the scripting
# languages (Tcl, Python) and related systems (SWIG).
# Stephanie Beals <bealzy at us.ibm.com>
dlext="so"

# Take possible hint from the environment.  If 32-bit is set in the
# environment, we can override it later.  If set for 64, the
# 'sizeof' test sees a native 64-bit architecture and never looks back.
case "$OBJECT_MODE" in
    32) cat >&4 <<EOF

You have OBJECT_MODE=32 set in the environment.
I take this as a hint you do not want to
build for a 64-bit address space. You will be
given the opportunity to change this later.
EOF
	;;
    64) cat >&4 <<EOF

You have OBJECT_MODE=64 set in the environment.
This forces a full 64-bit build.  If that is
not what you intended, please terminate this
program, unset it and restart.
EOF
	;;
    esac

# uname -m output is too specific and not appropriate here
case "$archname" in
    '') archname="$osname" ;;
    esac

cc=${cc:-cc}

ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE"
case "$cc" in
    *gcc*) ;;
    *) ccflags="$ccflags -qmaxmem=-1 -qnoansialias" ;;
    esac
nm_opt='-B'

# These functions don't work like Perl expects them to.
d_setregid='undef'
d_setreuid='undef'

# Changes for dynamic linking by Wayne Scott <wscott at ichips.intel.com>
#
# Tell perl which symbols to export for dynamic linking.
cccdlflags='none'	# All AIX code is position independent
   cc_type=xlc		# do not export to config.sh
case "$cc" in
    *gcc*)
	cc_type=gcc
	ccdlflags='-Xlinker'
	if [ "X$gccversion" = "X" ]; then
	    # Done too late in Configure if hinted
	    gccversion=`$cc --version | sed 's/.*(GCC) *//'`
	    fi
	;;

    *)  ccversion=`lslpp -ql -Ou vac.C | grep -v '^Path' | head -1 | awk '{print $1,$2}'`
	case "$ccversion" in
	    '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$'` ;;

	    *.*.*.*.*.*.*)	# Ahhrgg, more than one C compiler installed
		first_cc_path=`which ${cc:-cc}`
		case "$first_cc_path" in
		    *vac*)
			cc_type=vac ;;

		    /usr/bin/cc)		# Check the symlink
			if [ -h $first_cc_path ] ; then
			    ls -l $first_cc_path > reflect
			    if grep -i vac reflect >/dev/null 2>&1 ; then
				cc_type=vac
				fi
			    rm -f reflect
			    fi
			;;
		    esac
		ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | head -1`
		;;

	    vac*.*.*.*)
		cc_type=vac
		;;
	    esac

	ccversion=`echo "$ccversion" | awk '{print $2}'`
	# Redbooks state AIX-5 only supports vac-5.0.2.0 and up
	case "$ccversion" in
	    5*) usemallocwrap='n' ;; # panic in miniperl
	    esac
	;;
    esac

# the required -bE:$installarchlib/CORE/perl.exp is added by
# libperl.U (Configure) later.

# 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?
if test $usenativedlopen = 'true' ; then
    lddlflags="$lddlflags -bhalt:4 -bexpall -G -bnoentry -lc"
else
    lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
    fi

case "$use64bitall" in
    $define|true|[yY]*) use64bitint="$define" ;;
    esac

case "$usemorebits" in
    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
    esac

case $cc_type in
    vac|xlc)
	case "$uselongdouble" in
	    $define|true|[yY]*)
		ccflags="$ccflags -qlongdouble"
		libswanted="c128 $libswanted"
		lddlflags=`echo "$lddlflags " | sed -e 's/ -lc / -lc128 -lc /'`
		;;
	    esac
	;;
    esac

case "$cc" in
    *gcc*) ;;

    cc*|xlc*) # cc should've been set by line 116 or so if empty.
	if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then
	    case ":$PATH:" in
		*:/usr/vac/bin:*) ;;
		*)  if test ! -x /QOpenSys/usr/bin/$cc; then
			# The /QOpenSys/usr/bin/$cc saves us if we are
			# building natively in OS/400 PASE.
			cat >&4 <<EOF

***
*** You either implicitly or explicitly specified an IBM C compiler,
*** but you do not seem to have one in /usr/bin, but you seem to have
*** the VAC installed in /usr/vac, but you do not have the /usr/vac/bin
*** in your PATH.  I suggest adding that and retrying Configure.
***
EOF
			exit 1
			fi
		    ;;
		esac
	    fi
	;;
    esac

case "$ldlibpthname" in
    '') ldlibpthname=LIBPATH ;;
    esac

# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
    $define|true|[yY]*)
	d_drand48_r='undef'
	d_endgrent_r='undef'
	d_endpwent_r='undef'
	d_getgrent_r='undef'
	d_getpwent_r='undef'
	d_random_r='undef'
	d_setgrent_r='undef'
	d_setpwent_r='undef'
	d_srand48_r='undef'
	d_strerror_r='undef'

	ccflags="$ccflags -DNEED_PTHREAD_INIT"
	case "$cc" in
	    *gcc*) ccflags="-D_THREAD_SAFE $ccflags" ;;

	    cc_r) ;;
	    '') cc=cc_r ;;

	    *)


	    # No | alternation in aix sed. :-(
	    newcc=`echo $cc | sed -e 's/cc$/cc_r/' -e 's/xl[cC]$/cc_r/' -e 's/xl[cC]_r$/cc_r/'`
	    case "$newcc" in
		$cc) # No change
		;;

		*cc_r)
		echo >&4 "Switching cc to cc_r because of POSIX threads."
		# xlc_r has been known to produce buggy code in AIX 4.3.2.
		# (e.g. pragma/overload core dumps)	 Let's suspect xlC_r, too.
		# --jhi at iki.fi
		cc="$newcc"
		;;

		*)
		cat >&4 <<EOM
*** For pthreads you should use the AIX C compiler cc_r.
*** (now your compiler was set to '$cc')
*** Cannot continue, aborting.
EOM
		exit 1
		;;
	    esac
	esac

	# Insert pthreads to libswanted, before any libc or libC.
	set `echo X "$libswanted "| sed -e 's/ \([cC]\) / pthreads \1 /'`
	shift
	libswanted="$*"
	# Insert pthreads to lddlflags, before any libc or libC.
	set `echo X "$lddlflags " | sed -e 's/ \(-l[cC]\) / -lpthreads \1 /'`
	shift
	lddlflags="$*"
	;;
esac
EOCBU

# This script UU/uselargefiles.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use large files.
cat > UU/uselargefiles.cbu <<'EOCBU'
case "$uselargefiles" in
    ''|$define|true|[yY]*)
	# Configure should take care of use64bitint and use64bitall being
	# defined before uselargefiles.cbu is consulted.
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
	else
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
	    fi
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	else
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	    fi

	case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in
	    '') ;;
	    *)  ccflags="$ccflags $ccflags_uselargefiles"
		ldflags="$ldflags $ldflags_uselargefiles"
		libswanted="$libswanted $libswanted_uselargefiles"
		;;
	    esac

	case "$gccversion" in
	    '') ;;
	    *)  # Remove xlc-specific -qflags.
		ccflags="`echo $ccflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
		ldflags="`echo $ldflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
		# Move xlc-specific -bflags.
		ccflags="`echo $ccflags | sed -e 's@ -b@ -Wl,-b at g'`"
		ldflags="`echo ' '$ldflags | sed -e 's@ -b@ -Wl,-b at g'`"
		lddlflags="`echo ' '$lddlflags | sed -e 's@ -b@ -Wl,-b at g'`"
		lddlflags="`echo ' '$lddlflags | sed -e 's@ -G @ -Wl,-G @g'`"
		case "$use64bitall" in
		    $define|true|[yY]*) ld="$cc -maix64"	;;
		    *)			ld="$cc"		;;
		    esac
		echo >&4 "(using ccflags   $ccflags)"
		echo >&4 "(using ldflags   $ldflags)"
		echo >&4 "(using lddlflags $lddlflags)"
		;;
	    esac
	;;
    esac
EOCBU

cat > UU/use64bitall.cbu <<'EOCBU'
# This script UU/use64bitall.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to be maximally 64-bitty.
case "$use64bitall" in
    $define|true|[yY]*)
	echo " "
	echo "Checking the CPU width of your hardware..." >&4
	$cat >size.c <<EOCP
#include <stdio.h>
#include <sys/systemcfg.h>
int main (void)
{
    printf ("%d\n", _system_configuration.width);
    return (0);
    }
EOCP
	set size
	if eval $compile_ok; then
	    qacpuwidth=`./size`
	    echo "You are running on $qacpuwidth bit hardware."
	else
	    dflt="32"
	    echo " "
	    echo "(I can't seem to compile the test program.  Guessing...)"
	    rp="What is the width of your CPU (in bits)?"
	    . ./myread
	    qacpuwidth="$ans"
	    fi
	$rm -f size.c size

	case "$qacpuwidth" in
	    32*)
		cat >&4 <<EOM
Bzzzt! At present, you can only perform a
full 64-bit build on a 64-bit machine.
EOM
		exit 1
		;;
	    esac
	qacflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
	qaldflags="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
	# See jhi's comments above regarding this re-eval.  I've
	# seen similar weirdness in the form of:
	#
# 1506-173 (W) Option lm is not valid.  Enter xlc for list of valid options.
	#
	# error messages from 'cc -E' invocation. Again, the offending
	# string is simply not detectable by any means.  Since it doesn't
	# do any harm, I didn't pursue it. -- sh
	qaldflags="`echo $qaldflags`"
	qalibs="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	# -q32 and -b32 may have been set by uselargefiles or user.
	# Remove them.
	ccflags="`echo $ccflags | sed -e 's at -q32@@'`"
	ldflags="`echo $ldflags | sed -e 's at -b32@@'`"
	case "$cc" in
	    *gcc*)
		ccflags="`echo $ccflags | sed -e 's at -q64@-maix64@'`"
		ccflags_uselargefiles="`echo $ccflags_uselargefiles | sed -e 's at -q64@-maix64@'`"
		qacflags="`echo $qacflags | sed -e 's at -q64@-maix64@'`"
		;;
	    esac
	# Tell archiver to use large format.  Unless we remove 'ar'
	# from 'trylist', the Configure script will just reset it to 'ar'
	# immediately prior to writing config.sh.  This took me hours
	# to figure out.
	trylist="`echo $trylist | sed -e 's@^ar @@' -e 's@ ar @ @g' -e 's@ ar$@@'`"
	ar="ar -X64"
	nm_opt="-X64 $nm_opt"
	# Note: Placing the 'qacflags' variable into the 'ldflags' string
	# is NOT a typo.  ldflags is passed to the C compiler for final
	# linking, and it wants -q64 (-b64 is for ld only!).
	case "$qacflags$qaldflags$qalibs" in
	    '') ;;
	    *)  ccflags="$ccflags $qacflags"
		ldflags="$ldflags $qacflags"
		lddlflags="$qaldflags $lddlflags"
		libswanted="$libswanted $qalibs"
		;;
	    esac
	case "$ccflags" in
	    *-DUSE_64_BIT_ALL*) ;;
	    *) ccflags="$ccflags -DUSE_64_BIT_ALL";;
	    esac
	case "$archname64" in
	    ''|64*) archname64=64all ;;
	    esac
	longsize="8"
	qacflags=''
	qaldflags=''
	qalibs=''
	qacpuwidth=''
	;;
    esac
EOCBU

if test $usenativedlopen = 'true' ; then
    ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
    # -brtl		    Enables a binary to use run time linking
    # -bdynamic		    When used with -brtl, tells linker to search for
    #			    ".so"-suffix libraries as well as ".a" suffix
    #			    libraries. AIX allows both .so and .a libraries to
    #			    contain dynamic shared objects.
    # -bmaxdata:0x80000000  This increases the size of heap memory available
    #			    to perl. Default is 256 MB, which sounds large but
    #			    caused a software vendor problems. So this sets
    #			    heap to 2 GB maximum. Anything higher and you'd
    #			    want to consider 64 bit perl.
    case "$cc" in
	*gcc*) ldflags="$ldflags -Wl,-brtl -Wl,-bdynamic -Wl,-bmaxdata:0x80000000" ;;
	*)     ldflags="$ldflags -brtl -bdynamic -bmaxdata:0x80000000" ;;
	esac
elif test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
    # If the C++ libraries, libC and libC_r, are available we will
    # prefer them over the vanilla libc, because the libC contain
    # loadAndInit() and terminateAndUnload() which work correctly
    # with C++ statics while libc load() and unload() do not. See
    # ext/DynaLoader/dl_aix.xs. The C-to-C_r switch is done by
    # usethreads.cbu, if needed.

    # Cify libswanted.
    set `echo X "$libswanted "| sed -e 's/ c / C c /'`
    shift
    libswanted="$*"
    # Cify lddlflags.
    set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
    shift
    lddlflags="$*"
    fi

case "$PASE" in
    define)
	case "$prefix" in
	    '') prefix=/QOpenSys/perl ;;
	    esac
	cat >&4 <<EOF

***
*** You seem to be compiling in AIX for the OS/400 PASE environment.
*** I'm not going to use the AIX bind, nsl, and possible util libraries, then.
*** I'm also not going to install perl as /usr/bin/perl.
*** Perl will be installed under $prefix.
*** For instructions how to install this build from AIX to PASE,
*** see the file README.os400.  Accept the "aix" for the question
*** about "Operating system name".
***
EOF
	set `echo " $libswanted " | sed -e 's@ bind @ @' -e 's@ nsl @ @' -e 's@ util @ @'`
	shift
	libswanted="$*"
	installusrbinperl="$undef"

	# V5R1 doesn't have this (V5R2 does), without knowing
	# which one we have it's safer to be pessimistic.
	# Cwd will work fine even without fchdir(), but if
	# V5R1 tries to use code compiled assuming fchdir(),
	# lots of grief will issue forth from Cwd.
	case "$d_fchdir" in
	    '') d_fchdir="$undef" ;;
	    esac
	;;
    esac

# EOF

--- NEW FILE: dynix.sh ---
# 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 at ISI.EDU>
# Date: Tue, 30 Jan 96 15:29:26 PST
d_casti32=undef

--- NEW FILE: cxux.sh ---
#! /local/gnu/bin/bash
# Hints for the CX/UX 7.1 operating system running on Concurrent (formerly
# Harris) NightHawk machines.  written by Tom.Horsley at 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.
#
cc='/bin/cc -Xa -Qtarget=M88110compat'
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

--- NEW FILE: uwin.sh ---
#
# The lines starting with #b that follow are the uwin.sh
# file from Joe Buehler.  Some lines are, themselves,
# commented out.  If an uncommented line disappears
# altogether, it means it didn't seem to be needed any more,
# to get a proper build on the following machine.
#    UWIN-NT korn-7200 3.19-5.0 2195 i686
# But maybe they'll be useful to others on different machines.

#b # hint file for U/WIN (UNIX for Windows 95/NT)
#b #
#b # created for U/WIN version 1.55
#b # running under Windows NT 4.0 SP 3
#b # using MSVC++ 5.0 for the compiler
#b #
#b # created by Joe Buehler (jbuehler at hekimian.com)
#b #
#b # for information about U/WIN see www.gtlinc.com
#b #
#b 
#b #ccflags=-D_BSDCOMPAT
#b # confusion in Configure over preprocessor
#b cppstdin=`pwd`/cppstdin
#b cpprun=`pwd`/cppstdin
#b # pwd.h confuses Configure
#b d_pwcomment=undef
#b d_pwgecos=define
#b # work around case-insensitive file names
#b firstmakefile=GNUmakefile
#b # avoid compilation error
#b i_utime=undef
#b # compile/link flags
#b ldflags=-g
#b optimize=-g
#b static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter::Util::Call IO IPC/SysV MIME::Base64 Opcode PerlIO::scalar POSIX SDBM_File Socket Storable Unicode::Normalize attrs re"
#b #static_ext=none
#b # dynamic loading needs work
#b usedl=undef
#b # perl malloc will not work
#b usemymalloc=n
#b # cannot use nm
#b usenm=undef
#b # vfork() is buggy (as of 1.55 anyway)
#b usevfork=false

# __UWIN__ added so it could be used in ext/POSIX/POSIX.xs
# to protect against either tzname definition.  According to Dave Korn

#dgk gcc on uwin also predefined _UWIN as does the borland and digital
#dgk mars compiler.
#dgk 
#dgk Only ncc does not define _UWIN and this is intentional.  ncc is used
#dgk to build binaries that do not require the uwin runtime.
#dgk This could be used for building a native win32 perl using unix
#dgk makefiles.  However, in this case you don't wan't _UWIN defined.
#dgk 
#dgk I have used _UWIN everywhere else in any uwin specific changes.
#dgk and _WIN32 on windows specific changes, and _MSVC on any compiler
#dgk Visual C specific changes.  We also define _WINIX for any unix
#dgk on windows implementation so that _UWIN or __cygwin__ imply _WINIX.

# I left __UWIN__ as is, since I had already filed a patch,
# and it might be useful to distinguish perl-specific tweaks
# from generic uwin ones.

ccflags="$ccflags -D__UWIN__"

# This from Dave Korn
#dgk Windows splits shared libraries into two parts; the part used
#dgk for linking and the part that is used for running.
#dgk Given a library foo, then the part you link with is named
#dgk	foo.lib
#dgk and is in the lib directory.  The part that you run with
#dgk is named
#dgk	foo.dll or foo#.dll
#dgk and is in the bin directory.  This way when you set you PATH
#dgk variable, it automatically does the library search.
#dgk
#dgk Static libraries use libfoo.a.
#dgk By the way if you specify -lfoo, then it will first look for foo.lib
#dgk and then libfoo.a.  If you specify +lfoo, it will only look for
#dgk static versions of the library.

# So we use .lib as the extension, and put -lm in, because it is a .a
# This probably accounts for the comment about dynamic libraries
# needing work, and indeed, the build failed if I didn't undef it.

lib_ext=".lib"
libs="-lm"
so=dll
# dynamic loading still needs work
usedl=undef

# confusion in Configure over preprocessor
cppstdin=`pwd`/cppstdin
cpprun=`pwd`/cppstdin

# lest it default to .exe, and then there's no perl in the test directory,
# t, just a perl.exe, and make test promptly dies.  _exe gets set to .exe
# by Configure (on 5/23/2003) if exe_ext is merely null, so clean it out, too.
exe_ext=''
_exe=''

# work around case-insensitive file names
firstmakefile=GNUmakefile
# compile/link flags
ldflags=-g
optimize=-g

# Original, with :: separators, cause make to choke.
# No longer seems to be necessary at all.
# static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter/Util/Call IO IPC/SysV MIME/Base64 Opcode PerlIO/scalar POSIX SDBM_File Socket Storable Unicode/Normalize attrs re"

# perl malloc will not work
usemymalloc=n
# cannot use nm
usenm=undef
# vfork() is buggy (as of 1.55 anyway)
usevfork=false

# Some other comments:
# If you see something like

#          got: '/E/users/jpl/src/cmd/perl/t'
#     expected: '/e/users/jpl/src/cmd/perl/t'
#     Failed test (../ext/Cwd/t/cwd.t at line 88)

# when running tests under harness, try the simple expedient of
# changing to directory
#     /E/users/jpl/src/cmd/perl/t   # note the leading capital /E
# before running the tests.  UWIN is a bit schizophrenic about case.
# It likes to return an uppercase "disk" letter for the leading directory,
# but your home directory may well have that in lower case.
# In most cases, they are entirely interchangeable, but the perl tests
# don't ignore case.  If they fail, change to the directory they expect.

--- NEW FILE: apollo.sh ---
# Info from Johann Klasek <jk at auto.tuwien.ac.at>
# Merged by Andy Dougherty  <doughera at lafayette.edu>
# Last revised	Tue Mar 16 19:12:22 EET 1999 by
# Jarkko Hietaniemi <jhi at iki.fi>

# 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`pwd`/apollo -I/usr/include -I/sys5/usr/include"

# When Apollo runs a script with "#!", it sets argv[0] to the script name.
toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'

# 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.

--- NEW FILE: esix4.sh ---
# hints/esix4.sh
# Original esix4 hint file courtesy of
# Kevin O'Gorman ( kevin at kosman.UUCP, kevin%kosman.uucp at nrc.com )
#
# Use Configure -Dcc=gcc to use gcc.

# Why can't we just use PATH?  It contains /usr/ccs/bin.
case "$cc" in
'') cc='/bin/cc'
    test -f $cc || cc='/usr/ccs/bin/cc'
    ;;
esac

ldflags="$ldflags -L/usr/ccs/lib -L/usr/ucblib"
test -d /usr/local/man || mansrc='none'
# Do we really need to tell cc to look in /usr/include?
ccflags="$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 '/\*[^*]*$' >esix$$
	if test -s 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 esix$$
fi


--- NEW FILE: uts.sh ---
archname='s390'
archobjs='uts/strtol_wrap.o uts/sprintf_wrap.o'
cc='cc -Xa'
ccflags='-XTSTRINGS=1500000 -DStrtol=strtol_wrap32 -DStrtoul=strtoul_wrap32 -DSPRINTF_E_BUG'
cccdlflags='-pic'
d_bincompat3='undef'
d_csh='undef' 
d_lstat='define'
d_suidsafe='define'
dlsrc='dl_dlopen.xs'
i_ieeefp='undef'
ld='ld'
lddlflags='-G -z text'
libperl='libperl.so'
libpth='/lib /usr/lib /usr/ccs/lib'
libs='-lsocket -lnsl -ldl -lm'
libswanted='m'
prefix='/usr/local'
toke_cflags='optimize=""' 
useshrplib='define'

#################################
# Some less routine stuff:
#################################
cc -g -Xa -c -pic -O uts/strtol_wrap.c -o uts/strtol_wrap.o
cc -g -Xa -c -pic -O uts/sprintf_wrap.c -o uts/sprintf_wrap.o
# Make POSIX a static extension.
cat <<'EOSH' > config.over
static_ext='POSIX B'
dynamic_ext=`echo " $dynamic_ext " |
  sed -e 's/ POSIX / /' -e 's/ B / /'`
EOSH

--- NEW FILE: next_3.sh ---
# This file has been put together by Anno Siegel <siegel at zrz.TU-Berlin.DE>,
# Andreas Koenig <k at franz.ww.TU-Berlin.DE> and Gerd Knops <gerti at BITart.com>.
# Comments, questions, and improvements welcome!
#
# These hints work for NeXT 3.2 and 3.3.  3.0 has its 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'
# 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'
#usemymalloc='y'
# use the following two lines if you have perl5.003_22 or better and
# do not encounter intermittent core dumps.

ccflags="$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=""'

# The SysV IPC is optional (ftp://ftp.nluug.nl/pub/comp/next/SysVIPC/)
# Gerben_Wierda at RnA.nl
if [ -f /usr/local/lib/libIPC.a ]; then
  libswanted="$libswanted IPC"
  # As of Sep 1998 d_msg wasn't supported in that library,
  # only d_sem and d_shm, but Configure should be able to
  # figure that out. --jhi
  # Note also the next3 ext/IPC/SysV hints file.
fi

--- NEW FILE: sco_2_3_1.sh ---
yacc='/usr/bin/yacc -Sm25000'
i_dirent=undef

--- NEW FILE: genix.sh ---
i_varargs=undef

--- NEW FILE: README.hints ---
=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 at perl.org.

=head1 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 Setting variables

=head2 Optimizer

If you want to set a variable, try to allow for Configure command-line
overrides.  For example, suppose you think the default optimizer
setting to be -O2 for a particular platform.  You should allow for
command line overrides with something like

	case "$optimize" in
	'') optimize='-O2' ;;
	esac

or, if your system has a decent test(1) command,

	test -z "$optimize" && optimize='-O2'

This allows the user to select a different optimization level, e.g.
-O6 or -g.

=head2 Compiler and Linker flags

If you want to set $ccflags or $ldflags, you should append to the existing
value to allow Configure command-line settings, e.g. use

	ccflags="$ccflags -DANOTHER_OPTION_I_NEED"

so that the user can do something like

	sh Configure -Dccflags='FIX_NEGATIVE_ZERO'

and have the FIX_NEGATIVE_ZERO value preserved by the hints file.

=head2 Libraries

Configure will attempt to use the libraries listed in the variable
$libswanted.  If necessary, you should remove broken libraries from
that list, or add additional libraries to that list.  You should
*not* simply set $libs -- that ignores the possibilities of local
variations.  For example, a setting of libs='-lgdbm -lm -lc' would
fail if another user were to try to compile Perl on a system without
GDBM but with Berkeley DB.  See hints/dec_osf.sh and hints/solaris_2.sh
for examples.

=head2 Other

In general, try to avoid hard-wiring something that Configure will
figure out anyway.  Also try to allow for Configure command-line
overrides.

=head1 Working around compiler bugs

Occasionally, the root cause of a bug in perl turns out to be due to a bug
in the compiler.  Often, changing the compilation options (particularly the
optimization level) can work around the bug.  However, if you try to do
this on the command line, you will be changing the compilation options for
every component of perl, which can really hurt perl's performance.
Instead, consider placing a test case into the hints directory to detect
whether the compiler bug is present, and add logic to the hints file to
take a specific and appropriate action

=head2 Test-case conventions

Test cases should be named "tNNN.c", where NNN is the next unused sequence
number.  The test case must be executable and should display a message
containing the word "fails" when the compiler bug is present.  It should
display the word "works" with the compiler bug is not present.  The test
cases should be liberally commented and may be used by any hints file that
needs them.  See the first hints file (t001.c) for an example.

=head2 Hint file processing

The hint file must define a call-back unit (see below) that will compile,
link, and run the test case, and then check for the presence of the string
"fails" in the output.  If it finds this string, it sets a special variable
to specify the compilation option(s) for the specific perl source file that
is affected by the bug.

The special variable is named "XXX_cflags" where "XXX" is the name of
the source file (without the ".c" suffix).  The value of this variable
is the string "optimize=YYY", where "YYY" is the compilation option
necessary to work around the bug.  The default value of this variable
is "-O" (letter O), which specifies that the C compiler should compile
the source program at the default optimization level.  If you can
avoid the compiler bug by disabling optimization, just reset the
"optimize" variable to the null string.  Sometimes a bug is present at
a higher optimization level (say, O3) and not present at a lower
optimization level (say, O1).  In this case, you should specify the
highest optimization level at which the bug is not present, so that
you will retain as many of the benefits of code optimization as
possible.

For example, if the pp_pack.c source file must be compiled at
optimization level 0 to work around a problem on a particular
platform, one of the statements

	pp_pack_cflags="optimize=-O0"	or
	pp_pack_cflags="optimize="

will do the trick, since level 0 is equivalent to no optimization.
(In case your printer or display device does not distinguish the
letter O from the digit 0, that is the letter O followed by the digit
0).  You can specify any compiler option or set of options here, not
just optimizer options.  These options are appended to the list of all
other compiler options, so you should be able to override almost any
compiler option prepared by Configure.  (Obviously this depends on how
the compiler treats conflicting options, but most seem to go with the
last value specified on the command line).

You should also allow for the XXX_cflags variable to be overridden on the
command line.

See the vos.sh hints file for an extended example of these techniques.

=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 Compiler-related flags

The settings of some things, such as optimization flags, may depend on
the particular compiler used.  For example, consider 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. Some callbacks exist for other variables than cc, such as for
uselongdouble. At the present time, these callbacks are only called if the
variable in question is defined; however, this may change, so the scheme in
hints/solaris_2.sh of checking to see if uselongdouble is defined is a good
idea.

=item Call status

Call-backs are only called always, even if the value for the call-back is
uset: UU/usethreads.cbu is called when Configure is about to deal with
threads. All created call-backs from hints should thus check the status
of the variable, and act upon it.

=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 at lafayette.edu (author)
    Paul Green			paul.green at stratus.com (compiler bugs)

--- NEW FILE: unicosmk.sh ---
case "$optimize" in
'') optimize="-O1" ;;
esac
d_setregid='undef'
d_setreuid='undef'
case "$usemymalloc" in
'') usemymalloc='y'
    ccflags="$ccflags -DNO_RCHECK"
    ;;
esac
# If somebody ignores the Cray PATH.
case ":$PATH:" in
*:/opt/ctl/bin:*) ;;
'') case "$cc" in
    '') test -x /opt/ctl/bin/cc && cc=/opt/ctl/bin/cc ;;
    esac
    ;;
esac
# As of UNICOS/mk 2.0.5.24 the shm* are in libc but unimplemented
# (an attempt to use them causes a runtime error)
# XXX Configure probe for really functional shm*() is needed XXX
if test "$d_shm" = ""; then
    d_shmat=${d_shmat:-undef}
    d_shmdt=${d_shmdt:-undef}
    d_shmget=${d_shmget:-undef}
    d_shmctl=${d_shmctl:-undef}
    case "$d_shmat$d_shmctl$d_shmdt$d_shmget" in
    *"undef"*) d_shm="$undef" ;;
    esac
fi
# Otherwise the unpack %65c checksums will fail.
pp_pack_cflags='optimize="-h scalar0 -h vector0"'
# No shared libraries.
so='none'
# Threads call-back unit.
cat > UU/usethreads.cbu <<'EOCBU'
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
        set `echo X "$libswanted "| sed -e "s/ c / pthread c /"`
        shift
        libswanted="$*"
	;;
esac
EOCBU

--- NEW FILE: ncr_tower.sh ---
#  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'

--- NEW FILE: epix.sh ---
# epix.sh
# Hint file for EP/IX on CDC RISC boxes.
#
# From: Stanley Donald Capelik <sd9sdc at hp100.den.mmc.com>
# Modified by Andy Dougherty   <doughera at 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="$ldflags -non_shared -systype svr4 -L/svr4/usr/lib -L/svr4/usr/lib/cmplrs/cc -L/usr/ccs/lib -L/svr4/usr/ucblib"
ccflags="$ccflags -systype svr4 -D__STDC__=0 -I/svr4/usr/include -I/svr4/usr/ucbinclude"
cppflags="$ccflags -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//'`


--- NEW FILE: unisysdynix.sh ---
d_waitpid=undef

--- NEW FILE: ti1500.sh ---
usemymalloc='n'

--- NEW FILE: sco.sh ---
# sco.sh
# Courtesy of Joel Rosi-Schwartz <j.schwartz at agonet.it>
###############################################################
# Additional SCO version info from
# Peter Wolfe	<wolfe at teloseng.com>
# Fri Jul 19 14:54:25 EDT 1996
# and again Tue Sep 29 16:37:25 EDT 1998
# by Andy Dougherty  <doughera at lafayette.edu>
# Mostly rewritten on
# Tue Jan 19 23:00:00 CET 1999
# by Francois Desarmenien <desar at club-internet.fr>
# Modified by Boyd Gerber <gerberb at zenez.com>
# Tue Sep 21 1999
###############################################################
#
# To use cc,  use   sh Configure
# To use gcc, use   sh Configure -Dcc=gcc
#
# Default on 3.2v4 is to use static link (dynamic loading unsupported).
# Default on 3.2v5 is to use dynamic loading.
# To use static linkink instead, use to sh Configure -Dusedl=n
#
# Warning: - to use dynamic loading with gcc, you need gcc 2.8.0 or later
# ******** - to compile with older releases of gcc, use Configure -Dusedl=n
#            or it wont compile properly
#
###############################################################
# NOTES:
# -----
#
# I Have removed inclusion of ODBM_File for OSR5
# because it core dumps and make tests fails.
#
# Support for icc compiler has been removed, because it 'breaks'
# a lot of code :-(
#
# It's *always* a good idea to first make a static link to be sure to
# have all symbols resolved with the current choice of libraries, since
# with dynamic linking, unresolved symbols are allowed an will be detected
# only at runtime (when you try to load the module or worse, when you call
# the symbol)
#
# The best choice of compiler on OSR 5 (3.2v5.*) seems to be gcc >= 2.8.0:
# -You cannot optimize with genuine sco cc (miniperl core dumps),
#  so Perl is faster if compiled with gcc.
# -Even optimized for speed, gcc generated code is smaller (!!!)
# -gcc is free
# -I use ld to link which is distributed with the core OS distribution, so you
#  don't need to buy the developement kit, just find someone kind enough to
#  give you a binary release of gcc.
#
#

###############################################################
# 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 uname may be first in $PATH and
# it does not support -X) to figure out what SCO version we are:
# Matching '^Release' is broken by locale setting:
# matching '3.2v' should be enough -- FD
case `/bin/uname -X | egrep '3\.2v'` in
*3.2v4.*) scorls=3 ;;   # OSR 3
*3.2v5.*) scorls=5 ;;   # OSR 5
*)
   # Future of SCO OSR is SCO UnixWare: there should not be new OSR releases
   echo "************************************************************" >&4
   echo "" >&4
   echo "  sco.sh hints file only supports:" >&4
   echo "" >&4
   echo "    - SCO Unix 3.2v4.x (OSR 3)" >&4
   echo "    - SCO Unix 3.2v5.x (OSR 5)" >&4
   echo "" >&4
   echo "" >&4
   echo "  For UnixWare, use svr4.sh hints instead" >&4
   echo "  For UnixWare 7.*, use svr5.sh hints instead" >&4
   echo "" >&4
   echo "***********************************************************" >&4
   exit
;;
esac

###############################################################
# Common fixes for all compilers an releases:

###############################################################
# What is true for SCO5 is true for SCO3 too today, so let's have a single
# symbol for both
ccflags="-U M_XENIX -D PERL_SCO"

###############################################################
# Compilers options section:
if test "$scorls" = "3"
then 
    dlext=''
    case "$cc" in
        *gcc*)  optimize='-O2' ;;
        *)      ccflags="$ccflags -W0 -quiet"
                optimize='-O' ;;
    esac
else
    ###############################################################
    # Need this in release 5 because of changed fpu exeption rules
    ccflags="$ccflags -D HAS_FPSETMASK"

    ###############################################################
    # In Release 5, always compile ELF objects
    case "$cc" in
        *gcc*)
            ccflags="$ccflags -melf"
            optimize='-O2'
        ;;
        *)
            ccflags="$ccflags -w0 -belf"
            optimize='-O0'
        ;;
    esac
    ###############################################################
    # Dynamic loading section:
    #
    # We use ld to build shared libraries as it is always available
    # and seems to work better than GNU's one on SCO
    #
    # ccdlflags : must tell the linker to export all global symbols
    # cccdlflags: must tell the compiler to generate relocatable code
    # lddlflags : must tell the linker to output a shared library
    #
    # /usr/local/lib is added for convenience, since 'foreign' libraries
    # are usually put there in sco
    #
    if test "$usedl" != "n"; then
        ld='ld'
        case "$cc" in
            *gcc*)
                ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
                cccdlflags='-fpic'
                lddlflags='-G -L/usr/local/lib'
            ;;
            *)
                ccdlflags='-Wl,-Bexport -L/usr/local/lib'
                cccdlflags='-Kpic'
                lddlflags='-G -L/usr/local/lib'
            ;;
        esac

        ###############################################################
        # Use dynamic loading
        usedl='define'
        dlext='so'
        dlsrc='dl_dlopen.xs'

        ###############################################################
        # Force to define those symbols, as they are #defines and not
        # catched by Configure, and they are useful
        d_dlopen='define'
        d_dlerror='define'
    fi
fi


###############################################################
# Various hints, common to all releases, to have it work better:

###############################################################
# We need to remove libdl, as libdl.so exists, but ld complains
# it can't find libdl.a ! Bug or feature ? :-)
libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
set X $libswanted
shift
libswanted="$*"

###############################################################
# Remove libbind because it conflicts with libsocket.
libswanted=`echo " $libswanted " | sed -e 's/ bind / /'`
set X $libswanted
shift
libswanted="$*"

###############################################################
# 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 / /'`
    set X $libswanted
    shift
    libswanted="$*"
fi

###############################################################
# At least for ORS5.0.2, prefer sprintf() over gcvt(), since gcvt()
# used to cause a SIGFPE and a core dump when passed a NaN.
# This may not be an issue in perl-5.8.x and later since we
# try to trap SIGFPE.  However, preferring sprintf() should be
# safe anyway, so let's go ahead and set it.  See the bugs database
# item [perl #3100].   --A.D. 12/2004.
	gconvert_preference='sprintf'

###############################################################
# We disable ODBM_File if OSR5 because it's mostly broken
# but keep it for ODT3 as it seems to work.
if test "$scorls" = "5"; then
    i_dbm='undef'
fi

###############################################################
# We don't want Xenix cross-development libraries
glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
xlibpth=''

###############################################################
# 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'
# You can override this with Configure -Dusenm.
case "$usenm" in
'') usenm='false' ;;
esac

###############################################################
# 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

###############################################################
# 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


###############################################################
#END of hint file

--- NEW FILE: convexos.sh ---
# convexos.sh
# Thanks to David Starks-Browning <dstarks at 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

--- NEW FILE: darwin.sh ---
##
# Darwin (Mac OS) hints
# Wilfredo Sanchez <wsanchez at wsanchez.net>
##

##
# Paths
##

# Configure hasn't figured out the version number yet.  Bummer.
perl_revision=`awk '/define[ 	]+PERL_REVISION/ {print $3}' $src/patchlevel.h`
perl_version=`awk '/define[ 	]+PERL_VERSION/ {print $3}' $src/patchlevel.h`
perl_subversion=`awk '/define[ 	]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h`
version="${perl_revision}.${perl_version}.${perl_subversion}"

# Pretend that Darwin doesn't know about those system calls [perl #24122]
d_setregid='undef'
d_setreuid='undef'
d_setrgid='undef'
d_setruid='undef'

# This was previously used in all but causes three cases
# (no -Ddprefix=, -Dprefix=/usr, -Dprefix=/some/thing/else)
# but that caused too much grief.
# vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules

# BSD paths
case "$prefix" in
'')	# Default install; use non-system directories
	prefix='/usr/local';
	siteprefix='/usr/local';
	;;
'/usr')	# We are building/replacing the built-in perl
	prefix='/';
	installprefix='/';
	bin='/usr/bin';
	siteprefix='/usr/local';
	# We don't want /usr/bin/HEAD issues.
	sitebin='/usr/local/bin';
	sitescript='/usr/local/bin';
	installusrbinperl='define'; # You knew what you were doing.
	privlib="/System/Library/Perl/${version}";
	sitelib="/Library/Perl/${version}";
	vendorprefix='/';
	usevendorprefix='define';
	vendorbin='/usr/bin';
	vendorscript='/usr/bin';
	vendorlib="/Network/Library/Perl/${version}";
	# 4BSD uses ${prefix}/share/man, not ${prefix}/man.
	man1dir='/usr/share/man/man1';
	man3dir='/usr/share/man/man3';
	# But users' installs shouldn't touch the system man pages.
	# Transient obsoleted style.
	siteman1='/usr/local/share/man/man1';
	siteman3='/usr/local/share/man/man3';
	# New style.
	siteman1dir='/usr/local/share/man/man1';
	siteman3dir='/usr/local/share/man/man3';
	;;
  *)	# Anything else; use non-system directories, use Configure defaults
	;;
esac

##
# Tool chain settings
##

# Since we can build fat, the archname doesn't need the processor type
archname='darwin';

# nm works.
usenm='true';

case "$optimize" in
'')
#    Optimizing for size also mean less resident memory usage on the part
# of Perl.  Apple asserts that this is a more important optimization than
# saving on CPU cycles.  Given that memory speed has not increased at
# pace with CPU speed over time (on any platform), this is probably a
# reasonable assertion.
if [ -z "${optimize}" ]; then
  case "`${cc:-gcc} -v 2>&1`" in
    *"gcc version 3."*) optimize='-Os' ;;
    *) optimize='-O3' ;;
  esac
else
  optimize='-O3'
fi
;;
esac

# -fno-common because common symbols are not allowed in MH_DYLIB
# -DPERL_DARWIN: apparently the __APPLE__ is not sanctioned by Apple
# as the way to differentiate Mac OS X.  (The official line is that
# *no* cpp symbol does differentiate Mac OS X.)
ccflags="${ccflags} -fno-common -DPERL_DARWIN"

# At least on Darwin 1.3.x:
#
# # define INT32_MIN -2147483648
# int main () {
#  double a = INT32_MIN;
#  printf ("INT32_MIN=%g\n", a);
#  return 0;
# }
# will output:
# INT32_MIN=2.14748e+09
# Note that the INT32_MIN has become positive.
# INT32_MIN is set in /usr/include/stdint.h by:
# #define INT32_MIN        -2147483648
# which seems to break the gcc.  Defining INT32_MIN as (-2147483647-1)
# seems to work.  INT64_MIN seems to be similarly broken.
# -- Nicholas Clark, Ken Williams, and Edward Moy
#
# This seems to have been fixed since at least Mac OS X 10.1.3,
# stdint.h defining INT32_MIN as (-INT32_MAX-1)
# -- Edward Moy
#
case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in
  *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;;
esac

# Avoid Apple's cpp precompiler, better for extensions
cppflags="${cppflags} -no-cpp-precomp"

# This is necessary because perl's build system doesn't
# apply cppflags to cc compile lines as it should.
ccflags="${ccflags} ${cppflags}"

# Known optimizer problems.
case "`cc -v 2>&1`" in
  *"3.1 20020105"*) toke_cflags='optimize=""' ;;
esac

# Shared library extension is .dylib.
# Bundle extension is .bundle.
ld='cc';
so='dylib';
dlext='bundle';
usedl='define';

# 10.4 can use dlopen.
# 10.4 broke poll().
case "$osvers" in
[1-7].*)
    dlsrc='dl_dyld.xs';
    ;;
*)
    dlsrc='dl_dlopen.xs';
    d_poll='undef';
    i_poll='undef';
    ;;
esac

case "$ccdlflags" in		# If passed in from command line, presume user knows best
'')
   cccdlflags=' '; # space, not empty, because otherwise we get -fpic
;;
esac

# Perl bundles do not expect two-level namespace, added in Darwin 1.4.
# But starting from perl 5.8.1/Darwin 7 the default is the two-level.
case "$osvers" in
1.[0-3].*)
   lddlflags="${ldflags} -bundle -undefined suppress"
   ;;
1.*)
   ldflags="${ldflags} -flat_namespace"
   lddlflags="${ldflags} -bundle -undefined suppress"
   ;;
[2-6].*)
   ldflags="${ldflags} -flat_namespace"
   lddlflags="${ldflags} -bundle -undefined suppress"
   ;;
*) 
   lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
   case "$ld" in
       *MACOSX_DEVELOPMENT_TARGET*) ;;
       *) ld="env MACOSX_DEPLOYMENT_TARGET=10.3 ${ld}" ;;
   esac
   ;;
esac
ldlibpthname='DYLD_LIBRARY_PATH';

# useshrplib=true results in much slower startup times.
# 'false' is the default value.  Use Configure -Duseshrplib to override.

cat > UU/archname.cbu <<'EOCBU'
# This script UU/archname.cbu will get 'called-back' by Configure 
# after it has otherwise determined the architecture name.
case "$ldflags" in
*"-flat_namespace"*) ;; # Backward compat, be flat.
# If we are using two-level namespace, we will munge the archname to show it.
*) archname="${archname}-2level" ;;
esac
EOCBU

# 64-bit addressing support. Currently strictly experimental. DFD 2005-06-06
if [ "$use64bitall" ]
then
case "$osvers" in
[1-7].*)
     cat <<EOM >&4



*** 64-bit addressing is not supported for Mac OS X versions
*** below 10.4 ("Tiger") or Darwin versions below 8. Please try
*** again without -D64bitall. (-D64bitint will work, however.)

EOM
     exit 1
  ;;
*)
    cat <<EOM >&4



*** Perl 64-bit addressing support is experimental for Mac OS X
*** 10.4 ("Tiger") and Darwin version 8. Expect a number of test
*** failures:
***    ext/IO/io_*   ext/IPC/sysV/t/*   lib/Net/Ping/t/450_service
***    Any test that uses sdbm

EOM
    for var in ccflags cppflags ld ldflags
    do
       eval $var="\$${var}\ -arch\ ppc64"
    done
    ;;
esac
fi

##
# System libraries
##

# vfork works
usevfork='true';

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# our malloc works (but allow users to override)
case "$usemymalloc" in
'') usemymalloc='n' ;;
esac
# However sbrk() returns -1 (failure) somewhere in lib/unicore/mktables at
# around 14M, so we need to use system malloc() as our sbrk()
malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'

# Locales aren't feeling well.
LC_ALL=C; export LC_ALL;
LANG=C; export LANG;

#
# The libraries are not threadsafe as of OS X 10.1.
#
# Fix when Apple fixes libc.
#
case "$usethreads$useithreads$use5005threads" in
  *define*)
  case "$osvers" in
    [12345].*)     cat <<EOM >&4



*** Warning, there might be problems with your libraries with
*** regards to threading.  The test ext/threads/t/libc.t is likely
*** to fail.

EOM
    ;;
    *) usereentrant='define';;
  esac

esac

# Fink can install a GDBM library that claims to have the ODBM interfaces
# but Perl dynaloader cannot for some reason use that library.  We don't
# really need ODBM_FIle, though, so let's just hint ODBM away.
i_dbm=undef;

# Configure doesn't detect ranlib on Tiger properly.
# NeilW says this should be acceptable on all darwin versions.
ranlib='ranlib'

##
# Build process
##

# Case-insensitive filesystems don't get along with Makefile and
# makefile in the same place.  Since Darwin uses GNU make, this dodges
# the problem.
firstmakefile=GNUmakefile;

--- NEW FILE: dynixptx.sh ---
# Sequent Dynix/Ptx v. 4 hints
# Created 1996/03/15 by Brad Howerter, bhower at wgc.woodward.com

# Modified 1998/11/10 by Martin J. Bligh, mbligh at sequent.com
# to incorporate work done by Kurtis D. Rader & myself.

# 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'

# removed d_vfork='define'; we can't use it any more ...

case "$optimize" in
'') optimize='-Wc,-O3 -W0,-xstring' ;;
esac

# We override d_socket because it's very hard for Configure to get it right
# in Dynix/Ptx, for several reasons.
# (1) the socket interface is in libsocket.so -- this wouldn't be so hard
#     for Configure to fathom...but it gets more tangled.
# (2) if the system has been patched there can be libsocket.so.1.FOO.BAR,
#     the FOO.BAR being the old version of the system before the patching.
#     Configure picks up the old broken version.
# (3) libsocket.so points to either libsocket.so.1 (v4.2)
#     or libsocket.so.1.1 (v4.4)  The socket call in libsocket.so.1.1
#     (BSD socket library) is called bsd_socket(), and has a macro wrapper
#     to hide this.
# This information kindly provided by Martin J. Bligh of Sequent.
# As he puts it:
# "Sequent has unusual capabilities, taking it above and beyond
#  the complexity of any other vendor" :-)
#
# Jarkko Hietaniemi November 1998

case "$osvers" in
4.[45]*) # configure doesn't find sockets, as they're in libsocket, not libc
        d_socket='define'
        d_oldsock='undef'
        d_sockpair='define'
        ;;
4.2*) # on ptx/TCP 4.2, we can use BSD sockets, but they're not the default.
        cppflags="$cppflags -Wc,+bsd-socket"
        ccflags="$ccflags -Wc,+bsd-socket"
        ldflags="$ldflags -Wc,+bsd-socket"
        d_socket='define'
        d_oldsock='undef'
        d_sockpair='define'
    ;;
esac

--- NEW FILE: 3b1cc ---
# 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 at 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

--- NEW FILE: vos.sh ---
# $Id: vos.sh,v 1.1 2006-12-04 16:59:55 dslinux_cayenne Exp $

# This is a hints file for Stratus VOS, using the POSIX environment
# in VOS 14.4.0 and higher.
#
# VOS POSIX is based on POSIX.1-1996.  It ships with gcc as the standard
# compiler.
#
# Paul Green (Paul.Green at stratus.com)

# C compiler and default options.
cc=gcc
ccflags="-D_SVID_SOURCE -D_POSIX_C_SOURCE=199509L"

# Make command.
make="/system/gnu_library/bin/gmake"
# indented to not put it into config.sh
  _make="/system/gnu_library/bin/gmake"

# Architecture name
archname="hppa1.1"

# Executable suffix.
# No, this is not a typo.  The ".pm" really is the native
# executable suffix in VOS.  Talk about cosmic resonance.
_exe=".pm"

# Object library paths.
loclibpth="/system/stcp/object_library"
loclibpth="$loclibpth /system/stcp/object_library/common"
loclibpth="$loclibpth /system/stcp/object_library/net"
loclibpth="$loclibpth /system/stcp/object_library/socket"
loclibpth="$loclibpth /system/posix_object_library/sysv"
loclibpth="$loclibpth /system/posix_object_library"
loclibpth="$loclibpth /system/c_object_library"
loclibpth="$loclibpth /system/object_library"
glibpth="$loclibpth"

# Include library paths
locincpth="/system/stcp/include_library"
locincpth="$locincpth /system/include_library/sysv"
usrinc="/system/include_library"

# Where to install perl5.
prefix=/system/ported/perl5

# Linker is gcc.
ld="gcc"

# No shared libraries.
so="none"

# Don't use nm.
usenm="n"

# Make the default be no large file support.
uselargefiles="n"

# Don't use malloc that comes with perl.
usemymalloc="n"

# Make bison the default compiler-compiler.
yacc="/system/gnu_library/bin/bison"

# VOS doesn't have (or need) a pager, but perl needs one.
pager="/system/gnu_library/bin/cat.pm"

# VOS has a bug that causes _exit() to flush all files.
# This confuses the tests.  Make 'em happy here.
fflushNULL=define

# VOS has a link() function but it is a dummy.
d_link="undef"

# VOS does not have truncate() but we supply one in vos.c
d_truncate="define"
archobjs="vos.o"

# Help gmake find vos.c
test -h vos.c || ln -s vos/vos.c vos.c

# VOS returns a constant 1 for st_nlink when stat'ing a
# directory. Therefore, we must set this variable to stop
# File::Find using the link count to determine whether there are
# subdirectories to be searched.
dont_use_nlink=define

# Tell Configure where to find the hosts file.
hostcat="cat /system/stcp/hosts"

# VOS does not have socketpair() but we supply one in vos.c
d_sockpair="define"

# Once we have the compiler flags defined, Configure will
# execute the following call-back script. See hints/README.hints
# for details.
cat > UU/cc.cbu <<'EOCBU'
# This script UU/cc.cbu will get 'called-back' by Configure after it
# has prompted the user for the C compiler to use.

# Compile and run the a test case to see if bug gnu_g++-220 is
# present. If so, lower the optimization level when compiling
# pp_pack.c.  This works around a bug in unpack.

echo " "
echo "Testing whether bug gnu_g++-220 is fixed in your compiler..."

# Try compiling the test case.
if $cc -o t001 -O $ccflags $ldflags ../hints/t001.c; then
	gccbug=`$run ./t001`
	if [ "X$gccversion" = "X" ]; then
		# Done too late in Configure if hinted
		gccversion=`$cc --version | sed 's/.*(GCC) *//'`
	fi
	case "$gccbug" in
	*fails*)	cat >&4 <<EOF
This C compiler ($gccversion) is known to have optimizer
problems when compiling pp_pack.c.  The Stratus bug number
for this problem is gnu_g++-220.

Disabling optimization for pp_pack.c.
EOF
			case "$pp_pack_cflags" in
			'')	pp_pack_cflags='optimize='
				echo "pp_pack_cflags='optimize=\"\"'" >> config.sh ;;
			*)  echo "You specified pp_pack_cflags yourself, so we'll go with your value." >&4 ;;
			esac
		;;
	*)	echo "Your compiler is ok." >&4
		;;
	esac
else
	echo " "
	echo "*** WHOA THERE!!! ***" >&4
	echo "    Your C compiler \"$cc\" doesn't seem to be working!" >&4
	case "$knowitall" in
	'')
		echo "    You'd better start hunting for one and let me know about it." >&4
		exit 1
		;;
	esac
fi

$rm -f t001$_o t001$_exe t001.kp
EOCBU


# VOS 14.7 has minimal support for dynamic linking. Too minimal for perl.
usedl="undef"

--- NEW FILE: bsdos.sh ---
# hints/bsdos.sh
#
# hints file for BSD/OS (adapted from bsd386.sh)
# Original by Neil Bowers <neilb at khoros.unm.edu>; Tue Oct  4 12:01:34 EDT 1994
# Updated by Tony Sanders <sanders at 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.
#
# Updated to work in post-4.0 by Todd C. Miller <millert at openbsd.org>
#
# Updated for threads by "Timur I. Bakeyev" <bsdi at listserv.bat.ru>
#
# 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'

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions.
# See <A HREF="http://www.bsdi.com/bsdi-man?setuid">http://www.bsdi.com/bsdi-man?setuid</A>(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.*)
	# 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"
		;;
	esac

	case "$ld" in
	'')	ld='ld'
		lddlflags="-shared -x $lddlflags" ;;
	esac
	# Due usage of static pointer from crt.o
	libswanted="util $libswanted" ;;
esac

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
	case "$osvers" in 
	3.*|4.*)	ccflags="-D_REENTRANT $ccflags"	
	    ;;
	*)   cat <<EOM >&4
I did not know that BSD/OS $osvers supports POSIX threads.

Feel free to tell perlbug at perl.org otherwise.
EOM
	    exit 1
	    ;;
	esac
	;;
esac
EOCBU

--- NEW FILE: ultrix_4.sh ---
# hints/ultrix_4.sh
# Last updated by Andy Dougherty  <doughera at 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 occurrences 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 3800" ;;
    *4.2*)	ccflags="$ccflags -DLANGUAGE_C -Olimit 3800"
		# 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 3800" ;;
    *)	ccflags="$ccflags -std -Olimit 3800" ;;
    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'

# Ultrix can mmap only character devices, not regular files,
# which is rather useless state of things for Perl.
d_mmap='undef'

# There simply isn't dynaloading in Ultrix.
usedl='undef'


--- NEW FILE: greenhills.sh ---
ccflags="$ccflags -X18"

--- NEW FILE: mint.sh ---
# hints/mint.sh
#
# talk to gufl0000 at stud.uni-sb.de if you want to change this file.
# Please read the README.mint file.
#
# misc stuff

case `uname -m` in
	atarist*) archname="m68000-mint"
		  ;;
	*)	  archname="m68k-mint"
		  ;;
esac		  

here=`pwd | tr -d '\015'`

cc='gcc'

# The weird include path is really to work around some bugs in
# broken system header files.
ccflags="$ccflags -D__MINT__ -Uatarist -DDEBUGGING -I$here/../mint"

# libs

libpth="$prefix/lib /usr/lib /usr/local/lib"
glibpth="$libpth"
xlibpth="$libpth"

libswanted='gdbm socket port m'
so='none'

#
# compiler & linker flags
#
optimize='-O2 -fomit-frame-pointer -fno-defer-pop -fstrength-reduce'

# The setlocale function in the MiNTLib is actually a bad joke.  We 
# lend a workaround from Ultrix.  If neither LC_ALL nor LANG is
# set in the environment, perl won't complain.  If one is set to
# anything but "C" you will see a warning.  Note that you can
# still use the GNU extension "$LANGUAGE" if you want to use
# the i18n features of some GNU packages.
util_cflags='ccflags="$ccflags -DLOCALE_ENVIRON_REQUIRED"'

#
# Some good answers to the questions in Configure:
# Does Configure really get all these wrong?
usenm='true'
d_suidsafe='true'
clocktype='long'
usevfork='true'
d_fsetpos='fpos_t'
gidtype='gid_t'
groupstype='gid_t'
lseektype='long'
modetype='mode_t'
sizetype='size_t'
timetype='time_t'
uidtype='uid_t'

# Don't remove that leading tab character (Configure Black Magic (TM)).
    broken_pwd=
case "`/bin/pwd|tr -d xy|tr '\015\012' 'xy'`" in
*xy) broken_pwd=yes ;;
esac

if test X"$broken_pwd" = Xyes
then
    echo " "
    echo "*** Building fixed 'pwd'... (as described in README.mint) ***"
    echo " "
    cd mint
    make pwd
    cd ..
    if test -x mint/pwd -a -w /usr/bin
    then
	echo " "
	echo "*** Installing fixed 'pwd'... ***"
	echo " "
	cd mint
	make install
	cd ..
	if cmp -s mint/pwd /usr/bin/pwd
	then
	    echo "*** Installed fixed 'pwd' successfully. ***"
	else
	    echo "*** Failed to install fixed 'pwd'.  Aborting. ***"
	    exit 1
	fi
    else
	echo "*** Cannot install fixed 'pwd'.  Aborting. ***"
	exit 1
    fi
fi

--- NEW FILE: umips.sh ---
# 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 at 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 at 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"

--- NEW FILE: gnu.sh ---
# hints/gnu.sh
# Last modified: Thu Dec 10 20:47:28 CET 1998
# Mark Kettenis <kettenis at phys.uva.nl>

# libnsl is unusable on the Hurd.
# XXX remove this once SUNRPC is implemented.
set `echo X "$libswanted "| sed -e 's/ nsl / /' -e 's/ c / pthread /'`
shift
libswanted="$*"

case "$optimize" in
'') optimize='-O2' ;;
esac

# Flags needed to produce shared libraries.
lddlflags='-shared'

# Flags needed by programs that use dynamic linking.
ccdlflags='-Wl,-E'

# Debian bug #258618
ccflags='-D_GNU_SOURCE'

# The following routines are only available as stubs in GNU libc.
# XXX remove this once metaconf detects the GNU libc stubs.
d_msgctl='undef'
d_msgget='undef'
d_msgrcv='undef'
d_msgsnd='undef'
d_semctl='undef'
d_semget='undef'
d_semop='undef'
d_shmat='undef'
d_shmctl='undef'
d_shmdt='undef'
d_shmget='undef'

--- NEW FILE: netbsd.sh ---
# hints/netbsd.sh
#
# Please check with packages at netbsd.org before making modifications
# to this file.

case "$archname" in
'')
    archname=`uname -m`-${osname}
    ;;
esac

# NetBSD keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
# so Configure doesn't find them (unless you abandon the nm scan).
# Also, NetBSD 0.9a was the first release to introduce shared
# libraries.
#
case "$osvers" in
0.9|0.8*)
	usedl="$undef"
	;;
*)
	case `uname -m` in
	pmax)
		# NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so,
		# which will not work.
		case "$osvers" in
		1.3|1.3.1)
			d_dlopen=$undef
			;;
		esac
		;;
	esac
	if test -f /usr/libexec/ld.elf_so; then
		# ELF
		d_dlopen=$define
		d_dlerror=$define
		cccdlflags="-DPIC -fPIC $cccdlflags"
		lddlflags="--whole-archive -shared $lddlflags"
		rpathflag="-Wl,-rpath,"
		case "$osvers" in
		1.[0-5]*)
			#
			# Include the whole libgcc.a into the perl executable
			# so that certain symbols needed by loadable modules
			# built as C++ objects (__eh_alloc, __pure_virtual,
			# etc.) will always be defined.
			#
			ccdlflags="-Wl,-whole-archive -lgcc \
				-Wl,-no-whole-archive -Wl,-E $ccdlflags"
			;;
		*)
			ccdlflags="-Wl,-E $ccdlflags"
			;;
		esac
	elif test -f /usr/libexec/ld.so; then
		# a.out
		d_dlopen=$define
		d_dlerror=$define
		cccdlflags="-DPIC -fPIC $cccdlflags"
		lddlflags="-Bshareable $lddlflags"
		rpathflag="-R"
	else
		d_dlopen=$undef
		rpathflag=
	fi
	;;
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.3.2.
case "$osvers" in
0.9*|1.[012]*|1.3|1.3.1)
	d_setregid="$undef"
	d_setreuid="$undef"
	;;
esac

# These are obsolete in any netbsd.
d_setrgid="$undef"
d_setruid="$undef"

# there's no problem with vfork.
usevfork=true

# This is there but in machine/ieeefp_h.
ieeefp_h="define"

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads. 
cat > UU/usethreads.cbu <<'EOCBU' 
case "$usethreads" in 
$define|true|[yY]*) 
	lpthread=
	for xxx in pthread; do
		for yyy in $loclibpth $plibpth $glibpth dummy; do
			zzz=$yyy/lib$xxx.a
			if test -f "$zzz"; then
				lpthread=$xxx
				break;
			fi
			zzz=$yyy/lib$xxx.so
			if test -f "$zzz"; then
				lpthread=$xxx
				break;
			fi
			zzz=`ls $yyy/lib$xxx.so.* 2>/dev/null`
			if test "X$zzz" != X; then
				lpthread=$xxx
				break;
			fi
		done
		if test "X$lpthread" != X; then
			break;
		fi
	done
	if test "X$lpthread" != X; then
		# Add -lpthread. 
		libswanted="$libswanted $lpthread" 
		# There is no libc_r as of NetBSD 1.5.2, so no c -> c_r.
		# This will be revisited when NetBSD gains a native pthreads
		# implementation.
        else 
		echo "$0: No POSIX threads library (-lpthread) found.  " \
		     "You may want to install GNU pth.  Aborting." >&4 
		exit 1 
        fi
	unset lpthread
        ;; 
esac 
EOCBU

# Set sensible defaults for NetBSD: look for local software in
# /usr/pkg (NetBSD Packages Collection) and in /usr/local.
#
loclibpth="/usr/pkg/lib /usr/local/lib"
locincpth="/usr/pkg/include /usr/local/include"
case "$rpathflag" in
'')
	ldflags=
	;;
*)
	ldflags=
	for yyy in $loclibpth; do
		ldflags="$ldflags $rpathflag$yyy"
	done
	;;
esac

case `uname -m` in
alpha)
    echo 'int main() {}' > try.c
    gcc=`${cc:-cc} -v -c try.c 2>&1|grep 'gcc version egcs-2'`
    case "$gcc" in
    '' | "gcc version egcs-2.95."[3-9]*) ;; # 2.95.3 or better okay
    *)	cat >&4 <<EOF
***
*** Your gcc ($gcc) is known to be
*** too buggy on netbsd/alpha to compile Perl with optimization.
*** It is suggested you install the lang/gcc package which should
*** have at least gcc 2.95.3 which should work okay: use for example
*** Configure -Dcc=/usr/pkg/gcc-2.95.3/bin/cc.  You could also
*** Configure -Doptimize=-O0 to compile Perl without any optimization
*** but that is not recommended.
***
EOF
	exit 1
	;;
    esac
    rm -f try.*
    ;;
esac

# NetBSD/sparc 1.5.3/1.6.1 dumps core in the semid_ds test of Configure.
case `uname -m` in
sparc) d_semctl_semid_ds=undef ;;
esac


--- NEW FILE: dos_djgpp.sh ---
# hints file for dos/djgpp v2.xx
# Original by Laszlo Molnar <molnarl at cdata.tvnet.hu>

# 971015 - archname changed from 'djgpp' to 'dos-djgpp'
# 971210 - threads support
# 000222 - added -DPERL_EXTERNAL_GLOB to ccflags

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'

# this reportedly causes compile errors in system includes
i_ieeefp='undef'

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)
	case `gcc -v 2>&1|grep "gcc version"` in
	"gcc version 3."*)
	  optimize="-O2 -falign-loops=2 -falign-jumps=2 -falign-functions=2" ;;
	*)
	  optimize="-O2 -malign-loops=2 -malign-jumps=2 -malign-functions=2" ;;
	esac
	ldflags='-s'
	;;
  X*)
	ldflags=' '
	;;
esac
ccflags="$ccflags -DPERL_EXTERNAL_GLOB"
usemymalloc='n'
timetype='time_t'

prefix=$DJDIR
privlib=$prefix/lib/perl5
archlib=$privlib
sitelib=$privlib/site
sitearch=$sitelib

eagain='EAGAIN'
rd_nodata='-1'

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
        set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
        shift
        libswanted="$*"
	;;
esac
EOCBU

useperlio='undef'
uselargefiles='undef'

--- NEW FILE: i386.sh ---
ldflags='-L/usr/ucblib'

--- NEW FILE: irix_6_1.sh ---
# irix_6.sh
# from Krishna Sethuraman, krishna at 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 at 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="$*"

case "$usethreads" in
$define|true|[yY]*)
        cat >&4 <<EOM
IRIX `uname -r` does not support POSIX threads.
You should upgrade to at least IRIX 6.2 with pthread patches.
EOM
	exit 1
	;;
esac

case " $use64bits $use64bitint $use64bitall " in
*" $define "*|*" true "*|*" [yY] "*)
	cat >&4 <<EOM
IRIX `uname -r` does not support 64-bit types.
You should upgrade to at least IRIX 6.2.
Cannot continue, aborting.
EOM
	exit 1
esac


--- NEW FILE: lynxos.sh ---
#
# LynxOS hints
#
# These hints were submitted by:
#   Greg Seibert
#   seibert at Lynx.COM
# and
#   Ed Mooring
#   mooring at lynx.com
#

cc='gcc'
so='none'
usemymalloc='n'
d_union_semun='define'
ccflags="$ccflags -DEXTRA_F_IN_SEMUN_BUF -D__NO_INCLUDE_WARN__"

# When LynxOS runs a script with "#!" it sets argv[0] to the script name
toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'

--- NEW FILE: aix_3.sh ---
# hints/aix_3.sh
#
# On Tue 03 Feb 2004 split off from aix.sh by H.Merijn Brand
# AIX 3.x.x hints thanks to Wayne Scott <wscott at ichips.intel.com>

# Notes:
#
#    - shared libperl support is tricky. if ever libperl.a ends up
#      in /usr/local/lib/* it can override any subsequent builds of
#      that same perl release. to make sure you know where the shared
#      libperl.a is coming from do a 'dump -Hv perl' and check all the
#      library search paths in the loader header.
#
#      it would be nice to warn the user if a libperl.a exists that is
#      going to override the current build, but that would be complex.
#
#      better yet, a solid fix for this situation should be developed.

alignbytes=8

case "$usemymalloc" in
    '')  usemymalloc='n' ;;
    esac

# Intuiting the existence of system calls under AIX is difficult,
# at best; the safest technique is to find them empirically.

case "$usenm" in
    '') usenm='undef'
    esac

so="a"
# AIX itself uses .o (libc.o) but we prefer compatibility
# with the rest of the world and with rest of the scripting
# languages (Tcl, Python) and related systems (SWIG).
# Stephanie Beals <bealzy at us.ibm.com>
dlext="so"

# Take possible hint from the environment.  If 32-bit is set in the
# environment, we can override it later.  If set for 64, the
# 'sizeof' test sees a native 64-bit architecture and never looks back.
case "$use64bitint$use64bitall$usemorebits" in
    *$define*) cat >&4 <<EOM

AIX `oslevel` does not support 64-bit interfaces.
You should upgrade to at least AIX 4.3.
EOM
	exit
	;;
    esac

case "$usemorebits" in
if [ "$OBJECT_MODE"  = "64" ] then
    cat >&4 <<EOF

You have OBJECT_MODE=64 set in the environment. 
This would force a full 64-bit build, but AIX 3
does not support 64bit.
EOF
    fi

# uname -m output is too specific and not appropriate here
case "$archname" in
    '') archname="$osname" ;;
    esac

cc=${cc:-cc}
d_fchmod='undef'
ccflags="$ccflags -D_ALL_SOURCE"

# These functions don't work like Perl expects them to.
d_setregid='undef'
d_setreuid='undef'

# 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'

# Changes for dynamic linking by Wayne Scott <wscott at ichips.intel.com>
#
# Tell perl which symbols to export for dynamic linking.
cccdlflags='none'	# All AIX code is position independent
   cc_type=xlc		# do not export to config.sh
case "$cc" in
    *gcc*)
        cc_type=gcc
        ccdlflags='-Xlinker'
        if [ "X$gccversion" = "X" ]; then
	    # Done too late in Configure if hinted
	    gccversion=`$cc --version | sed 's/.*(GCC) *//'`
	    fi
        ;;

    *)  ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | head -1 | awk '{print $1,$2}'`
        case "$ccversion" in
	    '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$'`
	        ;;

	    *.*.*.*.*.*.*)		# Ahhrgg, more than one C compiler installed
	        first_cc_path=`which ${cc:-cc}`
	        case "$first_cc_path" in
	            *vac*)
			cc_type=vac
			;;
		    /usr/bin/cc)		# Check the symlink
			if [ -h $first_cc_path ]; then
			    ls -l $first_cc_path > reflect
			    if grep -i vac reflect >/dev/null 2>&1 ; then
				cc_type=vac
				fi
			    rm -f reflect
			    fi
			;;
		    esac
		ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | head -1`
		;;
	    vac*.*.*.*)
		cc_type=vac
		;;
	    esac

	ccversion=`echo "$ccversion" | awk '{print $2}'`
	case "$ccversion" in
	    3.6.6.0)
		optimize='none'
		;;
	    4.4.0.0|4.4.0.1|4.4.0.2)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is outdated.
***
*** Please upgrade to at least 4.4.0.3.
***
EOF
		;;
	    5.0.0.0)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is known to have too many optimizer
*** bugs to compile a working Perl.
***
*** Consider upgrading your C compiler, or getting the GNU cc (gcc).
***
*** Cannot continue, aborting.
EOF
		exit 1
		;;
	    5.0.1.0)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is known to have optimizer problems
*** when compiling regcomp.c.
***
*** Disabling optimization for that file but consider upgrading
*** your C compiler.
***
EOF
regcomp_cflags='optimize='
		;;
	    esac
    esac
# the required -bE:$installarchlib/CORE/perl.exp is added by
# libperl.U (Configure) later.

# 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?
lddlflags="$lddlflags -H512 -T512 -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -e _nostart -lc"

case $cc_type in
    vac|xlc)
	case "$uselongdouble" in
	    $define|true|[yY]*)
		ccflags="$ccflags -qlongdouble"
		libswanted="c128 $libswanted"
		lddlflags=`echo "$lddlflags " | sed -e 's/ -lc / -lc128 -lc /'`
		;;
	    esac
    esac

case "$cc" in
    *gcc*) ;;
    cc*|xlc*) # cc should've been set by line 116 or so if empty.
	if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then
	    case ":$PATH:" in
		*:/usr/vac/bin:*) ;;
		*) if test ! -x /QOpenSys/usr/bin/$cc; then
		       # The /QOpenSys/usr/bin/$cc saves us if we are
		       # building natively in OS/400 PASE.
		       cat >&4 <<EOF

***
*** You either implicitly or explicitly specified an IBM C compiler,
*** but you do not seem to have one in /usr/bin, but you seem to have
*** the VAC installed in /usr/vac, but you do not have the /usr/vac/bin
*** in your PATH.  I suggest adding that and retrying Configure.
***
EOF
		       exit 1
		       fi 
		   ;;
		esac
	    fi
	;;
    esac

case "$ldlibpthname" in
    '') ldlibpthname=LIBPATH ;;
    esac

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
    $define|true|[yY]*)
	d_drand48_r='undef'
	d_endgrent_r='undef'
	d_endpwent_r='undef'
	d_getgrent_r='undef'
	d_getpwent_r='undef'
	d_random_r='undef'
	d_setgrent_r='undef'
	d_setpwent_r='undef'
	d_srand48_r='undef'
	d_strerror_r='undef'
	ccflags="$ccflags -DNEED_PTHREAD_INIT"
	case "$cc" in
	    *gcc*)
		ccflags="-D_THREAD_SAFE $ccflags"
		;;
	    cc_r) ;;
	    cc|xl[cC]_r) 
		echo >&4 "Switching cc to cc_r because of POSIX threads."
		# xlc_r has been known to produce buggy code in AIX 4.3.2.
		# (e.g. pragma/overload core dumps)	 Let's suspect xlC_r, too.
		# --jhi at iki.fi
		cc=cc_r
		;;
	    '') 
		cc=cc_r
		;;
	    *)
		cat >&4 <<EOM
*** For pthreads you should use the AIX C compiler cc_r.
*** (now your compiler was set to '$cc')
*** Cannot continue, aborting.
EOM
		exit 1
		;;
	    esac

	# c_rify libswanted.
	set `echo X "$libswanted "| sed -e 's/ \([cC]\) / \1_r /g'`
	shift
	libswanted="$*"
	# c_rify lddlflags.
	set `echo X "$lddlflags "| sed -e 's/ \(-l[cC]\) / \1_r /g'`
	shift
	lddlflags="$*"

	# Insert pthreads to libswanted, before any libc or libC.
	set `echo X "$libswanted "| sed -e 's/ \([cC]_r\) / pthreads \1 /'`
	shift
	libswanted="$*"
	# Insert pthreads to lddlflags, before any libc or libC.
	set `echo X "$lddlflags " | sed -e 's/ \(-l[cC]_r\) / -lpthreads \1 /'`
	shift
	lddlflags="$*"
	;;
    esac
EOCBU

# This script UU/uselargefiles.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use large files.
cat > UU/uselargefiles.cbu <<'EOCBU'
case "$uselargefiles" in
    ''|$define|true|[yY]*)
	# Configure should take care of use64bitint and use64bitall being
	# defined before uselargefiles.cbu is consulted.
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
	else
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
	    fi
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	else
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	    fi
	case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in
	    '') ;;
	    *)  ccflags="$ccflags $ccflags_uselargefiles"
	        ldflags="$ldflags $ldflags_uselargefiles"
	        libswanted="$libswanted $libswanted_uselargefiles"
	        ;;
	    esac
	case "$gccversion" in
	    '') ;;
	    *)  # Remove xlc-specific -qflags.
		ccflags="`echo $ccflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
		ldflags="`echo $ldflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
		# Move xlc-specific -bflags.
		ccflags="`echo $ccflags | sed -e 's@ -b@ -Wl,-b at g'`"
		ldflags="`echo ' '$ldflags | sed -e 's@ -b@ -Wl,-b at g'`"
		lddlflags="`echo ' '$lddlflags | sed -e 's@ -b@ -Wl,-b at g'`"
		ld='gcc'
		echo >&4 "(using ccflags   $ccflags)"
		echo >&4 "(using ldflags   $ldflags)"
		echo >&4 "(using lddlflags $lddlflags)"
		;; 
	    esac
        ;;
    esac
EOCBU

if test $usenativedlopen = 'true' ; then
    ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
    case "$cc" in
        *gcc*) ldflags="$ldflags -Wl,-brtl" ;;
        *)     ldflags="$ldflags -brtl" ;;
        esac
else
    # If the C++ libraries, libC and libC_r, are available we will
    # prefer them over the vanilla libc, because the libC contain
    # loadAndInit() and terminateAndUnload() which work correctly
    # with C++ statics while libc load() and unload() do not. See
    # ext/DynaLoader/dl_aix.xs. The C-to-C_r switch is done by
    # usethreads.cbu, if needed.
    if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
	# Cify libswanted.
	set `echo X "$libswanted "| sed -e 's/ c / C c /'`
	shift
	libswanted="$*"
	# Cify lddlflags.
	set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
	shift
	lddlflags="$*"
	fi
    fi

# EOF

--- NEW FILE: sco_2_3_0.sh ---
yacc='/usr/bin/yacc -Sm25000'
i_dirent=undef

--- NEW FILE: sco_2_3_2.sh ---
yacc='/usr/bin/yacc -Sm25000'
libswanted=`echo " $libswanted "| sed 's/ x / /'`

--- NEW FILE: hpux.sh ---
#!/usr/bin/sh

### SYSTEM ARCHITECTURE

# 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`;
	xxOsRev=`expr 100 \* $xxOsRevMajor + $xxOsRevMinor`
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 text 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/^#[[:space:]]*define[[:space:]]*CPU_//p" /usr/include/sys/unistd.h |
	sed -n -e "s/[[:space:]]*$xxcpu[[:space:]].*//p" |
	sed -e s/_RISC/-RISC/ -e s/HP_// -e s/_/./ -e "s/[[:space:]]*//g"`;
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

# For some strange reason, the u32align test from Configure hangs in
# HP-UX 10.20 since the December 2001 patches.  So hint it to avoid
# the test.
if [ "$xxOsRevMajor" -le 10 ]; then
    d_u32align=$define
    fi

echo "Archname is $archname"

# Fix XSlib (CPAN) confusion when re-using a prefix but changing from ILP32
# to LP64 builds.  They're NOT binary compatible, so quit claiming they are.
archname64=LP64


### HP-UX OS specific behaviour

# -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.
set `echo "X $libswanted " | sed -e 's/ ld / /' -e 's/ dbm / /' -e 's/ BSD / /' -e 's/ PW / /'`
shift
libswanted="$*"

cc=${cc:-cc}
ar=/usr/bin/ar	# Yes, truly override.  We do not want the GNU ar.
full_ar=$ar	# I repeat, no GNU ar.  arrr.

set `echo "X $ccflags " | sed -e 's/ -A[ea] / /' -e 's/ -D_HPUX_SOURCE / /'`
shift
	cc_cppflags="$* -D_HPUX_SOURCE"
cppflags="-Aa -D__STDC_EXT__ $cc_cppflags"

case "$prefix" in
    "") prefix='/opt/perl5' ;;
    esac

    gnu_as=no
    gnu_ld=no
case `$cc -v 2>&1`"" in
    *gcc*)  ccisgcc="$define"
	    ccflags="$cc_cppflags"
	    if [ "X$gccversion" = "X" ]; then
		# Done too late in Configure if hinted
		gccversion=`$cc --version | sed 's/.*(GCC) *//'`
		fi
	    case "$gccversion" in
		[012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
			ccflags="$ccflags -DUINT32_MAX_BROKEN"
			;;
		[34]*) # GCC (both 32bit and 64bit) will define __STDC_EXT__
                       # by default when using GCC 3.0 and newer versions of
                       # the compiler.
                       cppflags="$cc_cppflags"
                       ;;
		esac
	    case "`getconf KERNEL_BITS 2>/dev/null`" in
		*64*)
		    echo "main(){}">try.c
		    case "$gccversion" in
			[34]*)
			    case "$archname" in
                               PA-RISC*)
                                   case "$ccflags" in
                                       *-mpa-risc*) ;;
                                       *) ccflags="$ccflags -mpa-risc-2-0" ;;
                                       esac
                                   ;;
				esac
			    ;;
			*)  # gcc with gas will not accept +DA2.0
			    case "`$cc -c -Wa,+DA2.0 try.c 2>&1`" in
				*"+DA2.0"*)		# gas
				    gnu_as=yes
				    ;;
				*)			# HPas
				    ccflags="$ccflags -Wa,+DA2.0"
				    ;;
				esac
			    ;;
			esac
		    # gcc with gld will not accept +vnocompatwarnings
		    case "`$cc -o try -Wl,+vnocompatwarnings try.c 2>&1`" in
			*"+vnocompat"*)		# gld
			    gnu_ld=yes
			    ;;
			*)			# HPld
			   case "$gccversion" in
			       [12]*)
				   # Why not 3 as well here?
				   # Since not relevant to IA64, not changed.
				   ldflags="$ldflags -Wl,+vnocompatwarnings"
				   ccflags="$ccflags -Wl,+vnocompatwarnings"
				   ;;
			       esac
			    ;;
			esac
		    rm -f try.c
		    ;;
		esac
	    ;;
    *)      ccisgcc=''
	    # What cannot be use in combination with ccache links :(
	    cc_found=""
	    for p in `echo $PATH | tr : ' ''` ; do
		x="$p/cc"
		if [ -f $x ] && [ -x $x ]; then
		    if [ -h $x ]; then
			l=`ls -l $x | sed 's,.*-> ,,'`
			case $l in
			    /*) x=$l		;;
			    *)  x="$p/$l"	;;
			    esac
			fi
		    x=`echo $x | sed 's,/\./,/,g'`
		    case $x in
			*ccache*) ;;
			*) [ -z "$cc_found" ] && cc_found=$x ;;
			esac
		    fi
		done
	    [ -z "$cc_found" ] && cc_found=`which cc`
	    what $cc_found >&4
	    ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'`
	    case "$ccflags" in
               "-Ae "*) ;;
		*)  ccflags="-Ae $cc_cppflags"
		    # +vnocompatwarnings not known in 10.10 and older
		    if [ $xxOsRev -ge 1020 ]; then
			ccflags="$ccflags -Wl,+vnocompatwarnings"
			fi
		    ;;
               esac
	    # Needed because cpp does only support -Aa (not -Ae)
	    cpplast='-'
	    cppminus='-'
	    cppstdin='cc -E -Aa -D__STDC_EXT__'
	    cpprun=$cppstdin
#	    case "$d_casti32" in
#		"") d_casti32='undef' ;;
#		esac
	    ;;
    esac

# When HP-UX runs a script with "#!", it sets argv[0] to the script name.
toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'

### 64 BITNESS

# Some gcc versions do native 64 bit long (e.g. 2.9-hppa-000310 and gcc-3.0)
# We have to force 64bitness to go search the right libraries
    gcc_64native=no
case "$ccisgcc" in
    $define|true|[Yy])
	echo 'int main(){long l;printf("%d\\n",sizeof(l));}'>try.c
	$cc -o try $ccflags $ldflags try.c
	if [ "`try`" = "8" ]; then
	    cat <<EOM >&4

*** This version of gcc uses 64 bit longs. -Duse64bitall is
*** implicitly set to enable continuation
EOM
	    use64bitall=$define
	    gcc_64native=yes
	    fi
	;;
    esac

case "$use64bitall" in
    $define|true|[yY]*) use64bitint="$define" ;;
    esac

case "$usemorebits" in
    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
    esac

case "$archname" in
    IA64*)
	# While here, override so=sl auto-detection
	so='so'
	;;
    *)
	case "$uselongdouble" in
	    *) ;;
	    $define|true|[yY]*)
		cat <<EOM >&4

*** long doubles are not (yet) supported on HP-UX (any version)
*** Until it does, we cannot continue, aborting.
EOM
		exit 1 ;;
	    esac
	;;
    esac

case "$use64bitint" in
    $define|true|[Yy])

	if [ "$xxOsRevMajor" -lt 11 ]; then
	    cat <<EOM >&4

*** 64-bit compilation is not supported on HP-UX $xxOsRevMajor.
*** You need at least HP-UX 11.0.
*** Cannot continue, aborting.
EOM
	    exit 1
	    fi

	# Set libc and the library paths
	case "$archname" in
	    PA-RISC*)
		loclibpth="$loclibpth /lib/pa20_64"
		libc='/lib/pa20_64/libc.sl' ;;
	    IA64*) 
		loclibpth="$loclibpth /usr/lib/hpux64"
		libc='/usr/lib/hpux64/libc.so' ;;
	    esac
	if [ ! -f "$libc" ]; then
	    cat <<EOM >&4

*** You do not seem to have the 64-bit libc.
*** I cannot find the file $libc.
*** Cannot continue, aborting.
EOM
	    exit 1
	    fi

	case "$ccisgcc" in
	    $define|true|[Yy])
		# For the moment, don't care that it ain't supported (yet)
		# by gcc (up to and including 2.95.3), cause it'll crash
		# anyway. Expect auto-detection of 64-bit enabled gcc on
		# HP-UX soon, including a user-friendly exit
		case $gcc_64native in
		    no) case "$gccversion" in
			    [1234]*)
				ccflags="$ccflags -mlp64"
				case "$archname" in
				    PA-RISC*)
					ldflags="$ldflags -Wl,+DD64"
					;;
				    IA64*)
					ldflags="$ldflags -mlp64"
					;;
				    esac
				    ;;
			    esac
			;;
		    esac
		;;
	    *)
		ccflags="$ccflags +DD64"
		ldflags="$ldflags +DD64"
		;;
	    esac

	# Reset the library checker to make sure libraries
	# are the right type
	# (NOTE: on IA64, this doesn't work with .a files.)
	libscheck='case "`/usr/bin/file $xxx`" in
		       *ELF-64*|*LP64*|*PA-RISC2.0*) ;;
		       *) xxx=/no/64-bit$xxx ;;
		       esac'

	;;

    *)	# Not in 64-bit mode

	case "$archname" in
	    PA-RISC*)
		libc='/lib/libc.sl' ;;
	    IA64*) 
		loclibpth="$loclibpth /usr/lib/hpux32"
		libc='/usr/lib/hpux32/libc.so' ;;
	    esac
	;;
    esac

# 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"
if [ "$gnu_ld" = "yes" ]; then
    ccdlflags="-Wl,-E $ccdlflags"
else
    ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags"
    fi


### COMPILER SPECIFICS

## Local restrictions (point to README.hpux to lift these)

## Optimization limits
cat >try.c <<EOF
#include <sys/resource.h>

int main ()
{
    struct rlimit rl;
    int i = getrlimit (RLIMIT_DATA, &rl);
    printf ("%d\n", (int)(rl.rlim_cur / (1024 * 1024)));
    } /* main */
EOF
$cc -o try $ccflags $ldflags try.c
	maxdsiz=`try`
rm -f try try.c core
if [ $maxdsiz -le 64 ]; then
    # 64 Mb is probably not enough to optimize toke.c
    # and regexp.c with -O2
    cat <<EOM >&4
Your kernel limits the data section of your programs to $maxdsiz Mb,
which is (sadly) not enough to fully optimize some parts of the
perl binary. I'll try to use a lower optimization level for
those parts. If you are a sysadmin, and you *do* want full
optimization, raise the 'maxdsiz' kernel configuration parameter
to at least 0x08000000 (128 Mb) and rebuild your kernel.
EOM
regexec_cflags=''
doop_cflags=''
    fi

case "$ccisgcc" in
    $define|true|[Yy])
	
	case "$optimize" in
	    "")           optimize="-g -O" ;;
	    *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
	    esac
	#ld="$cc"
	ld=/usr/bin/ld
	cccdlflags='-fPIC'
	#lddlflags='-shared'
	lddlflags='-b'
	case "$optimize" in
	    *-g*-O*|*-O*-g*)
		# gcc without gas will not accept -g
		echo "main(){}">try.c
		case "`$cc $optimize -c try.c 2>&1`" in
		    *"-g option disabled"*)
			set `echo "X $optimize " | sed -e 's/ -g / /'`
			shift
			optimize="$*"
			;;
		    esac
		;;
	    esac
	if [ $maxdsiz -le 64 ]; then
	    case "$optimize" in
		*O2*)	opt=`echo "$optimize" | sed -e 's/O2/O1/'`
			toke_cflags="$toke_cflags;optimize=\"$opt\""
			regexec_cflags="optimize=\"$opt\""
			;;
		esac
	    fi
	;;

    *)	# HP's compiler cannot combine -g and -O
	case "$optimize" in
	    "")           optimize="+O2 +Onolimit" ;;
	    *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
	    esac
	case "$optimize" in
	    *-O*|\
	    *O2*)   opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
		    ;;
	    *)      opt="$optimize"
		    ;;
	    esac
	case "$archname" in
	    IA64*)
		case "$ccversion" in
		    B3910B*A.06.0[12345])
			# > cc --version
			# cc: HP aC++/ANSI C B3910B A.06.05 [Jul 25 2005]
			# Has optimizing problems with -O2 and up for both
			# maint (5.8.8+) and blead (5.9.3+)
			# -O1/+O1 passed all tests (m)'05 [ 10 Jan 2005 ]
			optimize="$opt"			;;
		    *)  doop_cflags="optimize=\"$opt\""	;;
		    esac
		;;
	    esac
	if [ $maxdsiz -le 64 ]; then
	    toke_cflags="$toke_cflags;optimize=\"$opt\""
	    regexec_cflags="optimize=\"$opt\""
	    fi
	ld=/usr/bin/ld
	cccdlflags='+Z'
	lddlflags='-b +vnocompatwarnings'
	;;
    esac

## LARGEFILES
if [ $xxOsRev -lt 1020 ]; then
    uselargefiles="$undef"
    fi

#case "$uselargefiles-$ccisgcc" in
#    "$define-$define"|'-define') 
#	cat <<EOM >&4
#
#*** I'm ignoring large files for this build because
#*** I don't know how to do use large files in HP-UX using gcc.
#
#EOM
#	uselargefiles="$undef"
#	;;
#    esac

# Once we have the compiler flags defined, Configure will
# execute the following call-back script. See hints/README.hints
# for details.
cat > UU/cc.cbu <<'EOCBU'
# This script UU/cc.cbu will get 'called-back' by Configure after it
# has prompted the user for the C compiler to use.

# Compile and run the a test case to see if a certain gcc bug is
# present. If so, lower the optimization level when compiling
# pp_pack.c.  This works around a bug in unpack.

if test -z "$ccisgcc" -a -z "$gccversion"; then
    : no tests needed for HPc
else
    echo " "
    echo "Testing for a certain gcc bug is fixed in your compiler..."

    # Try compiling the test case.
    if $cc -o t001 -O $ccflags $ldflags -lm ../hints/t001.c; then
       gccbug=`$run ./t001`
       case "$gccbug" in
           *fails*)
               cat >&4 <<EOF
This C compiler ($gccversion) is known to have optimizer
problems when compiling pp_pack.c.

Disabling optimization for pp_pack.c.
EOF
               case "$pp_pack_cflags" in
                   '') pp_pack_cflags='optimize='
                       echo "pp_pack_cflags='optimize=\"\"'" >> config.sh ;;
                   *)  echo "You specified pp_pack_cflags yourself, so we'll go with your value." >&4 ;;
                   esac
               ;;
           *)  echo "Your compiler is ok." >&4
               ;;
           esac
    else
       echo " "
       echo "*** WHOA THERE!!! ***" >&4
       echo "    Your C compiler \"$cc\" doesn't seem to be working!" >&4
       case "$knowitall" in
           '') echo "    You'd better start hunting for one and let me know about it." >&4
               exit 1
               ;;
           esac
       fi

    rm -f t001$_o t001$_exe
    fi
EOCBU

cat >UU/uselargefiles.cbu <<'EOCBU'
# This script UU/uselargefiles.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use large files.
case "$uselargefiles" in
    ""|$define|true|[yY]*)
	# there are largefile flags available via getconf(1)
	# but we cheat for now.  (Keep that in the left margin.)
ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"

	case " $ccflags " in
	*" $ccflags_uselargefiles "*) ;;
	*) ccflags="$ccflags $ccflags_uselargefiles" ;;
	esac

	if test -z "$ccisgcc" -a -z "$gccversion"; then
	    # The strict ANSI mode (-Aa) doesn't like large files.
	    ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
	    case "$ccflags" in
		*-Ae*) ;;
		*)     ccflags="$ccflags -Ae" ;;
		esac
	    fi
	;;
    esac
EOCBU

# THREADING

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat >UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
    $define|true|[yY]*)
	if [ "$xxOsRevMajor" -lt 10 ]; then
	    cat <<EOM >&4

HP-UX $xxOsRevMajor cannot support POSIX threads.
Consider upgrading to at least HP-UX 11.
Cannot continue, aborting.
EOM
	    exit 1
	    fi

	if [ "$xxOsRevMajor" -eq 10 ]; then
	    # Under 10.X, a threaded perl can be built
	    if [ -f /usr/include/pthread.h ]; then
		if [ -f /usr/lib/libcma.sl ]; then
		    # DCE (from Core OS CD) is installed

		   # Check if it is pristine, or patched
		   cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
		   if [ ! -z "$cmavsn" ]; then
		       cat <<EOM >&4

***************************************************************************

Perl will support threading through /usr/lib/libcma.sl from
the HP DCE package, but the version found is too old to be
reliable.

If you are not depending on this specific version of the library,
consider to upgrade using patch PHSS_23672 (read README.hpux)

***************************************************************************

(sleeping for 10 seconds...)
EOM
		       sleep 10
		       fi

		    # It needs # libcma and OLD_PTHREADS_API. Also
		    # <pthread.h> needs to be #included before any
		    # other includes (in perl.h)

		    # HP-UX 10.X uses the old pthreads API
		    d_oldpthreads="$define"

		    # include libcma before all the others
		    libswanted="cma $libswanted"

		    # tell perl.h to include <pthread.h> before other
		    # include files
		    ccflags="$ccflags -DPTHREAD_H_FIRST"
# First column on purpose:
# this is not a standard Configure variable
# but we need to get this noticed.
pthread_h_first="$define"

		    # HP-UX 10.X seems to have no easy
		    # way of detecting these *time_r protos.
		    d_gmtime_r_proto='define'
		    gmtime_r_proto='REENTRANT_PROTO_I_TS'
		    d_localtime_r_proto='define'
		    localtime_r_proto='REENTRANT_PROTO_I_TS'

		    # Avoid the poisonous conflicting (and irrelevant)
		    # prototypes of setkey(). 
		    i_crypt="$undef"

		    # CMA redefines select to cma_select, and cma_select
		    # expects int * instead of fd_set * (just like 9.X)
		    selecttype='int *'

		elif [ -f /usr/lib/libpthread.sl ]; then
		    # PTH package is installed
		    libswanted="pthread $libswanted"
		else
		    libswanted="no_threads_available"
		    fi
	    else
		libswanted="no_threads_available"
		fi

	    if [ $libswanted = "no_threads_available" ]; then
		cat <<EOM >&4

In HP-UX 10.X for POSIX threads you need both of the files
/usr/include/pthread.h and either /usr/lib/libcma.sl or /usr/lib/libpthread.sl.
Either you must upgrade to HP-UX 11 or install a posix thread library:

    DCE-CoreTools from HP-UX 10.20 Hardware Extensions 3.0 CD (B3920-13941)

or

    PTH package from e.g. http://hpux.tn.tudelft.nl/hppd/hpux/alpha.html

Cannot continue, aborting.
EOM
		exit 1
		fi
	else
	    # 12 may want upping the _POSIX_C_SOURCE datestamp...
	    ccflags=" -D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags"
	    set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
	    shift
	    libswanted="$*"
	    fi

	;;
    esac
EOCBU

# The mysterious io_xs memory corruption in 11.00 32bit seems to get
# fixed by not using Perl's malloc.  Flip side is performance loss.
# So we want mymalloc for all situations possible
usemymalloc='y'
case "$usethreads" in
    $define|true|[yY]*) usemymalloc='n' ;;
    *)  case "$ccisgcc" in
           $undef|false|[nN]*)
               case "$use64bitint" in
                   $undef|false|[nN]*)
                       case "$ccflags" in
                           *-DDEBUGGING*) ;;
                           *) usemymalloc='n' ;;
                           esac
                       ;;
                   esac
               ;;
           esac
       ;;
    esac

usemymalloc='n'
case "$useperlio" in
    $undef|false|[nN]*) usemymalloc='y' ;;
    esac

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# ctime_r() and asctime_r() seem to have issues for versions before
# HP-UX 11
if [ $xxOsRevMajor -lt 11 ]; then
    d_ctime_r="$undef"
    d_asctime_r="$undef"
    fi


# fpclassify() is a macro, the library call is Fpclassify
# Similarly with the others below.
d_fpclassify='define'
d_isnan='define'
d_isinf='define'
d_isfinite='define'
d_unordered='define'
# Next one(s) need the leading tab.  These are special 'hint' symbols that
# are not to be propagated to config.sh, all related to pthreads draft 4
# interfaces.
case "$d_oldpthreads" in
    ''|$undef)
	d_crypt_r_proto='undef'
	d_getgrent_r_proto='undef'
	d_getpwent_r_proto='undef'
	d_strerror_r_proto='undef'
	;;
    esac

--- NEW FILE: mpeix.sh ---
# Created for 5.003 by Mark Klein, mklein at dis.com.
# Substantially revised for 5.004_01 by Mark Bixby, markb at cccd.edu.
# Revised again for 5.004_69 by Mark Bixby, markb at cccd.edu.
# Revised for 5.6.0 by Mark Bixby, mbixby at power.net.
# Revised for 5.7.3 by Mark Bixby, mark at bixby.org.
# Revised for 5.8.0 by Mark Bixby, mark at bixby.org.
# Revised for 5.8.8/5.9.3 by Ken Hirsch, kenhirsch at ftml.net
#
osname='mpeix'
osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`

#
# Don't use nm.  Instead, we'll use the MPEAUTOCONF environment variable
# to force error for unresolved externals.
# This is slower than nm (about 70 minutes instead of 35 minutes),
# but much more reliable.

usenm='false'
export AUTOCONF=1 MPEAUTOCONF=1

# Work around the broken inline cat bug that corrupts here docs
#
alias -x cat=/bin/cat
#
# Various directory locations.
#
# Which ones of these does Configure get wrong?
test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP"
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.
#
test -z "$cc" && cc='gcc'
cccdlflags='none'
ccdlflags='-Xlinker -WL,xl=/usr/lib/libcurses.sl,/lib/libsvipc.sl,/usr/lib/libsocket.sl,/usr/lib/libstr.sl,/lib/libm.sl,/lib/libc.sl'
ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL"
locincpth="$locincpth /usr/local/include /usr/contrib/include /BIND/CURRENT/include /SYSLOG/PUB"
test -z "$optimize" && optimize="-O2"
ranlib='/bin/true'
# Special compiling options for certain source files.
# But what if you want -g?
regcomp_cflags='optimize=-O'
toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'

#
# Linking.
#
# Build a fixed sigsetjmp that can be used in dynamic libraries
# This needs to be compiled with -O2, so I do it here, rather
# than with make
gcc -c -O2 mpeix/mpeix_setjmp.c
lddlflags="-b $PWD/mpeix_setjmp.o"

# Delete bsd and BSD from the library list.  Remove other randomly ordered
# libraries and then re-add them in their proper order (the MPE linker is
# order-sensitive).  Add additional MPE-specific libraries.
for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
  set `echo " $libswanted " | sed -e 's/ /  /g' -e "s/ $mpe_remove //"`
  libswanted="$*"
done
libswanted="$libswanted bind syslog curses svipc socket str m c"
loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BIND/CURRENT/lib /SYSLOG/PUB"
#
# External functions and data items.
#
# Q: Does Configure *really* get *all* of these wrong?
#
# A: Yes.  There are two MPE problems here.  The 'undef' functions exist on MPE,
# but are merely dummy routines that return ENOTIMPL or ESYSERR.  Since they're
# useless, let's just tell Perl to avoid them.  Also, a few data items are
# 'undef' because while they may exist in structures, they are uninitialized.

d_Gconvert='gcvt((x),(n),(b))'

d_inetaton='undef'

# these fields exist, but are uninitialized
d_pwage='undef'
d_pwcomment='undef'
d_pwgecos='undef'
d_pwpasswd='undef'
d_statblks='undef'

# These functions exist, 
#  but either return ENOSYS/ESYSERR/ENOSYS or work so differently
# that it is not helpful to include them

d_lchown='undef'
d_link='undef'
d_setegid='undef'
d_seteuid='undef'
d_setitimer='undef'
d_setpgid='undef'
d_setsid='undef'


# These are defined in mpeix/mpeix.c
d_gettimeod='define'
d_truncate='define'

# Include files.
#
#??i_gdbm='undef' # the port is currently incomplete

i_termios='undef' # we have termios, but not the full set (just tcget/setattr)

i_time='define'
i_systime='undef'
i_systimek='undef'
timeincl='/usr/include/time.h'
#
# Data types.
#
timetype='time_t'

# Functionality.
#
uselargefiles="$undef"

# Expected functionality provided in mpeix.c.
#

# Help gmake find mpeix.c
test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c

archobjs='mpeix.o mpeix_setjmp.o'

--- NEW FILE: stellar.sh ---
optimize="-O0"
ccflags="$ccflags -nw"

--- NEW FILE: mpc.sh ---
ccflags="$ccflags -X18"

--- NEW FILE: next_4.sh ---
# Posix support has been removed from NextStep 
#
useposix='undef'

libpth='/lib /usr/lib /usr/local/lib'
libswanted=' '
libc='/NextLibrary/Frameworks/System.framework/System'

ldflags="$ldflags -dynamic -prebind"
lddlflags="$lddlflags -dynamic -bundle -undefined suppress"
ccflags="$ccflags -dynamic -fno-common -DUSE_NEXT_CTYPE -DUSE_PERL_SBRK"
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'
#

# On m68k machines, toke.c cannot be compiled at all for i386 and it can
# only be compiled for m68k itself without optimization (this is under
# OPENSTEP 4.2).
#
if [ `hostinfo | grep 'NeXT Mach.*:'  | sed 's/.*RELEASE_//'` = M68K ]
then
	echo "Cross compilation is impossible on m68k hardware under OS 4"
	echo "Forcing architecture to m68k only"
	toke_cflags='optimize=""'
	archs='m68k'
else
	archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
fi

#
# 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 at franz.ww.tu-berlin.de>)
ranlib='sleep 5; /bin/ranlib' 

case "$ldlibpthname" in
'') ldlibpthname=DYLD_LIBRARY_PATH ;;
esac

--- NEW FILE: interix.sh ---
# hints/interix.sh
#
# Please check with tech-pkg at netbsd.org before making modifications
# to this file.

cc='gcc'
cccdlflags="-DPIC $cccdlflags"
ccdlflags='-Wl,-E'
ccflags="-D_ALL_SOURCE $ccflags"
d_poll="$undef"
ld='gcc'
lddlflags="-shared $lddlflags"
rpathflag='-Wl,-R'
sharpbang='#!'
usemymalloc='false'
usenm='false'

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads. 
cat > UU/usethreads.cbu <<'EOCBU' 
case "$usethreads" in
$define|true|[yY]*)
	ccflags="-D_REENTRANT $ccflags"
	libswanted="$libswanted pthread"
        ;; 
esac 
EOCBU

--- NEW FILE: solaris_2.sh ---
# hints/solaris_2.sh
# Contributions by (in alphabetical order) Alan Burlison, Andy Dougherty,
# Dean Roehrich, Jarkko Hietaniemi, Lupe Christoph, Richard Soderberg and
# many others.
#
# See README.solaris for additional information.
#
# For consistency with gcc, we do not adopt Sun Marketing's
# removal of the '2.' prefix from the Solaris version number.
# (Configure tries to detect an old fixincludes and needs
# this information.)

# 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/'
#
#  (Note that the trailing slash is *required*.)
#  gcc will occasionally emit warnings about "unused prefix", but
#  these ought to be harmless.  See below for more details.

# Solaris has secure SUID scripts
d_suidsafe=${d_suidsafe:-define}

# Be paranoid about nm failing to find symbols
mistrustnm=${mistrustnm:-run}

# Several people reported problems with perl's malloc, especially
# when use64bitall is defined or when using gcc.
#     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg01318.html
#     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg00465.html
usemymalloc=${usemymalloc:-false}

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

# Avoid all libraries in /usr/ucblib.
# /lib is just a symlink to /usr/lib
set `echo $glibpth | sed -e 's@/usr/ucblib@@' -e 's@ /lib @ @'`
glibpth="$*"

# Remove unwanted libraries.  -lucb contains incompatible routines.
# -lld and -lsec don't do anything useful. -lcrypt does not
# really provide anything we need over -lc, so we drop it, too.
# -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 at usit.uio.no>
set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ malloc @ @' -e 's@ ucb @ @' -e 's@ sec @ @' -e 's@ crypt @ @'`
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

#
# This extracts the library directories that will be searched by the Sun
# Workshop compiler, given the command-line supplied in $tryworkshopcc.
# Use thusly: loclibpth="`$getworkshoplibs` $loclibpth"
#
	getworkshoplibs=`cat <<'END'
eval $tryworkshopcc -### 2>&1 | \
sed -n '/ -Y /s!.* -Y "P,\([^"]*\)".*!\1!p' | tr ':' ' ' | \
sed -e 's!/usr/lib/sparcv9!!' -e 's!/usr/ccs/lib/sparcv9!!' \
    -e 's!/usr/lib!!g' -e 's!/usr/ccs/lib!!g'
END
`

case "$cc" in
'')	if test -f /opt/SUNWspro/bin/cc; then
		cc=/opt/SUNWspro/bin/cc
		cat <<EOF >&4	

You specified no cc but you seem to have the Workshop compiler
($cc) installed, using that.
If you want something else, specify that in the command line,
e.g. Configure -Dcc=gcc

EOF
	fi
	;;
esac

######################################################
# General sanity testing.  See below for excerpts from the Solaris FAQ.
#
# From roehrich at ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995
# Date: Thu, 7 Sep 1995 16:31:40 -0500
# From: Dean Roehrich <roehrich at ironwood-fddi.cray.com>
# To: perl5-porters at 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.
mount | grep '^/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

cat > UU/cc.cbu <<'EOCBU'
# This script UU/cc.cbu will get 'called-back' by Configure after it
# has prompted the user for the C compiler to use.

# 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 if it is the Workshop/Forte compiler.
#     If it is, prepare for 64 bit and long doubles.
#   - 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.

# Perl compiled with some combinations of GNU as and ld may not
# be able to perform dynamic loading of extensions.  If you have a
# problem with dynamic loading, be sure that you are using the Solaris
# /usr/ccs/bin/as and /usr/ccs/bin/ld.  You can do that with
#  		sh Configure -Dcc='gcc -B/usr/ccs/bin/'
# (note the trailing slash is required).
# Combinations that are known to work with the following hints:
#
#  gcc-2.7.2, GNU as 2.7, GNU ld 2.7
#  egcs-1.0.3, GNU as 2.9.1 and GNU ld 2.9.1
#	--Andy Dougherty  <doughera at lafayette.edu>
#	Tue Apr 13 17:19:43 EDT 1999

# Get gcc to share its secrets.
echo 'int main() { return 0; }' > try.c
	# Indent to avoid propagation to config.sh
	verbose=`${cc:-cc} -v -o try try.c 2>&1`

# XXX TODO:  'specs' output changed from 'Reading specs from' in gcc-[23] to 'Using
# built-in specs' in gcc-4.  Perhaps we should just use the same gcc test as
# in Configure to see if we're using gcc.
if echo "$verbose" | egrep '(Reading specs from)|(Using built-in specs)' >/dev/null 2>&1; then
	#
	# Using gcc.
	#
	cc_name='gcc'

	# See if as(1) is GNU as(1).  GNU as(1) might not 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) might not build Perl.  If you
have trouble, you can use /usr/ccs/bin/as by including -B/usr/ccs/bin/
in your ${cc:-cc} command.  (Note that the trailing "/" is required.)

END
	    # Apparently not needed, at least for as 2.7 and later.
	    # cc="${cc:-cc} -B/usr/ccs/bin/"
	fi

	# See if ld(1) is GNU ld(1).  GNU ld(1) might not 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
	    # Ok, gcc directly calls the Solaris /usr/ccs/bin/ld.
	    :
	elif echo "$verbose" | grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
	    # Hmm.  gcc doesn't call /usr/ccs/bin/ld directly, but it
	    # does appear to be using it eventually.  egcs-1.0.3's ld
	    # wrapper does this.
	    # Most Solaris versions of ld I've seen contain the magic
	    # string used in the grep.
	    :
	elif echo "$verbose" | grep "Solaris Link Editors" >/dev/null 2>&1; then
	    # However some Solaris 8 versions prior to ld 5.8-1.286 contain
	    # this string instead.
	    :
	else
	    # No evidence yet of /usr/ccs/bin/ld.  Some versions
	    # of egcs's ld wrapper call /usr/ccs/bin/ld in turn but
	    # apparently don't reveal that unless you pass in -V.
	    # (This may all depend on local configurations too.)

	    # Recompute verbose with -Wl,-v to find GNU ld if present
	    verbose=`${cc:-cc} -Wl,-v -o try try.c 2>&1 | grep /ld 2>&1`

	    myld=`echo $verbose | 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.
	    # Thus myld is something like /opt/gnu/sparc-sun-solaris2.5/bin/ld

	    # Allow that $myld may be '', due to changes in gcc's output 
	    if ${myld:-ld} -V 2>&1 |
		grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
		# Ok, /usr/ccs/bin/ld eventually does get called.
		:
	    elif ${myld:-ld} -V 2>&1 |
		grep "Solaris Link Editors" >/dev/null 2>&1; then
		# Ok, /usr/ccs/bin/ld eventually does get called.
		:
	    else
		echo "Found GNU ld='$myld'" >&4
		cat <<END >&2

NOTE: You are using GNU ld(1).  GNU ld(1) might not build Perl.  If you
have trouble, you can use /usr/ccs/bin/ld by including -B/usr/ccs/bin/
in your ${cc:-cc} command.  (Note that the trailing "/" is required.)

I will try to use GNU ld by passing in the -Wl,-E flag, but if that
doesn't work, you should use -B/usr/ccs/bin/ instead.

END
		ccdlflags="$ccdlflags -Wl,-E"
		lddlflags="$lddlflags -Wl,-E -G"
	    fi
	fi

else
	#
	# Not using gcc.
	#
	cat > try.c << 'EOM'
#include <stdio.h>
int main() {
#ifdef __SUNPRO_C
	printf("workshop\n");
#else
	printf("\n");
#endif
return(0);
}
EOM
	tryworkshopcc="${cc:-cc} try.c -o try"
	if $tryworkshopcc >/dev/null 2>&1; then
		cc_name=`./try`
		if test "$cc_name" = "workshop"; then
			ccversion="`${cc:-cc} -V 2>&1|sed -n -e '1s/^cc: //p'`"
			if test ! "$use64bitall_done"; then
				loclibpth="/usr/lib /usr/ccs/lib `$getworkshoplibs` $loclibpth"
			fi
		fi
	fi

	# See if as(1) is GNU as(1).  GNU might not 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) might 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) might not 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
	# Sun's ld always emits the "Software Generation Utilities" string.
	if ld -V 2>&1 | grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
	    # Ok, ld is /usr/ccs/bin/ld.
	    :
	else
	    cat <<END >&2

NOTE: You are apparently using GNU ld(1).  GNU ld(1) might not build Perl.
You should 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 core
EOCBU

cat > UU/usethreads.cbu <<'EOCBU'
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
	ccflags="-D_REENTRANT $ccflags"

	# -lpthread overrides some lib C functions, so put it before c.
	set `echo X "$libswanted "| sed -e "s/ c / pthread c /"`
	shift
	libswanted="$*"

	# sched_yield is available in the -lrt library.  However,
	# we can also pick up the equivalent yield() function in the
	# normal C library.  To avoid pulling in unnecessary
	# libraries, we'll normally avoid sched_yield()/-lrt and
	# just use yield().  However, we'll honor a command-line
	# override : "-Dsched_yield=sched_yield".
	# If we end up using sched_yield, we're going to need -lrt.
	sched_yield=${sched_yield:-yield}
	if test "$sched_yield" = "sched_yield"; then
	    set `echo X "$libswanted "| sed -e "s/ pthread / rt pthread /"`
	    shift
	    libswanted="$*"
	fi

	# On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
	# when linked with the threads library, such that whatever positive
	# value you pass to siglongjmp(), sigsetjmp() returns 1.
	# Thanks to Simon Parsons <S.Parsons at 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>

	int main()
	{
	    sigjmp_buf env;
	    int ret;

	    ret = sigsetjmp(env, 1);
	    if (ret) { return ret == 2; }
	    siglongjmp(env, 2);
	}
EOM
	if test "`arch`" = i86pc -a `uname -r` = 5.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

	# These prototypes should be visible since we using
	# -D_REENTRANT, but that does not seem to work.
	# It does seem to work for getnetbyaddr_r, weirdly enough,
	# and other _r functions. (Solaris 8)

	d_ctermid_r_proto="$define"
	d_gethostbyaddr_r_proto="$define"
	d_gethostbyname_r_proto="$define"
	d_getnetbyname_r_proto="$define"
	d_getprotobyname_r_proto="$define"
	d_getprotobynumber_r_proto="$define"
	d_getservbyname_r_proto="$define"
	d_getservbyport_r_proto="$define"

	# Ditto. (Solaris 7)
	d_readdir_r_proto="$define"
	d_readdir64_r_proto="$define"
	d_tmpnam_r_proto="$define"
	d_ttyname_r_proto="$define"

	;;
esac
EOCBU

cat > UU/uselargefiles.cbu <<'EOCBU'
# This script UU/uselargefiles.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use large files.
case "$uselargefiles" in
''|$define|true|[yY]*)

# Keep these in the left margin.
ccflags_uselargefiles="`getconf LFS_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf LFS_LDFLAGS 2>/dev/null`"
libswanted_uselargefiles="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"

    ccflags="$ccflags $ccflags_uselargefiles"
    ldflags="$ldflags $ldflags_uselargefiles"
    libswanted="$libswanted $libswanted_uselargefiles"
    ;;
esac
EOCBU

# This is truly a mess.
case "$usemorebits" in
"$define"|true|[yY]*)
	use64bitint="$define"
	uselongdouble="$define"
	;;
esac

if test `uname -p` = sparc -o `uname -p` = i386; then
    cat > UU/use64bitint.cbu <<'EOCBU'
# This script UU/use64bitint.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use 64 bit integers.
case "$use64bitint" in
"$define"|true|[yY]*)
	    case "`uname -r`" in
	    5.[0-4])
		cat >&4 <<EOM
Solaris `uname -r|sed -e 's/^5\./2./'` does not support 64-bit integers.
You should upgrade to at least Solaris 2.5.
EOM
		exit 1
		;;
	    esac

# gcc-2.8.1 on Solaris 8 with -Duse64bitint fails op/pat.t test 822
# if we compile regexec.c with -O.  Turn off optimization for that one
# file.  See hints/README.hints , especially 
# =head2 Propagating variables to config.sh, method 3.
#  A. Dougherty  May 24, 2002
    case "${gccversion}-${optimize}" in
    2.8*-O*)
	# Honor a command-line override (rather unlikely)
	case "$regexec_cflags" in
	'') echo "Disabling optimization on regexec.c for gcc $gccversion" >&4
	    regexec_cflags='optimize='
	    echo "regexec_cflags='optimize=\"\"'" >> config.sh 
	    ;;
	esac
	;;
    esac
    ;;
esac
EOCBU

    cat > UU/use64bitall.cbu <<'EOCBU'
# This script UU/use64bitall.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to be maximally 64 bitty.
case "$use64bitall-$use64bitall_done" in
"$define-"|true-|[yY]*-)
	    case "`uname -r`" in
	    5.[0-6])
		cat >&4 <<EOM
Solaris `uname -r|sed -e 's/^5\./2./'` does not support 64-bit pointers.
You should upgrade to at least Solaris 2.7.
EOM
		exit 1
		;;
	    esac
	    processor=`uname -p`;
	    if test "$processor" = sparc; then
		libc='/usr/lib/sparcv9/libc.so'
		if test ! -f $libc; then
		    cat >&4 <<EOM

I do not see the 64-bit libc, $libc.
Cannot continue, aborting.

EOM
		    exit 1
		fi
	    fi
	    case "${cc:-cc} -v 2>/dev/null" in
	    *gcc*)
		echo 'int main() { return 0; }' > try.c
		case "`${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not supported by this configuration'`" in
		*"m64 is not supported"*)
		    cat >&4 <<EOM

Full 64-bit build is not supported by this gcc configuration.
Check http://gcc.gnu.org/ for the latest news of availability
of gcc for 64-bit Sparc.

Cannot continue, aborting.

EOM
		    exit 1
		    ;;
		esac
		if test "$processor" = sparc; then
		    loclibpth="/usr/lib/sparcv9 $loclibpth"
		    ccflags="$ccflags -mcpu=v9"
		fi 
		ccflags="$ccflags -m64"
		if test $processor = sparc -a X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then
		    # This adds in -Wa,-xarch=v9.  I suspect that's superfluous,
		    # since the -m64 above should do that already.  Someone
		    # with gcc-3.x.x, please test with gcc -v.   A.D. 20-Nov-2003
		    ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
		fi
		ldflags="$ldflags -m64"
		lddlflags="$lddlflags -G -m64"
		;;
	    *)
		ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
		ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
		lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
		echo "int main() { return(0); } " > try.c
		tryworkshopcc="${cc:-cc} try.c -o try $ccflags"
		if test "$processor" = sparc; then
		    loclibpth="/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 $loclibpth"
		fi
		loclibpth="`$getworkshoplibs` $loclibpth"
		;;
	    esac
	    unset processor
	    use64bitall_done=yes
	    archname64=64
	    ;;
esac
EOCBU

    # Actually, we want to run this already now, if so requested,
    # because we need to fix up things right now.
    case "$use64bitall" in
    "$define"|true|[yY]*)
	# CBUs expect to be run in UU
	cd UU; . ./use64bitall.cbu; cd ..
	;;
    esac
fi

cat > UU/uselongdouble.cbu <<'EOCBU'
# This script UU/uselongdouble.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use long doubles.
case "$uselongdouble" in
"$define"|true|[yY]*)
	if test "$cc_name" = "workshop"; then
		cat > try.c << 'EOM'
#include <sunmath.h>
int main() { (void) powl(2, 256); return(0); }
EOM
		if ${cc:-cc} try.c -lsunmath -o try > /dev/null 2>&1 && ./try; then
			libswanted="$libswanted sunmath"
		fi
	else
		cat >&4 <<EOM

The Sun Workshop math library is either not available or not working,
so I do not know how to do long doubles, sorry.
I'm therefore disabling the use of long doubles.
EOM
		uselongdouble="$undef"
	fi
	;;
esac
EOCBU

#
# If unsetenv is available, use it in conjunction with PERL_USE_SAFE_PUTENV to
# work around Sun bugid 6333830.  Both unsetenv and 6333830 only appear in
# Solaris 10, so we don't need to probe explicitly for an OS version.  We have
# to append this test to the end of config.over as it needs to run after
# Configure has probed for unsetenv, and this hints file is processed before
# that has happened.
#
cat >> config.over <<'EOOVER'
if test "$d_unsetenv" = "$define" -a \
    `expr "$ccflags" : '.*-D_PERL_USE_SAFE_PUTENV'` -eq 0; then
        ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
fi
EOOVER

rm -f try.c try.o try a.out

--- NEW FILE: dcosx.sh ---
# hints/dcosx.sh
# Last modified:  Thu Jan 16 11:38:12 EST 1996
# Stephen Zander  <stephen.zander at 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'

--- NEW FILE: fps.sh ---
ccflags="$ccflags -J"

--- NEW FILE: irix_6_0.sh ---
# irix_6.sh
# from Krishna Sethuraman, krishna at 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 at 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="$*"

case "$usethreads" in
$define|true|[yY]*)
        cat >&4 <<EOM
IRIX `uname -r` does not support POSIX threads.
You should upgrade to at least IRIX 6.2 with pthread patches.
EOM
	exit 1
	;;
esac

case " $use64bits $use64bitint $use64bitall " in
*" $define "*|*" true "*|*" [yY] "*)
	cat >&4 <<EOM
IRIX `uname -r` does not support 64-bit types.
You should upgrade to at least IRIX 6.2.
Cannot continue, aborting.
EOM
	exit 1
esac


--- NEW FILE: svr5.sh ---
# svr5 hints, System V Release 5.x (UnixWare 7, OpenUNIX 8)
# mods after mail fm Andy Dougherty
# Reworked by hops at sco.com Sept/Oct 1999 for UW7.1 platform support 
#   Boyd Gerber, gerberb at zenez.com 1999/09/21 for threads support.
# Originally taken from svr4 hints.sh  21-Sep-98 hops at sco.com
# which was version of 1996/10/25 by Tye McQueen, tye at metronet.com

# Use Configure -Dusethreads to enable threads.
# Use Configure -Dcc=gcc to use gcc.
case "$cc" in
*gcc*)
    #  "$gccversion" not set yet
    if [ "X$gccversion" = "X" ]; then
	# Done too late in Configure if hinted
	gccversion=`$cc --version | sed 's/.*(GCC) *//'`
    fi
    case $gccversion in
    *2.95*)
         ccflags='-fno-strict-aliasing'
        # More optimisation provided in gcc-2.95 causes miniperl to segv.
        # -fno-strict-aliasing is supposed to correct this but 
        # if it doesn't and you get segv when the build runs miniperl then 
        # disable optimisation as below
        #  optimize=' '
        ;;
    esac
    ;;  
esac

# Hardwire the processor to 586 for consistancy with autoconf
# archname='i586-svr5'
#  -- seems this is generally disliked by perl porters so leave it to float

# Our default setup excludes anything from /usr/ucblib (and consequently dbm)
# as later modules assume symbols found are available in shared libs 
# On svr5 these are static archives which causes problems for
# dynamic modules loaded later (and ucblib is a bad dream anyway)
# 
# However there is a dbm library built from the ucb sources outside ucblib
# at http://www.sco.com/skunkware (installing into /usr/local) so if we
# detect this we'll use it. You can change the default
# (to allow ucblib and its dbm or disallowing non ucb dbm) by 
# changing 'want_*' config values below to '' to disable or otherwise to enable

#    Leave leading tabs so Configure doesn't propagate variables to config.sh

	want_ucb=''		# don't use anything from /usr/ucblib - icky
	want_dbm='yes'		# use dbm if can find library in /usr/local/lib
	want_gdbm='yes'		# use gdbm if can find library in /usr/local/lib
	want_udk70=''		# link with old static libc pieces
            # link with udk70 if building on 7.1 abd want resulting binary 
            # to run on uw7.0* - it will link in referenced static symbols 
            # of libc that are (now) in the shared libc.so on 7.1 but were 
            # not there in 7.0.
            # There are still scenarios where this is still insufficient so 
            # overall it is preferable to get ptf7051e 
            #   ftp://ftp.sco.com/SLS/ptf7051e.Z
            # installed on any/all 7.0 systems and leave the above unset.

if [ "$want_ucb" ] ; then 
    ldflags= '-L/usr/ucblib'
    ccflags='-I/usr/ucbinclude'
    # /usr/ccs/include and /usr/ccs/lib are used implicitly by cc as reqd
else
    libswanted=`echo " $libswanted " | sed -e 's/ ucb / /'`
    glibpth=`echo " $glibpth " | sed -e 's/ \/usr\/ucblib / /'`

    # If see libdbm in /usr/local and not overidden assume its the 
    # non ucblib rebuild from skunkware  and use it
    if [ ! -f /usr/local/lib/libdbm.so -o ! "$want_dbm" ] ; then
        i_dbm='undef'
        libswanted=`echo " $libswanted " | sed -e 's/ dbm / /'`
    fi
fi

if [ ! "$want_gdbm" ] ; then 
   i_gdbm='undef'
   libswanted=`echo " $libswanted " | sed -e 's/ gdbm / /'`
fi


# Don't use problematic libraries:
#   libmalloc.a - Probably using Perl's malloc() anyway.
#   libc:  on UW7 don't want -lc explicitly as native cc gives warnings/errors
libswanted=`echo " $libswanted " | sed -e 's/ malloc / /' -e 's/ c / /'`

# remove /shlib and /lib from library search path as both symlink to /usr/lib
# where runtime shared libc is 
glibpth=`echo " $glibpth " | sed -e 's/ \/shlib / /' -e 's/ \/lib / /'`

# Don't use BSD emulation pieces (/usr/ucblib) regardless
# these would probably be autonondetected anyway but ...
gconvert_preference='gcvt sprintf'	# Try gcvt() before gconvert().
d_bcopy='undef' d_bcmp='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'  # -- in /usr/lib/libc.so.1

# 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 "Your csh has a broken 'glob', disabling..." >&2
    d_csh='undef'
fi

# Unixware-specific problems.  UW7 give correctname with uname -s
# UnixWare has a broken csh.  (This might already be detected above).
# 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 -s 2>&1`

if [ "$uw_isuw" = "UnixWare" -o "$uw_isuw" = "OpenUNIX" ]; then
   case $uw_ver in
   8.*|7.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'

        d_bcopy='define'    # In /usr/lib/libc.so.1
        d_setregid='define' #  " 
        d_setreuid='define' #  " 

        if [ -f /usr/ccs/lib/libcudk70.a -a "$want_udk70" ] ; then
            libswanted=" $libswanted cudk70"
        fi
	;;
   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.

###############################################################
# Dynamic loading section: Is default so it should just happen.
# set below to explicitly force.
# usedl='define'
# dlext='so'
# dlsrc='dl_dlopen.xs'
#
# ccdlflags : must tell the linker to export all global symbols
# cccdlflags: must tell the compiler to generate relocatable code
# lddlflags : must tell the linker to output a shared library

# use shared perl lib if the user doesn't choose otherwise
if test "$uw_isuw" != "OpenUNIX"; then
    if test "x$useshrplib" = "x"; then
	useshrplib='true'
    fi
fi

case "$cc" in
       *gcc*)
           ccdlflags='-Xlinker -Bexport '
           cccdlflags='-fpic'
           lddlflags='-G '
        ;;

        *)
           ccdlflags='-Wl,-Bexport'
           cccdlflags='-Kpic'
           lddlflags='-G -Wl,-Bexport'
        ;;
esac

############################################################################
# Thread support
# use Configure -Dusethreads to enable
# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
        ccflags="$ccflags"
        shift
        libswanted="$libswanted $*"
  case "$cc" in
       *gcc*)
           ccflags="-D_REENTRANT $ccflags -fpic -pthread"
           cccdlflags='-fpic'
           lddlflags='-pthread -G '
        ;;
        *)
           ccflags="-D_REENTRANT $ccflags -KPIC -Kthread"
           ccdlflags='-Kthread -Wl,-Bexport'
           cccdlflags='-KPIC -Kthread'
           lddlflags='-G -Kthread -Wl,-Bexport '
     	   ldflags='-Kthread'
        ;;
  esac
esac
EOCBU


d_suidsafe='define'	# "./Configure -d" can't figure this out easily

################## final caveat msgs to builder ###############
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.

If you are using shared libraries from /usr/local/lib
for libdbm or libgdbm you may need to set
	LD_RUN_PATH=/usr/local/lib; export LD_RUN_PATH
in order for Configure to compile the simple test program

EOM

--- NEW FILE: aix_4.sh ---
# hints/aix.sh
#
# Split off from aix.sh on 04 Feb 2004 by H.Merijn Brand
#
# AIX 4.1 hints thanks to Christopher Chan-Nui <channui at austin.ibm.com>.
# AIX 4.1 pthreading by Christopher Chan-Nui <channui at austin.ibm.com> and
#	  Jarkko Hietaniemi <jhi at iki.fi>.
# AIX 4.3.x LP64 build by Steven Hirsch <hirschs at btv.ibm.com>
# Merged on Mon Feb  6 10:22:35 EST 1995 by
#   Andy Dougherty  <doughera at lafayette.edu>

# Contact dfavor at corridor.com for any of the following:
#
#    - AIX 43x and above support
#    - gcc + threads support
#    - socks support
#
# Apr 99 changes:
#
#    - use nm in AIX 43x and above
#    - gcc + threads now builds
#    [(added support for socks) Jul 99 SOCKS support rewritten]
#
# Notes:
#
#    - shared libperl support is tricky. if ever libperl.a ends up
#      in /usr/local/lib/* it can override any subsequent builds of
#      that same perl release. to make sure you know where the shared
#      libperl.a is coming from do a 'dump -Hv perl' and check all the
#      library search paths in the loader header.
#
#      it would be nice to warn the user if a libperl.a exists that is
#      going to override the current build, but that would be complex.
#
#      better yet, a solid fix for this situation should be developed.
#

# Configure finds setrgid and setruid, but they're useless.  The man
# pages state:
#    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

case "$usemymalloc" in
    '')  usemymalloc='n' ;;
    esac

# Intuiting the existence of system calls under AIX is difficult,
# at best; the safest technique is to find them empirically.

# AIX 4.3.* and above default to letting Configure test if nm
# extraction will work.
case "$osvers" in
    4.1.*|4.2.*)
	case "$usenm" in
	    '') usenm='undef' ;;
	    esac
	case "$usenativedlopen" in
	    '') usenativedlopen='false' ;;
	    esac
	;;
    *)
	case "$usenativedlopen" in
	    '') usenativedlopen='true' ;;
	    esac
	;;
    esac

so="a"
# AIX itself uses .o (libc.o) but we prefer compatibility
# with the rest of the world and with rest of the scripting
# languages (Tcl, Python) and related systems (SWIG).
# Stephanie Beals <bealzy at us.ibm.com>
dlext="so"

# Take possible hint from the environment.  If 32-bit is set in the
# environment, we can override it later.  If set for 64, the
# 'sizeof' test sees a native 64-bit architecture and never looks back.
case "$OBJECT_MODE" in
    32)
	cat >&4 <<EOF

You have OBJECT_MODE=32 set in the environment.
I take this as a hint you do not want to
build for a 64-bit address space. You will be
given the opportunity to change this later.
EOF
	;;
    64)
	cat >&4 <<EOF

You have OBJECT_MODE=64 set in the environment.
This forces a full 64-bit build.  If that is
not what you intended, please terminate this
program, unset it and restart.
EOF
	;;
    *)  ;;
    esac

# uname -m output is too specific and not appropriate here
case "$archname" in
    '') archname="$osname" ;;
    esac

cc=${cc:-cc}
ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE"
case "$cc" in
    *gcc*) ;;
    *) ccflags="$ccflags -qmaxmem=-1 -qnoansialias" ;;
    esac
nm_opt='-B'

# These functions don't work like Perl expects them to.
d_setregid='undef'
d_setreuid='undef'

# Changes for dynamic linking by Wayne Scott <wscott at ichips.intel.com>
#
# Tell perl which symbols to export for dynamic linking.
cccdlflags='none'	# All AIX code is position independent
   cc_type=xlc		# do not export to config.sh
case "$cc" in
    *gcc*)
	cc_type=gcc
	ccdlflags='-Xlinker'
	if [ "X$gccversion" = "X" ]; then
	    # Done too late in Configure if hinted
	    gccversion=`$cc --version | sed 's/.*(GCC) *//'`
	    fi
	;;

    *)  ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | head -1 | awk '{print $1,$2}'`
	case "$ccversion" in
	    '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$'`
		;;

	    *.*.*.*.*.*.*)		# Ahhrgg, more than one C compiler installed
		first_cc_path=`which ${cc:-cc}`
		case "$first_cc_path" in
		    *vac*)
			cc_type=vac ;;
		    /usr/bin/cc)		# Check the symlink
			if [ -h $first_cc_path ] ; then
			    ls -l $first_cc_path > reflect
			    if grep -i vac reflect >/dev/null 2>&1 ; then
				cc_type=vac
				fi
			    rm -f reflect
			    fi
			;;
		    esac
		ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | head -1`
		;;

	    vac*.*.*.*)
		cc_type=vac
		;;
	    esac
	ccversion=`echo "$ccversion" | awk '{print $2}'`

	case "$ccversion" in
	    3.6.6.0)
		optimize='none'
		;;

	    4.4.0.0|4.4.0.1|4.4.0.2)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is outdated.
***
*** Please upgrade to at least 4.4.0.3.
***
EOF
		;;

	    5.0.0.0)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is known to have too many optimizer
*** bugs to compile a working Perl.
***
*** Consider upgrading your C compiler, or getting the GNU cc (gcc).
***
*** Cannot continue, aborting.
EOF
		exit 1
		;;

	    5.0.1.0)
		cat >&4 <<EOF
***
*** This C compiler ($ccversion) is known to have optimizer problems
*** when compiling regcomp.c.
***
*** Disabling optimization for that file but consider upgrading
*** your C compiler.
***
EOF
regcomp_cflags='optimize='
		;;
	    esac
	case "$ccversion" in
	    5*) usemallocwrap='n' ;; # causes panic in miniperl
	    esac
    esac
# the required -bE:$installarchlib/CORE/perl.exp is added by
# libperl.U (Configure) later.

# 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?
if test $usenativedlopen = 'true' ; then
    lddlflags="$lddlflags -bhalt:4 -bexpall -G -bnoentry -lc"
else
    lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
    fi

case "$use64bitall" in
    $define|true|[yY]*) use64bitint="$define" ;;
    esac

case "$usemorebits" in
    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
    esac

case $cc_type in
    vac|xlc)
	case "$uselongdouble" in
	    $define|true|[yY]*)
		ccflags="$ccflags -qlongdouble"
		libswanted="c128 $libswanted"
		lddlflags=`echo "$lddlflags " | sed -e 's/ -lc / -lc128 -lc /'`
		;;
	    esac
    esac

case "$cc" in
    *gcc*) ;;
    cc*|xlc*) # cc should've been set by line 116 or so if empty.
	if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then
	    case ":$PATH:" in
		*:/usr/vac/bin:*) ;;
		*)  if test ! -x /QOpenSys/usr/bin/$cc; then
			# The /QOpenSys/usr/bin/$cc saves us if we are
			# building natively in OS/400 PASE.
			cat >&4 <<EOF

***
*** You either implicitly or explicitly specified an IBM C compiler,
*** but you do not seem to have one in /usr/bin, but you seem to have
*** the VAC installed in /usr/vac, but you do not have the /usr/vac/bin
*** in your PATH.  I suggest adding that and retrying Configure.
***
EOF
			exit 1
			fi
			;;
		esac
	    fi
	;;
    esac

case "$ldlibpthname" in
    '') ldlibpthname=LIBPATH ;;
    esac

# AIX 4.2 (using latest patchlevels on 20001130) has a broken bind
# library (getprotobyname and getprotobynumber are outversioned by
# the same calls in libc, at least for xlc version 3...
case "`oslevel`" in
    4.2.1.*)
        case "$ccversion" in    # Don't know if needed for gcc
	    3.1.4.*|5.0.2.*)    # libswanted "bind ... c ..." => "... c bind ..."
	        set `echo X "$libswanted "| sed -e 's/ bind\( .*\) \([cC]\) / \1 \2 bind /'`
	        shift
	        libswanted="$*"
	        ;;
	    esac
        ;;
    esac

# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
    $define|true|[yY]*)
	d_drand48_r='undef'
	d_endgrent_r='undef'
	d_endpwent_r='undef'
	d_getgrent_r='undef'
	d_getpwent_r='undef'
	d_random_r='undef'
	d_setgrent_r='undef'
	d_setpwent_r='undef'
	d_srand48_r='undef'
	d_strerror_r='undef'

	ccflags="$ccflags -DNEED_PTHREAD_INIT"
	case "$cc" in
	    *gcc*)
		ccflags="-D_THREAD_SAFE $ccflags"
		;;
	    cc_r) ;;
	    cc|xl[cC]|xl[cC]_r)
		echo >&4 "Switching cc to cc_r because of POSIX threads."
		# xlc_r has been known to produce buggy code in AIX 4.3.2.
		# (e.g. pragma/overload core dumps)	 Let's suspect xlC_r, too.
		# --jhi at iki.fi
		cc=cc_r

		case "`oslevel`" in
		    4.2.1.*) i_crypt='undef' ;;
		    esac
		;;
	    '')
		cc=cc_r
		;;
	    *)
		cat >&4 <<EOM
*** For pthreads you should use the AIX C compiler cc_r.
*** (now your compiler was set to '$cc')
*** Cannot continue, aborting.
EOM
		exit 1
		;;
	    esac

	# c_rify libswanted.
	set `echo X "$libswanted "| sed -e 's/ \([cC]\) / \1_r /g'`
	shift
	libswanted="$*"
	# c_rify lddlflags.
	set `echo X "$lddlflags "| sed -e 's/ \(-l[cC]\) / \1_r /g'`
	shift
	lddlflags="$*"

	# Insert pthreads to libswanted, before any libc or libC.
	set `echo X "$libswanted "| sed -e 's/ \([cC]_r\) / pthreads \1 /'`
	shift
	libswanted="$*"
	# Insert pthreads to lddlflags, before any libc or libC.
	set `echo X "$lddlflags " | sed -e 's/ \(-l[cC]_r\) / -lpthreads \1 /'`
	shift
	lddlflags="$*"
	;;
    esac
EOCBU

# This script UU/uselargefiles.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use large files.
cat > UU/uselargefiles.cbu <<'EOCBU'
case "$uselargefiles" in
    ''|$define|true|[yY]*)
	# Configure should take care of use64bitint and use64bitall being
	# defined before uselargefiles.cbu is consulted.
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
	else
# Keep these at the left margin.
ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
	    fi

	# _Somehow_ in AIX 4.3.1.0 the above getconf call manages to
	# insert(?) *something* to $ldflags so that later (in Configure) evaluating
	# $ldflags causes a newline after the '-b64' (the result of the getconf).
	# (nothing strange shows up in $ldflags even in hexdump;
	#  so it may be something (a bug) in the shell, instead?)
	# Try it out: just uncomment the below line and rerun Configure:
# echo >&4 "AIX 4.3.1.0 $ldflags_uselargefiles mystery" ; exit 1
	# Just don't ask me how AIX does it, I spent hours wondering.
	# Therefore the line re-evaluating ldflags_uselargefiles: it seems to fix
	# the whatever it was that AIX managed to break. --jhi
	ldflags_uselargefiles="`echo $ldflags_uselargefiles`"
	if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	else
# Keep this at the left margin.
libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	    fi

	case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in
	    '') ;;
	    *)  ccflags="$ccflags $ccflags_uselargefiles"
	        ldflags="$ldflags $ldflags_uselargefiles"
	        libswanted="$libswanted $libswanted_uselargefiles"
	        ;;
	    esac

	case "$gccversion" in
	    '') ;;
	    *)  # Remove xlc-specific -qflags.
	        ccflags="`echo $ccflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
	        ldflags="`echo $ldflags | sed -e 's@ -q[^ ]*@ @g' -e 's@^-q[^ ]* @@g'`"
	        # Move xlc-specific -bflags.
	        ccflags="`echo $ccflags | sed -e 's@ -b@ -Wl,-b at g'`"
	        ldflags="`echo ' '$ldflags | sed -e 's@ -b@ -Wl,-b at g'`"
	        lddlflags="`echo ' '$lddlflags | sed -e 's@ -b@ -Wl,-b at g'`"
		lddlflags="`echo ' '$lddlflags | sed -e 's@ -G @ -Wl,-G @g'`"
	        ld='gcc'
	        echo >&4 "(using ccflags   $ccflags)"
	        echo >&4 "(using ldflags   $ldflags)"
	        echo >&4 "(using lddlflags $lddlflags)"
	        ;;
	    esac
	;;
    esac
EOCBU

# This script UU/use64bitint.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use 64 bit integers.
cat > UU/use64bitint.cbu <<'EOCBU'
case "$use64bitint" in
    $define|true|[yY]*)
	case "`oslevel`" in
	    4.[012].*)
		cat >&4 <<EOM
AIX `oslevel` does not support 64-bit interfaces.
You should upgrade to at least AIX 4.3.
EOM
		exit 1
		;;
	    esac
	;;
    esac
EOCBU

cat > UU/use64bitall.cbu <<'EOCBU'
# This script UU/use64bitall.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to be maximally 64-bitty.
case "$use64bitall" in
    $define|true|[yY]*)
	case "`oslevel`" in
	    4.[012].*)
		cat >&4 <<EOM
AIX `oslevel` does not support 64-bit interfaces.
You should upgrade to at least AIX 4.3.
EOM
		exit 1
		;;
	    esac
	echo " "
	echo "Checking the CPU width of your hardware..." >&4
	$cat >size.c <<EOCP
#include <stdio.h>
#include <sys/systemcfg.h>
int main (void)
{
    printf ("%d\n", _system_configuration.width);
    return (0);
    }
EOCP
	set size
	if eval $compile_ok; then
	    qacpuwidth=`./size`
	    echo "You are running on $qacpuwidth bit hardware."
	else
	    dflt="32"
	    echo " "
	    echo "(I can't seem to compile the test program.  Guessing...)"
	    rp="What is the width of your CPU (in bits)?"
	    . ./myread
	    qacpuwidth="$ans"
	    fi
	$rm -f size.c size
	case "$qacpuwidth" in
	    32*)
		cat >&4 <<EOM
Bzzzt! At present, you can only perform a
full 64-bit build on a 64-bit machine.
EOM
		exit 1
		;;
	    esac

	qacflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
	qaldflags="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
	# See jhi's comments above regarding this re-eval.  I've
	# seen similar weirdness in the form of:
	#
	# 1506-173 (W) Option lm is not valid.  Enter xlc for list of valid options.
	#
	# error messages from 'cc -E' invocation. Again, the offending
	# string is simply not detectable by any means.  Since it doesn't
	# do any harm, I didn't pursue it. -- sh
	qaldflags="`echo $qaldflags`"
	qalibs="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
	# -q32 and -b32 may have been set by uselargefiles or user.
	# Remove them.
	ccflags="`echo $ccflags | sed -e 's at -q32@@'`"
	ldflags="`echo $ldflags | sed -e 's at -b32@@'`"
	# Tell archiver to use large format.  Unless we remove 'ar'
	# from 'trylist', the Configure script will just reset it to 'ar'
	# immediately prior to writing config.sh.  This took me hours
	# to figure out.
	trylist="`echo $trylist | sed -e 's@^ar @@' -e 's@ ar @ @g' -e 's@ ar$@@'`"
	ar="ar -X64"
	nm_opt="-X64 $nm_opt"
	# Note: Placing the 'qacflags' variable into the 'ldflags' string
	# is NOT a typo.  ldflags is passed to the C compiler for final
	# linking, and it wants -q64 (-b64 is for ld only!).
	case "$qacflags$qaldflags$qalibs" in
	    '') ;;
	    *)  ccflags="$ccflags $qacflags"
	        ldflags="$ldflags $qacflags"
	        lddlflags="$qaldflags $lddlflags"
	        libswanted="$libswanted $qalibs"
	        ;;
	    esac
	case "$ccflags" in
	    *-DUSE_64_BIT_ALL*) ;;
	    *) ccflags="$ccflags -DUSE_64_BIT_ALL";;
	    esac
	case "$archname64" in
	    ''|64*) archname64=64all ;;
	    esac
	longsize="8"
	qacflags=''
	qaldflags=''
	qalibs=''
	qacpuwidth=''
	;;
    esac
EOCBU

if test $usenativedlopen = 'true' ; then
    ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
    case "$cc" in
        *gcc*) ldflags="$ldflags -Wl,-brtl" ;;
        *)     ldflags="$ldflags -brtl" ;;
        esac
else
    case `oslevel` in
	4.2.*)	;;	# libC_r has broke gettimeofday
	*)  # If the C++ libraries, libC and libC_r, are available we will
	    # prefer them over the vanilla libc, because the libC contain
	    # loadAndInit() and terminateAndUnload() which work correctly
	    # with C++ statics while libc load() and unload() do not. See
	    # ext/DynaLoader/dl_aix.xs. The C-to-C_r switch is done by
	    # usethreads.cbu, if needed.
	    if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
		# Cify libswanted.
		set `echo X "$libswanted "| sed -e 's/ c / C c /'`
		shift
		libswanted="$*"
		# Cify lddlflags.
		set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
		shift
		lddlflags="$*"
		fi
	esac
    fi

case "$PASE" in
    define)
	case "$prefix" in
	    '') prefix=/QOpenSys/perl ;;
	    esac
	cat >&4 <<EOF

***
*** You seem to be compiling in AIX for the OS/400 PASE environment.
*** I'm not going to use the AIX bind, nsl, and possible util libraries, then.
*** I'm also not going to install perl as /usr/bin/perl.
*** Perl will be installed under $prefix.
*** For instructions how to install this build from AIX to PASE,
*** see the file README.os400.  Accept the "aix" for the question
*** about "Operating system name".
***
EOF
	set `echo " $libswanted " | sed -e 's@ bind @ @' -e 's@ nsl @ @' -e 's@ util @ @'`
	shift
	libswanted="$*"
	installusrbinperl="$undef"

	# V5R1 doesn't have this (V5R2 does), without knowing
	# which one we have it's safer to be pessimistic.
	# Cwd will work fine even without fchdir(), but if
	# V5R1 tries to use code compiled assuming fchdir(),
	# lots of grief will issue forth from Cwd.
	case "$d_fchdir" in
	    '') d_fchdir="$undef" ;;
	    esac
	;;
    esac

# EOF

--- NEW FILE: freebsd.sh ---
# Original based on info from
# Carl M. Fongheiser <cmf at ins.infonet.net>
# Date: Thu, 28 Jul 1994 19:17:05 -0500 (CDT)
#
# Additional 1.1.5 defines from 
# Ollivier Robert <Ollivier.Robert at keltia.frmug.fr.net>
# Date: Wed, 28 Sep 1994 00:37:46 +0100 (MET)
#
# Additional 2.* defines from
# Ollivier Robert <Ollivier.Robert at 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 at keltia.frmug.fr.net>
# Date: Fri, 12 May 1995 14:30:38 +0200 (MET DST)
#
# Additional 2.2 defines from
# Mark Murray <mark at 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 at lafayette.edu>
# Date: Tue Mar 10 16:07:00 EST 1998
#
# Support for FreeBSD/ELF
# Ollivier Robert <roberto at keltia.freenix.fr>
# Date: Wed Sep  2 16:22:12 CEST 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'
	case "$usemymalloc" in
	    "") usemymalloc='n'
	        ;;
	esac
	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'
	case "$usemymalloc" in
	    "") usemymalloc='n'
	        ;;
	esac
	libswanted=`echo $libswanted | sed 's/ malloc / /'`
	libswanted=`echo $libswanted | sed 's/ bind / /'`
	# iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier.
	libswanted=`echo $libswanted | sed 's/ iconv / /'`
	d_setregid='define'
	d_setreuid='define'
	d_setegid='define'
	d_seteuid='define'
	# d_dosuid='define' # Obsolete.
	;;
*)	usevfork='true'
	case "$usemymalloc" in
	    "") usemymalloc='n'
	        ;;
	esac
	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*) ;;

1*|2*)	cccdlflags='-DPIC -fpic'
	lddlflags="-Bshareable $lddlflags"
	;;

*)
        objformat=`/usr/bin/objformat`
        if [ x$objformat = xelf ]; then
            libpth="/usr/lib /usr/local/lib"
            glibpth="/usr/lib /usr/local/lib"
            ldflags="-Wl,-E "
            lddlflags="-shared "
        else
            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
            lddlflags='-Bshareable'
        fi
        cccdlflags='-DPIC -fPIC'
        ;;
esac

case "$osvers" in
0*|1*|2*|3*) ;;

*)
	ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
	if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
	    usenm=false
	fi
        ;;
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

# From: Anton Berezin <tobez at plab.ku.dk>
# To: perl5-porters at perl.org
# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type
# Date: 30 Nov 1998 19:46:24 +0100
# Message-ID: <864srhhvcv.fsf at lion.plab.ku.dk>

signal_t='void'
d_voidsig='define'

# set libperl.so.X.X for 2.2.X
case "$osvers" in
2.2*)
    # unfortunately this code gets executed before
    # the equivalent in the main Configure so we copy a little
    # from Configure XXX Configure should be fixed.
    if $test -r $src/patchlevel.h;then
       patchlevel=`awk '/define[ 	]+PERL_VERSION/ {print $3}' $src/patchlevel.h`
       subversion=`awk '/define[ 	]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h`
    else
       patchlevel=0
       subversion=0
    fi
    libperl="libperl.so.$patchlevel.$subversion"
    unset patchlevel
    unset subversion
    ;;
esac

# This script UU/usethreads.cbu will get 'called-back' by Configure 
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
        lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'`
        case "$osvers" in  
	0*|1*|2.0*|2.1*)   cat <<EOM >&4
I did not know that FreeBSD $osvers supports POSIX threads.

Feel free to tell perlbug at perl.org otherwise.
EOM
	      exit 1
	      ;;

        2.2.[0-7]*)
              cat <<EOM >&4
POSIX threads are not supported well by FreeBSD $osvers.

Please consider upgrading to at least FreeBSD 2.2.8,
or preferably to the most recent -RELEASE or -STABLE
version (see http://www.freebsd.org/releases/).

(While 2.2.7 does have pthreads, it has some problems
 with the combination of threads and pipes and therefore
 many Perl tests will either hang or fail.)
EOM
	      exit 1
	      ;;

	*)
	      if [ ! -r "$lc_r" ]; then
	      cat <<EOM >&4
POSIX threads should be supported by FreeBSD $osvers --
but your system is missing the shared libc_r.
(/sbin/ldconfig -r doesn't find any).

Consider using the latest STABLE release.
EOM
		 exit 1
	      fi
	      case "$osvers" in
	      # 500016 is the first osreldate in which one could
	      # just link against libc_r without disposing of libc
	      # at the same time.  500016 ... up to whatever it was
	      # on the 31st of August 2003 can still be used with -pthread,
	      # but it is not necessary.
	      5.*)	if [ `/sbin/sysctl -n kern.osreldate` -lt 500016 ]; then
                                ldflags="-pthread $ldflags"
                        fi
			;;
	      *)	ldflags="-pthread $ldflags"
			;;
	      esac
	      # Both in 4.x and 5.x gethostbyaddr_r exists but
	      # it is "Temporary function, not threadsafe"...
	      # Presumably earlier it didn't even exist.
	      d_gethostbyaddr_r="undef"
	      d_gethostbyaddr_r_proto="0"
	      ;;

	esac

	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

        case "$osvers" in
        2.2.8*)
            # ... but this does not apply for 2.2.8 - we know it's safe
            libc="$lc_r"
            usenm=true
           ;;
        esac

        unset lc_r

	# Even with the malloc mutexes the Perl malloc does not
	# seem to be threadsafe in FreeBSD?
	case "$usemymalloc" in
	'') usemymalloc=n ;;
	esac
esac
EOCBU

# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac

--- NEW FILE: beos.sh ---
# BeOS hints file
# $Id: beos.sh,v 1.2 2006-12-04 16:59:51 dslinux_cayenne Exp $

if [ ! -f beos/nm ]; then mwcc -w all -o beos/nm beos/nm.c 2>/dev/null; fi
# If this fails, that's all right - it's only for PPC.

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.

# Sockets didn't use to be real sockets but BONE changes this.
if [ ! -f /boot/develop/headers/be/bone/sys/socket.h ]; then
    d_socket='undef'
    d_gethbyaddr='undef'
    d_gethbyname='undef'
    d_getsbyname='undef'

	libs='-lnet'
fi

# There's a third party flock() emulation. Check, if it is available.
echo "#include <flock.h>" > try.c
if cc -E $CFLAGS try.c 2> /dev/null | grep "flock.*("; then
    d_flock='define'
    d_flockproto='define'
    libs="$libs -lflock"
    ldflags="$ldflags -L/boot/home/config/lib"
else
	cat << 'EOM' >&4

I couldn't find a <flock.h> header defining a flock() prototype. That header
comes with the flock server package (available on BeBits). You have to add
the path to the directory containing the header via the environment variable
CFLAGS (should contain -I</path/to/dir/of/flock/header>). Perl will be compiled
without flock() support, if the flock server package is not installed or the
header not found.

EOM

fi
rm try.c

ld='gcc'

export PATH="$PATH:$PWD/beos"

case "$ldlibpthname" in
'') ldlibpthname=LIBRARY_PATH ;;
esac

# the waitpid() wrapper (among other things)
archobjs="beos.o"
test -f beos.c || cp beos/beos.c .




More information about the dslinux-commit mailing list