Configure megamaintenance. Cppsym (hopefully) final spasms;
Jarkko Hietaniemi [Fri, 4 Feb 2000 18:31:05 +0000 (18:31 +0000)]
default is to use long long if available; various nits
here and there; fixed to hpux 64-bitnes and largefileness.

p4raw-id: //depot/cfgperl@4987

Configure
config_h.SH
hints/hpux.sh
perl.h

index 8fdb445..821f1b2 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Wed Jan 26 09:59:39 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Fri Feb  4 20:15:04 EET 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -399,6 +399,7 @@ d_getsbyport=''
 d_gnulibc=''
 d_hasmntopt=''
 d_htonl=''
+d_iconv=''
 d_inetaton=''
 d_int64t=''
 d_isascii=''
@@ -600,6 +601,7 @@ i_float=''
 i_gdbm=''
 d_grpasswd=''
 i_grp=''
+i_iconv=''
 i_inttypes=''
 i_limits=''
 i_locale=''
@@ -693,6 +695,9 @@ plibpth=''
 xlibpth=''
 ignore_versioned_solibs=''
 libs=''
+libsdirs=''
+libsfiles=''
+libsfound=''
 lns=''
 d_PRIEldbl=''
 d_PRIFldbl=''
@@ -907,66 +912,6 @@ if test -f /etc/unixtovms.exe; then
 fi
 
 i_whoami=''
-: list of known cpp symbols, sorted alphabetically
-al="386BSD 3b1 a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370"
-al="$al AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE"
-al="$al alliant alpha am29000 AM29000 amiga AMIGAOS AMIX"
-al="$al ansi ANSI_C_SOURCE apollo ardent atarist att386 att3b BeOS"
-al="$al BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4"
-al="$al BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi"
-al="$al bull c cadmus clipper CMU COFF COMPILER_VERSION"
-al="$al concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX"
-al="$al CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO"
-al="$al Dynix DynixPTX ELF encore EPI EXTENSIONS FILE_OFFSET_BITS"
-al="$al FreeBSD GCC_NEW_VARARGS gcos gcx gimpel"
-al="$al GNU_SOURCE GNUC GNUC_MINOR GO32 gould GOULD_PN"
-al="$al H3050R H3050RX hbullx20 hcx host_mips"
-al="$al hp200 hp300 hp700 HP700 hp800 hp9000"
-al="$al hp9000s200 hp9000s300 hp9000s400 hp9000s500"
-al="$al hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE"
-al="$al i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960"
-al="$al iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64"
-al="$al INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1"
-al="$al LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE"
-al="$al LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE"
-al="$al Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG"
-al="$al LONGDOUBLE LONGLONG LP64 luna luna88k Lynx"
-al="$al M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF"
-al="$al M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3"
-al="$al M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen"
-al="$al MATH_HAS_NO_SIDE_EFFECTS"
-al="$al mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040"
-al="$al mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin"
-al="$al mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT"
-al="$al MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola"
-al="$al mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr"
-al="$al NetBSD news1500 news1700 news1800 news1900 news3700"
-al="$al news700 news800 news900 NeXT NLS ns16000 ns32000"
-al="$al ns32016 ns32332 ns32k nsc32000"
-al="$al OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE"
-al="$al pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc"
-al="$al pc532 pdp11 PGC PIC plexus PORTAR posix"
-al="$al POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE"
-al="$al POSIX_C_SOURCE POSIX_SOURCE POWER"
-al="$al PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000"
-al="$al riscix riscos RT scs SCO sequent sgi SGI_SOURCE sinix"
-al="$al SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE"
-al="$al sony sony_news sonyrisc sparc sparclite spectrum"
-al="$al stardent stdc STDC_EXT stratos sun sun3 sun386"
-al="$al Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5"
-al="$al SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44"
-al="$al SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5"
-al="$al sysV68 sysV88 Tek4132 Tek4300 titan"
-al="$al tower tower32 tower32_200 tower32_600 tower32_700"
-al="$al tower32_800 tower32_850 tss"
-al="$al u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5"
-al="$al ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK"
-al="$al unix UNIX95 UNIX99 unixpc unos USGr4 USGr4_2"
-al="$al Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286"
-al="$al XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED"
-al="$al XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED"
-al="$al z8000"
-
 : set useposix=false in your hint file to disable the POSIX extension.
 useposix=true
 : set useopcode=false in your hint file to disable the Opcode extension.
@@ -2125,7 +2070,8 @@ $eunicefix tr
 : Try to determine whether config.sh was made on this system
 case "$config_sh" in
 '')
-myuname=`( ($uname -a) 2>/dev/null || hostname) 2>&1`
+myuname=`$uname -a 2>/dev/null`
+$test -z "$myuname" && myuname=`hostname 2>/dev/null`
 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
 # because the A-Z/a-z are not consecutive.
 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
@@ -2652,7 +2598,7 @@ esac'
 
 cat <<EOM
 
-Perl can be built to take advantage of threads on some systems.
+Perl can be built to take advantage of threads, on some systems.
 To do so, Configure must be run with -Dusethreads.
 
 Note that threading is a highly experimental feature, and
@@ -2683,10 +2629,6 @@ the 5.005 version (5005threads) and an interpreter-based version
 (ithreads) that has one interpreter per thread.  Both are very 
 experimental.  This arrangement exists to help developers work out
 which one is better.
-
-If you're a casual user, you probably don't want interpreter-threads
-at this time.  There doesn't yet exist a way to create threads from
-within Perl in this model, i.e., "use Thread;" will NOT work.
 EOM
        : Default to ithreads unless overridden on command line or with
        : old config.sh
@@ -3739,42 +3681,46 @@ $define)
 esac
 for thislib in $libswanted; do
        
-       if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`;
-               $test -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
-               echo "Found -l$thislib (shared)."
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib";;
-               esac
+       libname="$thislib"
+       if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`; $test -f "$xxx"; then
+               if $test -a "X$ignore_versioned_solibs" = "X"; then
+                       xxx=/ignored$xxx
+               else
+                       libstyle=shared
+               fi
        elif xxx=`./loc lib$thislib.$so X $libpth` ; $test -f "$xxx"; then
-               echo "Found -l$thislib (shared)."
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib";;
-               esac
+               libstyle=shared
        elif xxx=`./loc lib$thislib$_a X $libpth`; $test -f "$xxx"; then
-               echo "Found -l$thislib."
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib";;
-               esac
+               libstyle=static
        elif xxx=`./loc $thislib$_a X $libpth`; $test -f "$xxx"; then
-               echo "Found -l$thislib."
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib";;
-               esac
+               libstyle=static
        elif xxx=`./loc lib${thislib}_s$_a X $libpth`; $test -f "$xxx"; then
-               echo "Found -l${thislib}_s."
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l${thislib}_s";;
-               esac
+               libstyle=static
+               libname=${thislib}_s
        elif xxx=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$xxx"; then
-               echo "Found -l$thislib."
+               libstyle="static"
+       fi
+       if $test -f "$xxx"; then
+               eval $libscheck
+       fi
+       if $test -f "$xxx"; then
+               case "$libstyle" in
+               shared) echo "Found -l$libname (shared)." ;;
+               static) echo "Found -l$libname." ;;
+               *)      echo "Found -l$libname ($libstyle)." ;;
+               esac
                case " $dflt " in
                *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib";;
+               *) dflt="$dflt -l$libname"
+                   libsfound="$libsfound $xxx"
+                   yyy=`basename $xxx`
+                   libsfiles="$libsfiles $yyy"
+                   yyy=`echo $xxx|sed "s@/$yyy\\$@@"`
+                   case " $libsdirs " in
+                   *" $yyy "*) ;;
+                   *) libsdirs="$libsdirs $yyy" ;;
+                   esac
+                  ;;
                esac
        else
                echo "No -l$thislib."
@@ -4689,7 +4635,7 @@ $echo $n " patchlevel $patchlevel" $c
 test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
 echo ".)"
 case "$osname" in
-dos|vms)
+dos|cygwin|vms|win32)
        : XXX Should be a Configure test for double-dots in filenames.
        version=`echo $baserev $patchlevel $subversion | \
                 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
@@ -7023,6 +6969,10 @@ else
        installsitebin="$sitebinexp"
 fi
 
+: see if sqrtl exists
+set sqrtl d_sqrtl
+eval $inlibc
+
 cat <<EOM
 
 Perl can be built to take advantage of long doubles which
@@ -7068,6 +7018,18 @@ EOM
        ;;
 esac
 
+case "$uselongdouble:$d_sqrtl" in
+$define:$undef)
+               $cat <<EOM >&4
+
+You requested the use of long doubles but you do not seem to have
+the mathematic functions for long doubles.  I'm disabling the use
+of long doubles.
+EOM
+       uselongdouble=$undef
+       ;;
+esac
+
 cat <<EOM
 
 Perl can be built to take advantage of long longs which
@@ -7081,8 +7043,7 @@ case "$ccflags" in
 esac
 
 case "$uselonglong" in
-$define|true|[yY]*)    dflt='y';;
-*) dflt='n';;
+'')    dflt='y';;
 esac
 rp='Try to use long longs if available?'
 . ./myread
@@ -7270,6 +7231,7 @@ char *myname = "sprintf";
 
 #include <stdio.h>
 
+#define I_STDLIB $i_stdlib
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
@@ -8938,7 +8900,7 @@ esac
 set fseeko d_fseeko
 eval $inlibc
 case "$longsize" in
-8) echo "(Your long is 64 bits, so in a pinch you could use fseek.)" ;;
+8) echo "(Your long is 64 bits, so you could use fseek.)" ;;
 esac
 
 : see if fsetpos exists
@@ -8964,7 +8926,7 @@ eval $inlibc
 set ftello d_ftello
 eval $inlibc
 case "$longsize" in
-8) echo "(Your long is 64 bits, so in a pinch you could use ftell.)" ;;
+8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
 esac
 
 : see if getgrent exists
@@ -9264,6 +9226,10 @@ esac
 set d_htonl
 eval $setvar
 
+: see if iconv exists
+set iconv d_iconv
+eval $inlibc
+
 : index or strchr
 echo " "
 if set index val -f; eval $csym; $val; then
@@ -9620,8 +9586,8 @@ case "$intsize" in
       eval $setvar
       quadkind=2
       ;;
-   *) case "$uselonglong:$d_longlong:$longlongsize" in
-      define:define:8)
+   *) case "$d_longlong:$longlongsize" in
+      define:8)
         val='"long long"'
         set quadtype
         eval $setvar
@@ -10923,10 +10889,6 @@ set d_sigsetjmp
 eval $setvar
 $rm -f try.c try
 
-: see if sqrtl exists
-set sqrtl d_sqrtl
-eval $inlibc
-
 : see if sys/stat.h is available
 set sys/stat.h i_sysstat
 eval $inhdr
@@ -13618,6 +13580,10 @@ esac
 set i_fcntl
 eval $setvar
 
+: see if this is a iconv.h system
+set iconv.h i_iconv
+eval $inhdr
+
 : see if locale.h is available
 set locale.h i_locale
 eval $inhdr
@@ -13697,66 +13663,122 @@ eval $inhdr
 set poll.h i_poll
 eval $inhdr
 
-: get C preprocessor symbols handy
 echo " "
 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4 
-echo $al $osname | $tr ' ' $trnl >Cppsym.know
+$cat <<'EOSH' > Cppsym.know
+a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
+AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
+alliant alpha am29000 AM29000 amiga AMIGAOS AMIX
+ansi ANSI_C_SOURCE apollo ardent atarist att386 att3b BeOS
+BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4
+BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi
+bull c cadmus clipper CMU COFF COMPILER_VERSION
+concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
+CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
+Dynix DynixPTX ELF encore EPI EXTENSIONS FILE_OFFSET_BITS
+FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
+GNU_SOURCE GNUC GNUC_MINOR GO32 gould GOULD_PN
+H3050R H3050RX hbullx20 hcx host_mips
+hp200 hp300 hp700 HP700 hp800 hp9000
+hp9000s200 hp9000s300 hp9000s400 hp9000s500
+hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE
+i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960
+iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
+INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
+LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
+LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
+Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
+LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
+M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
+M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
+M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen
+MATH_HAS_NO_SIDE_EFFECTS
+mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040
+mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin
+mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT
+MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola
+mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr
+NetBSD news1500 news1700 news1800 news1900 news3700
+news700 news800 news900 NeXT NLS ns16000 ns32000
+ns32016 ns32332 ns32k nsc32000
+OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
+pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc
+pc532 pdp11 PGC PIC plexus PORTAR posix
+POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
+POSIX_C_SOURCE POSIX_SOURCE POWER
+PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
+riscix riscos RT scs SCO sequent sgi SGI_SOURCE sinix
+SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
+sony sony_news sonyrisc sparc sparclite spectrum
+stardent stdc STDC_EXT stratos sun sun3 sun386
+Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5
+SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44
+SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5
+sysV68 sysV88 Tek4132 Tek4300 titan
+tower tower32 tower32_200 tower32_600 tower32_700
+tower32_800 tower32_850 tss
+u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
+ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
+unix UNIX95 UNIX99 unixpc unos USGr4 USGr4_2
+Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
+XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
+XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
+z8000
+EOSH
+# Maybe put other stuff here too.
+cat <<EOSH >>Cppsym.know
+$osname
+EOSH
 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
-cat Cppsym.a Cppsym.b >> Cppsym.know
-$sed 's/^/_/'           < Cppsym.know > Cppsym.a
-$sed 's/^/__/'          < Cppsym.know > Cppsym.b
-$sed 's/\(.*\)/__\1__/' < Cppsym.know > Cppsym.c
-$cat Cppsym.know Cppsym.a Cppsym.b Cppsym.c | sort | uniq > Cppsym.d
-mv Cppsym.d Cppsym.know
-rm Cppsym.?
-$cat <<EOSS >Cppsym
+$cat Cppsym.a Cppsym.b | $tr ' ' $trnl | sort | uniq > Cppsym.know
+$rm -f Cppsym.a Cppsym.b
+cat <<EOSH > Cppsym
 $startsh
-case "\$1" in
--l) list=true
-       shift
-       ;;
-esac
-unknown=''
-case "\$list\$#" in
-1|2)
-       for sym do
-               if $contains "^\$1$" Cppsym.true >/dev/null 2>&1; then
-                       exit 0
-               elif $contains "^\$1$" Cppsym.know >/dev/null 2>&1; then
-                       :
-               else
-                       unknown="\$unknown \$sym"
-               fi
-       done
-       set X \$unknown
-       shift
-       ;;
-esac
-case \$# in
-0) exit 1;;
-esac
-echo \$* | $tr ' ' '$trnl' | $sed -e 's/\(.*\)/\\
-#ifdef \1\\
-exit 0; _ _ _ _\1\\     \1\\
-#endif\\
-/' >Cppsym\$\$
-echo "exit 1; _ _ _" >>Cppsym\$\$
-$cppstdin $cppminus <Cppsym\$\$ | $grep '^exit [01]; _ _'  >Cppsym2\$\$
-case "\$list" in
-true) $awk 'NF > 5 {print substr(\$6,2,100)}' <Cppsym2\$\$ ;;
-*)
-       sh Cppsym2\$\$
-       status=\$?
-       ;;
-esac
-$rm -f Cppsym\$\$ Cppsym2\$\$
-exit \$status
-EOSS
+if $test \$# -gt 0; then
+    echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
+    if $test -s Cppsym.got; then
+        $rm -f Cppsym.got
+        exit 0
+    fi
+    $rm -f Cppsym.got
+    exit 1
+else
+    $tr " " "$trnl" | ./Cppsym.try
+    exit 0
+fi
+EOSH
 chmod +x Cppsym
 $eunicefix Cppsym
-./Cppsym -l $al | $sort | $grep -v '^$' >Cppsym.true
-
+cat <<EOSH > Cppsym.try
+$startsh
+cat <<'EOCP' > try.c
+#include <stdio.h>
+int main() {
+EOCP
+$awk \\
+EOSH
+cat <<'EOSH' >> Cppsym.try
+'length($1) > 0 {
+    printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", %s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+    printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", _%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+    printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", __%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+    printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", __%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+}'      >> try.c
+echo '}' >> try.c
+EOSH
+cat <<EOSH >> Cppsym.try
+cc="$cc"
+optimize="$optimize"
+ccflags="$ccflags"
+ldflags="$ldflags"
+libs="$libs"
+exe_ext="$exe_ext"
+$cc $optimize $ccflags $ldflags -o try$exe_ext try.c $libs && ./try$exe_ext
+EOSH
+chmod +x Cppsym.try
+$eunicefix Cppsym.try
+./Cppsym < Cppsym.know > Cppsym.true
 : now check the C compiler for additional symbols
 postprocess_cc_v=''
 case "$osname" in
@@ -13788,7 +13810,8 @@ fi
 
 $awk '/\=/ { print $0; next }
        { print $0"=1" }' ccsym.raw >ccsym.list
-$awk '{ print $0"=1" }' Cppsym.true >ccsym.true
+$awk '/\=/ { print $0; next }
+       { print $0"=1" }' Cppsym.true >ccsym.true
 $comm -13 ccsym.true ccsym.list >ccsym.own
 $comm -12 ccsym.true ccsym.list >ccsym.com
 $comm -23 ccsym.true ccsym.list >ccsym.cpp
@@ -14570,6 +14593,7 @@ d_gnulibc='$d_gnulibc'
 d_grpasswd='$d_grpasswd'
 d_hasmntopt='$d_hasmntopt'
 d_htonl='$d_htonl'
+d_iconv='$d_iconv'
 d_index='$d_index'
 d_inetaton='$d_inetaton'
 d_int64t='$d_int64t'
@@ -14800,6 +14824,7 @@ i_fcntl='$i_fcntl'
 i_float='$i_float'
 i_gdbm='$i_gdbm'
 i_grp='$i_grp'
+i_iconv='$i_iconv'
 i_inttypes='$i_inttypes'
 i_limits='$i_limits'
 i_locale='$i_locale'
@@ -14896,6 +14921,9 @@ libc='$libc'
 libperl='$libperl'
 libpth='$libpth'
 libs='$libs'
+libsdirs='$libsdirs'
+libsfiles='$libsfiles'
+libsfound='$libsfound'
 libswanted='$libswanted'
 line='$line'
 lint='$lint'
index b9342c8..8dfb5db 100644 (file)
@@ -1432,7 +1432,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_gethname HAS_GETHOSTNAME   /**/
 #$d_uname HAS_UNAME            /**/
-#$d_phostname HAS_PHOSTNAME
+#$d_phostname HAS_PHOSTNAME    /**/
 #ifdef HAS_PHOSTNAME
 #define PHOSTNAME "$aphostname"        /* How to get the host name */
 #endif
@@ -1591,6 +1591,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_htonl HAS_NTOHL            /**/
 #$d_htonl HAS_NTOHS            /**/
 
+/* HAS_ICONV:
+ *     This symbol, if defined, indicates that the iconv routine is
+ *     available to do character set conversions.
+ */
+#$d_iconv HAS_ICONV            /**/
+
 /* HAS_ISASCII:
  *     This manifest constant lets the C program know that isascii 
  *     is available.
@@ -2178,6 +2184,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$i_grp I_GRP          /**/
 #$d_grpasswd GRPASSWD  /**/
 
+/* I_ICONV:
+ *     This symbol, if defined, indicates that <iconv.h> exists and
+ *     should be included.
+ */
+#$i_iconv      I_ICONV         /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
@@ -2795,7 +2807,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol, if defined, indicates that Perl should
  *     be built to use multiplicity.
  */
-#ifndef MULTIPLICTY
+#ifndef MULTIPLICITY
 #$usemultiplicity      MULTIPLICITY            /**/
 #endif
 
index b18f534..168c4be 100644 (file)
@@ -217,7 +217,6 @@ else
 
 NOTE: You are using HP cc(1) but GNU ar(1).  This might lead into trouble
 later on, I'm switching to HP ar to play safe.
-
 END
                ar=/usr/bin/ar
            fi
@@ -293,81 +292,58 @@ EOCBU
 # This script UU/use64bits.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use 64 bits.
 cat > UU/use64bits.cbu <<'EOCBU'
-case "$ccflags" in
-*+DD64*) # Been here, done this (via uselfs.cbu, most likely.)
-   ;;
-*) case "$use64bits" in
+case "$use64bits" in
 $define|true|[yY]*)
-           if [ "$xxOsRevMajor" -lt 11 ]; then
+       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
-           if [ ! -f /lib/pa20_64/libc.sl ]; then
+       fi
+       if [ ! -f /lib/pa20_64/libc.sl ]; then
                cat <<EOM >&4
 You do not seem to have the 64-bit libraries in /lib/pa20_64.
 Most importantly, I cannot find /lib/pa20_64/libc.sl.
 Cannot continue, aborting.
 EOM
                exit 1
-           fi
-           ccflags="$ccflags +DD64"
-           ldflags="$ldflags +DD64"
-           ld=/usr/bin/ld
-           set `echo " $libswanted " | sed -e 's@ dl @ @'`
-           libswanted="$*"
-           glibpth="/lib/pa20_64"
-   esac
-   ;;
+       fi
+
+        ccflags="$ccflags +DD64"
+       ld=/usr/bin/ld
+       ar=/usr/bin/ar
+       loclibpth="/lib/pa20_64 $loclibpth"
+
+        # The strict ANSI mode (-Aa) doesn't like the LL suffixes.
+       ccflags=`echo $ccflags|sed 's@ -Aa @ -Ae @'`
+
+       set `echo " $libswanted " | sed -e 's@ dl @ @'`
+       libswanted="$*"
+
+       libscheck='
+case "`/usr/bin/file $xxx`" in
+*LP64*) ;;
+*) xxx=/non/64/bit$xxx ;;
+esac
+'
+       ;;
 esac
 EOCBU
 
-# Existence of the 64-bit libraries dictating whether to use large files?
-# Twisted?  Yes, very.
-test -f /lib/pa20_64/libc.sl || uselargefiles="$undef"
-
 # This script UU/uselfs.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use 64 bits.
 cat > UU/uselfs.cbu <<'EOCBU'
 case "$uselargefiles" in
 $define|true|[yY]*)
-       lfcflags="`getconf _CS_XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
-       lfldflags="`getconf _CS_XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
-       lflibs="`getconf _CS_XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
-       case "$lfcflags$lfldflags$lflibs" in
-       '');;
-       *) # This sucks.  To get the HP-UX strict ANSI mode (-Aa) to
-          # approve of large file offsets, we must turn on the 64-bitness
-          # (+DD64), too.  A callback file (a hack) calling another, yuck.
-          case "$use64bits" in
-           $undef|false|[nN]*|'')
-              if [ -f /lib/pa20_64/libc.sl ]; then
-                  use64bits="$define"
-                  if $test -f use64bits.cbu; then
-                       echo "(Large files in HP-UX require also 64-bitness, picking up 64-bit hints...)"
-                      . ./use64bits.cbu
-                  fi
-              else
-                 echo "(No 64-bit libraries, therefore no large files, either...)"
-                uselargefiles="$undef"
-              fi
-               ;;
-          *) use64bits="$define" ;;
-           esac
-          case "$use64bits" in
-          $define) ccflags="$ccflags $lfcflags"
-                   ldflags="$ldflags $ldldflags"
-                   libswanted="$libswanted $lflibs"
-                   ;;
-          esac
-          ;;
-       esac
-       lfcflags=''
-       lfldflags=''
-       lflibs=''
+        ccflags="$ccflags `getconf _CS_XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
+        ldflags="$ldflags `getconf _CS_XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
+
+        libswanted="$libswanted `getconf _CS_XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
+
+        # The strict ANSI mode (-Aa) doesn't like large files.
+       ccflags=`echo $ccflags|sed 's@ -Aa @ -Ae @'`
        ;;
 esac
 EOCBU
diff --git a/perl.h b/perl.h
index d89f3a8..14cc107 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1888,8 +1888,6 @@ struct ptr_tbl {
 #define U_V(what) (cast_uv((NV)(what)))
 #endif
 
-/* Mention NV_PRESERVES_UV so that Configure picks it up. */
-
 /* These do not care about the fractional part, only about the range. */
 #define NV_WITHIN_IV(nv) (I_V(nv) >= IV_MIN && I_V(nv) <= IV_MAX)
 #define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX)
@@ -3006,7 +3004,7 @@ typedef struct am_table_short AMTS;
 
 #endif /* !USE_LOCALE_NUMERIC */
 
-#if !defined(Atol) && defined(USE_LONG_LONG) && defined(HAS_LONG_LONG)
+#if !defined(Atol) && defined(HAS_LONG_LONG)
 #   if !defined(Atol) && defined(HAS_STRTOLL)
 #       define Atol(s) strtoll(s, (char**)NULL, 10)
 #   endif
@@ -3163,4 +3161,12 @@ typedef struct am_table_short AMTS;
 #include "patchlevel.h"
 #undef PERL_PATCHLEVEL_H_IMPLICIT
 
+/* Mention
+   
+   NV_PRESERVES_UV
+   HAS_ICONV
+   I_ICONV
+
+   so that Configure picks them up. */
+
 #endif /* Include guard */