# comp.sources.misc and is available on CPAN under authors/id/RAM so
# you may fetch it yourself from your nearest archive site.)
#
+#
+# Though this script was generated by metaconfig, it is OK to send
+# patches against it. It's up to the Configure pumpkin to backport
+# the patch to the metaunits if it is accepted.
+# See Porting/pumpkin.pod for more information on metaconfig.
+#
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Wed Apr 14 18:21:40 METDST 2004 [metaconfig 3.0 PL70]
+# Generated on Mon Oct 31 19:12:32 CET 2005 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
+paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
paths="$paths /sbin /usr/sbin /usr/libexec"
paths="$paths /system/gnu_library/bin"
d_alarm=''
asctime_r_proto=''
d_asctime_r=''
-d_attribut=''
+d_attribute_format=''
+d_attribute_malloc=''
+d_attribute_nonnull=''
+d_attribute_noreturn=''
+d_attribute_pure=''
+d_attribute_unused=''
+d_attribute_warn_unused_result=''
d_bcmp=''
d_bcopy=''
d_bzero=''
d_chroot=''
d_chsize=''
d_class=''
+d_clearenv=''
d_closedir=''
d_void_closedir=''
d_cmsghdr_s=''
d_ftello=''
d_ftime=''
d_gettimeod=''
+d_futimes=''
d_Gconvert=''
d_getcwd=''
d_getespwnam=''
d_killpg=''
d_lchown=''
d_ldbl_dig=''
+d_libm_lib_version=''
d_link=''
d_localtime_r=''
localtime_r_proto=''
d_lseekproto=''
d_lstat=''
d_madvise=''
+d_malloc_good_size=''
+d_malloc_size=''
d_mblen=''
d_mbstowcs=''
d_mbtowc=''
d_sigaction=''
d_sigprocmask=''
d_sigsetjmp=''
+usesitecustomize=''
d_sockatmark=''
d_sockatmarkproto=''
d_msg_ctrunc=''
socketlib=''
d_socklen_t=''
d_socks5_init=''
+d_sprintf_returns_strlen=''
d_sqrtl=''
d_srand48_r=''
srand48_r_proto=''
d_strerror_r=''
strerror_r_proto=''
d_strftime=''
+d_strlcat=''
+d_strlcpy=''
d_strtod=''
d_strtol=''
d_strtold=''
d_semctl_semun=''
d_union_semun=''
d_unordered=''
+d_unsetenv=''
d_usleep=''
d_usleepproto=''
d_ustat=''
perladmin=''
perlpath=''
d_nv_preserves_uv=''
+d_nv_zero_is_allbits_zero=''
i16size=''
i16type=''
i32size=''
runnm=''
usenm=''
useperlio=''
+userelocatableinc=''
usesocks=''
d_oldpthreads=''
use5005threads=''
aix) osname=aix
tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
case "$tmp" in
- 'not found') osvers="$4"."$3" ;;
+ # oslevel can fail with:
+ # oslevel: Unable to acquire lock.
+ *not\ found) osvers="$4"."$3" ;;
'<3240'|'<>3240') osvers=3.2.0 ;;
'=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
'=3250'|'>3250') osvers=3.2.5 ;;
2*) if test -d /etc/conf/kconfig.d &&
$contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
then
+ # Interactive Systems (ISC) POSIX mode.
dflt="$dflt -posix"
fi
;;
if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
echo "Yes, it does." 2>&1
case "$ccflags" in
- *strict-aliasing*)
+ *strict-aliasing*)
echo "Leaving current flags $ccflags alone." 2>&1
;;
*) dflt="$dflt -fno-strict-aliasing" ;;
fi
;;
esac
+ # For gcc, adding -pipe speeds up compilations for some, but apparently
+ # some assemblers can't read from stdin. (It also slows down compilations
+ # in other cases, but those are apparently rarer these days.) AD 5/2004.
+ case "$gccversion" in
+ ?*) echo " "
+ echo "Checking if your compiler accepts -pipe" 2>&1
+ echo 'int main(void) { return 0; }' > gcctest.c
+ if $cc -pipe -o gcctest gcctest.c; then
+ echo "Yes, it does." 2>&1
+ case "$ccflags" in
+ *-pipe*)
+ echo "Leaving current flags $ccflags alone." 2>&1
+ ;;
+ *) dflt="$dflt -pipe" ;;
+ esac
+ else
+ echo "Nope, it doesn't, but that's ok." 2>&1
+ fi
+
+ echo "Checking if your compiler accepts -Wdeclaration-after-statement" 2>&1
+ echo 'int main(void) { return 0; }' > gcctest.c
+ if $cc -Wdeclaration-after-statement -o gcctest gcctest.c; then
+ echo "Yes, it does." 2>&1
+ case "$ccflags" in
+ *-Wdeclaration-after-statement*)
+ echo "Leaving current flags $ccflags alone." 2>&1
+ ;;
+ *) dflt="$dflt -Wdeclaration-after-statement" ;;
+ esac
+ else
+ echo "Nope, it doesn't, but that's ok." 2>&1
+ fi
+ ;;
+ esac
;;
esac
if $test -d $thisincl; then
if $test x$thisincl != x$usrinc; then
case "$dflt" in
- *" -I$thisincl "*);;
- *) dflt="$dflt -I$thisincl ";;
+ *" -I$thisincl "*);;
+ *) dflt="$dflt -I$thisincl ";;
esac
fi
fi
for thislibdir in $libpth; do
case " $loclibpth " in
*" $thislibdir "*)
- case "$dflt " in
+ case "$dflt " in
*"-L$thislibdir "*) ;;
*) dflt="$dflt -L$thislibdir" ;;
esac
: for archive libraries. Thank you, Linux.
case "$nm_so_opt" in
'') case "$myuname" in
- *linux*)
+ *linux*|gnu*)
if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
nm_so_opt='--dynamic'
fi
'') dflt="$dflt +vnocompatwarnings" ;;
esac
;;
- linux|irix*) dflt='-shared' ;;
+ linux|irix*|gnu*) dflt='-shared' ;;
next) dflt='none' ;;
solaris) dflt='-G' ;;
sunos) dflt='-assert nodefinitions' ;;
EOM
case "$ccdlflags" in
'') case "$osname" in
- linux|hpux) dflt='-Wl,-E' ;;
+ linux|hpux|gnu*) dflt='-Wl,-E' ;;
next|sunos) dflt='none' ;;
*) dflt='none' ;;
esac ;;
your system supports dynamic loading, it is probably possible to build
a shared libperl.$so. If you will have more than one executable linked
to libperl.$so, this will significantly reduce the size of each
-executable, but it may have a noticeable affect on performance. The
+executable, but it may have a noticeable effect on performance. The
default is probably sensible for your system.
$also
dflt=libperl.5.$so
# XXX How handle the --version stuff for MAB?
;;
- linux*) # ld won't link with a bare -lperl otherwise.
+ linux*|gnu*) # ld won't link with a bare -lperl otherwise.
dflt=libperl.$so
;;
cygwin*) # ld links against an importlib
solaris)
xxx="-R $shrpdir"
;;
- freebsd|netbsd|openbsd)
+ freebsd|netbsd|openbsd|interix)
xxx="-Wl,-R$shrpdir"
;;
- bsdos|linux|irix*|dec_osf)
+ bsdos|linux|irix*|dec_osf|gnu*)
xxx="-Wl,-rpath,$shrpdir"
;;
next)
;;
esac
+# probably will refer to
+# $archlib $privlib $sitearch $sitelib $vendorarch $vendorlib
+need_relocation=0
+userelocatableinc=undef
+
case "$vendorprefix" in
'') d_vendorbin="$undef"
vendorbin=''
set atoll d_atoll
eval $inlibc
-: Look for GNU-cc style attribute checking
+: Look for GCC-style attribute format
+case "$d_attribute_format" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((format)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+void my_special_printf(char* pat,...) __attribute__((__format__(__printf__,1,2)));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((format))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((format))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_format" ;;
+esac
+set d_attribute_format
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute malloc
+case "$d_attribute_malloc" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((malloc)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+char *go_get_some_memory( int how_many_bytes ) __attribute__((malloc));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((malloc))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((malloc))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_malloc" ;;
+esac
+set d_attribute_malloc
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute nonnull
+case "$d_attribute_nonnull" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((nonnull(1))) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+void do_something (char *some_pointer,...) __attribute__((nonnull(1)));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((nonnull))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((nonnull))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_nonnull" ;;
+esac
+set d_attribute_nonnull
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute noreturn
+case "$d_attribute_noreturn" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((noreturn)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+void fall_over_dead( void ) __attribute__((noreturn));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((noreturn))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((noreturn))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_noreturn" ;;
+esac
+set d_attribute_noreturn
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute pure
+case "$d_attribute_pure" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((pure)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+int square( int n ) __attribute__((pure));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((pure))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((pure))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_pure" ;;
+esac
+set d_attribute_pure
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute unused
+case "$d_attribute_unused" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((unused)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+int do_something( int dummy __attribute__((unused)), int n );
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't support __attribute__((unused))."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__((unused))."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__ at all."
+ val="$undef"
+fi
+;;
+*) val="$d_attribute_unused" ;;
+esac
+set d_attribute_unused
+eval $setvar
+$rm -f attrib*
+
+: Look for GCC-style attribute warn_unused_result
+case "$d_attribute_warn_unused_result" in
+'')
echo " "
-echo "Checking whether your compiler can handle __attribute__ ..." >&4
+echo "Checking whether your compiler can handle __attribute__((warn_unused_result)) ..." >&4
$cat >attrib.c <<'EOCP'
#include <stdio.h>
-void croak (char* pat,...) __attribute__((__format__(__printf__,1,2),noreturn));
+int I_will_not_be_ignored(void) __attribute__((warn_unused_result));
EOCP
if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
if $contains 'warning' attrib.out >/dev/null 2>&1; then
- echo "Your C compiler doesn't fully support __attribute__."
+ echo "Your C compiler doesn't support __attribute__((warn_unused_result))."
val="$undef"
else
- echo "Your C compiler supports __attribute__."
+ echo "Your C compiler supports __attribute__((warn_unused_result))."
val="$define"
fi
else
echo "Your C compiler doesn't seem to understand __attribute__ at all."
val="$undef"
fi
-set d_attribut
+;;
+*) val="$d_attribute_warn_unused_result" ;;
+esac
+set d_attribute_warn_unused_result
eval $setvar
$rm -f attrib*
i32 = ($xxx) g;
/* x86 processors will probably give 0x8000 0000, which is a
- sign change. We don't want that. We want to mimic SPARC
+ sign change. We don't want that. We want to mimic SPARC
behavior here, which is to preserve the sign and give
back 0x7fff ffff.
*/
set class d_class
eval $inlibc
+: see if clearenv exists
+set clearenv d_clearenv
+eval $inlibc
+
hasstruct='varname=$1; struct=$2; shift; shift;
while $test $# -ge 2; do
case "$1" in
exit(1);
}
EOM
+val=$undef
set dirfd
if eval $compile; then
val="$define"
8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
esac
+: see if futimes exists
+set futimes d_futimes
+eval $inlibc
+
: see if getcwd exists
set getcwd d_getcwd
eval $inlibc
set d_ldbl_dig
eval $setvar
+: see if this is a math.h system
+set math.h i_math
+eval $inhdr
+
+d_libm_lib_version="$undef"
+case $i_math in
+ $define)
+ : check to see if math.h defines _LIB_VERSION
+ echo " "
+ echo "Checking to see if your libm supports _LIB_VERSION..." >&4
+ $cat >try.c <<EOCP
+#include <unistd.h>
+#include <math.h>
+int main (int argc, char *argv[])
+{
+ printf ("%d\n", _LIB_VERSION);
+ return (0);
+ } /* main */
+EOCP
+ set try
+ if eval $compile; then
+ foo=`$run ./try`
+ echo "Yes, it does ($foo)" >&4
+ d_libm_lib_version="$define"
+ else
+ echo "No, it does not (probably harmless)\n" >&4
+ fi
+ $rm -f try.* try core core.try.*
+ ;;
+
+ esac
+
: see if link exists
set link d_link
eval $inlibc
set madvise d_madvise
eval $inlibc
+: see if malloc_size exists
+set malloc_size d_malloc_size
+eval $inlibc
+
+: see if malloc_size_good exists
+set malloc_good_size d_malloc_good_size
+eval $inlibc
+
: see if mblen exists
set mblen d_mblen
eval $inlibc
: see if prototype for modfl is available
echo " "
-set d_modflproto modfl math.h
+set d_modflproto modfl $i_math math.h
eval $hasproto
d_modfl_pow32_bug="$undef"
$rm -f try.* try
+$echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
+: volatile so that the compiler has to store it out to memory.
+if test X"$d_volatile" = X"$define"; then
+ volatile=volatile
+fi
+$cat <<EOP >try.c
+#include <stdio.h>
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+#$i_string I_STRING
+#ifdef I_STRING
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+#include <signal.h>
+#ifdef SIGFPE
+$volatile int bletched = 0;
+$signal_t blech(s) int s; { bletched = 1; }
+#endif
+
+int checkit($nvtype d, char *where) {
+ unsigned char *p = (char *)&d;
+ unsigned char *end = p + sizeof(d);
+ int fail = 0;
+
+ while (p < end)
+ fail += *p++;
+
+ if (!fail)
+ return 0;
+
+ p = (char *)&d;
+ printf("No - %s: 0x", where);
+ while (p < end)
+ printf ("%02X", *p++);
+ printf("\n");
+ return 1;
+}
+
+int main(int argc, char **argv) {
+ $nvtype d = 0.0;
+ int fail = 0;
+ fail += checkit(d, "0.0");
+
+ /* The compiler shouldn't be assuming that bletched is 0 */
+ d = bletched;
+
+ fail += checkit(d, "bleched");
+
+#ifdef SIGFPE
+ signal(SIGFPE, blech);
+#endif
+
+ /* Paranoia - the compiler should have no way of knowing that ANSI says
+ that argv[argc] will always be NULL. Actually, if it did assume this it
+ would be buggy, as this is C and main() can be called from elsewhere in
+ the program. */
+ d = argv[argc] ? 1 : 0;
+
+ if (d) {
+ printf("Odd argv[argc]=%p, d=%g\n", argv[argc], d);
+ }
+
+ fail += checkit(d, "ternary");
+
+ memset(&d, sizeof(d), argv[argc] ? 1 : 0);
+
+ if (d != 0.0) {
+ printf("No - memset doesn't give 0.0\n");
+ /* This might just blow up: */
+ printf("(gives %g)\n", d);
+ return 1;
+ }
+
+#ifdef SIGFPE
+ if (bletched) {
+ printf("No - something bleched\n");
+ return 1;
+ }
+#endif
+ if (fail) {
+ printf("No - %d fail(s)\n", fail);
+ return 1;
+ }
+ printf("Yes\n");
+ return 0;
+}
+EOP
+set try
+
+d_nv_zero_is_allbits_zero="$undef"
+if eval $compile; then
+ xxx="`$run ./try`"
+ case "$?" in
+ 0)
+ case "$xxx" in
+ Yes) cat >&4 <<EOM
+0.0 is represented as all bits zero in memory
+EOM
+ d_nv_zero_is_allbits_zero="$define"
+ ;;
+ *) cat >&4 <<EOM
+0.0 is not represented as all bits zero in memory
+EOM
+ d_nv_zero_is_allbits_zero="$undef"
+ ;;
+ esac
+ ;;
+ *) cat >&4 <<EOM
+0.0 is not represented as all bits zero in memory
+EOM
+ d_nv_zero_is_allbits_zero="$undef"
+ ;;
+ esac
+fi
+
+$rm -f try.* try
+
: check for off64_t
echo " "
set socks5_init d_socks5_init
eval $inlibc
+: see if sprintf returns the length of the string in the buffer as per ANSI
+$echo "Checking whether sprintf returns the length of the string..." >&4
+$cat <<EOP >try.c
+#include <stdio.h>
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+#$i_string I_STRING
+#ifdef I_STRING
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#$i_math I_MATH
+#ifdef I_MATH
+#include <math.h>
+#endif
+
+char buffer[256];
+
+int check (size_t expect, int test) {
+ size_t got = strlen(buffer);
+ if (expect == got)
+ return 0;
+
+ printf("expected %ld, got %ld in test %d '%s'\n", (long) expect, (long) got,
+ test, buffer);
+ exit (test);
+}
+
+int main(int argc, char **argv) {
+ int test = 0;
+
+ check(sprintf(buffer, ""), ++test);
+ check(sprintf(buffer, "%s %s", "perl", "rules"), ++test);
+ check(sprintf(buffer, "I like %g", atan2(0,-1)), ++test);
+
+ return 0;
+}
+EOP
+set try
+
+d_sprintf_returns_strlen="$undef"
+if eval $compile; then
+ xxx="`$run ./try`"
+ case "$?" in
+ 0) cat >&4 <<EOM
+sprintf returns the length of the string (as ANSI says it should)
+EOM
+ d_sprintf_returns_strlen="$define"
+ ;;
+ *) cat >&4 <<EOM
+sprintf does not return the length of the string (how old is this system?)
+EOM
+ d_sprintf_returns_strlen="$undef"
+ ;;
+ esac
+fi
+
+$rm -f try.* try
+
: see if srand48_r exists
set srand48_r d_srand48_r
eval $inlibc
set strftime d_strftime
eval $inlibc
+: see if strlcat exists
+set strlcat d_strlcat
+eval $inlibc
+
+: see if strlcpy exists
+set strlcpy d_strlcpy
+eval $inlibc
+
: see if strtod exists
set strtod d_strtod
eval $inlibc
set unordered d_unordered
eval $inlibc
+: see if unsetenv exists
+set unsetenv d_unsetenv
+eval $inlibc
+
: see if usleep exists
set usleep d_usleep
eval $inlibc
$run ./foobar >/dev/null 2>&1; then
echo "$ar appears to generate random libraries itself."
orderlib=false
- ranlib=":"
+ if [ "X$ranlib" = "X" ]; then
+ ranlib=":"
+ fi
elif $ar ts bar$_a >/dev/null 2>&1 &&
$cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
$run ./foobar >/dev/null 2>&1; then
#endif
#ifndef NSIG
+# ifdef _SIG_MAX
+# define NSIG (_SIG_MAX+1)
+# endif
+#endif
+
+#ifndef NSIG
# ifdef MAXSIG
# define NSIG (MAXSIG+1)
# endif
#ifndef NSIG
# ifdef SIGARRAYSIZE
-# define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */
+# define NSIG SIGARRAYSIZE /* Assume ary[SIGARRAYSIZE] */
# endif
#endif
;;
esac
+
+case "$usesitecustomize" in
+ $define|true|[Yy]*)
+ usesitecustomize="$define"
+ ;;
+ *)
+ usesitecustomize="$undef"
+ ;;
+ esac
+
: determine compiler compiler
case "$yacc" in
'')
-: see if this is a math.h system
-set math.h i_math
-eval $inhdr
-
: see if this is a mntent.h system
set mntent.h i_mntent
eval $inhdr
$cat <<'EOSH' > Cppsym.know
a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
-alliant alpha am29000 AM29000 AMD64 amiga AMIGAOS AMIX
+alliant alpha am29000 AM29000 AMD64 amd64 amiga AMIGAOS AMIX
ansi ANSI_C_SOURCE apollo ardent ARM32 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
+CYGWIN DECC DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD
FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
GLIBC GLIBC_MINOR
USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2
USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED
USGr4 USGr4_2
-Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
+Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms x86_64 xenix Xenix286
XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
z8000
$startsh
cat <<'EOCP' > try.c
#include <stdio.h>
+#if cpp_stuff == 1
+#define STRINGIFY(a) "a"
+#endif
+#if cpp_stuff == 42
+#define StGiFy(a) #a
+#define STRINGIFY(a) StGiFy(a)
+#endif
+#if $cpp_stuff != 1 && $cpp_stuff != 42
+# include "Bletch: How does this C preprocessor stringify macros?"
+#endif
int main() {
EOCP
$awk \\
EOSH
cat <<'EOSH' >> Cppsym.try
'length($1) > 0 {
- printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%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\", (long)_%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\", (long)__%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\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef %s\nprintf(\"%s=%%s\\n\", STRINGIFY(%s));\n#endif\n", $1, $1, $1
+ printf "#ifdef _%s\nprintf(\"_%s=%%s\\n\", STRINGIFY(_%s));\n#endif\n", $1, $1, $1
+ printf "#ifdef __%s\nprintf(\"__%s=%%s\\n\", STRINGIFY(__%s));\n#endif\n", $1, $1, $1
+ printf "#ifdef __%s__\nprintf(\"__%s__=%%s\\n\", STRINGIFY(__%s__));\n#endif\n", $1, $1, $1
}' >> try.c
echo 'return 0;}' >> try.c
EOSH
irix-) ccflags="\$ccflags -woff 1178" ;;
os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
esac
-$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
+$cc -o try -Dcpp_stuff=$cpp_stuff $optimize \$ccflags $ldflags try.c $libs && $run ./try | $sed 's/ /\\\\ /g'
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
$awk '/\=/ { print $0; next }
{ print $0"=1" }' ccsym.raw >ccsym.list
-$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
+$comm -13 Cppsym.true ccsym.list >ccsym.own
+$comm -12 Cppsym.true ccsym.list >ccsym.com
+$comm -23 Cppsym.true ccsym.list >ccsym.cpp
also=''
if $test -z ccsym.raw; then
echo "Your C compiler doesn't seem to define any symbols!" >&4
d_asctime_r='$d_asctime_r'
d_atolf='$d_atolf'
d_atoll='$d_atoll'
-d_attribut='$d_attribut'
+d_attribute_format='$d_attribute_format'
+d_attribute_malloc='$d_attribute_malloc'
+d_attribute_nonnull='$d_attribute_nonnull'
+d_attribute_noreturn='$d_attribute_noreturn'
+d_attribute_pure='$d_attribute_pure'
+d_attribute_unused='$d_attribute_unused'
+d_attribute_warn_unused_result='$d_attribute_warn_unused_result'
d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
d_bsd='$d_bsd'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
d_class='$d_class'
+d_clearenv='$d_clearenv'
d_closedir='$d_closedir'
d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
d_fsync='$d_fsync'
d_ftello='$d_ftello'
d_ftime='$d_ftime'
+d_futimes='$d_futimes'
d_getcwd='$d_getcwd'
d_getespwnam='$d_getespwnam'
d_getfsstat='$d_getfsstat'
d_killpg='$d_killpg'
d_lchown='$d_lchown'
d_ldbl_dig='$d_ldbl_dig'
+d_libm_lib_version='$d_libm_lib_version'
d_link='$d_link'
d_localtime_r='$d_localtime_r'
d_locconv='$d_locconv'
d_lseekproto='$d_lseekproto'
d_lstat='$d_lstat'
d_madvise='$d_madvise'
+d_malloc_good_size='$d_malloc_good_size'
+d_malloc_size='$d_malloc_size'
d_mblen='$d_mblen'
d_mbstowcs='$d_mbstowcs'
d_mbtowc='$d_mbtowc'
d_nice='$d_nice'
d_nl_langinfo='$d_nl_langinfo'
d_nv_preserves_uv='$d_nv_preserves_uv'
+d_nv_zero_is_allbits_zero='$d_nv_zero_is_allbits_zero'
d_off64_t='$d_off64_t'
d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
d_oldpthreads='$d_oldpthreads'
d_socklen_t='$d_socklen_t'
d_sockpair='$d_sockpair'
d_socks5_init='$d_socks5_init'
+d_sprintf_returns_strlen='$d_sprintf_returns_strlen'
d_sqrtl='$d_sqrtl'
d_srand48_r='$d_srand48_r'
d_srandom_r='$d_srandom_r'
d_strerror='$d_strerror'
d_strerror_r='$d_strerror_r'
d_strftime='$d_strftime'
+d_strlcat='$d_strlcat'
+d_strlcpy='$d_strlcpy'
d_strtod='$d_strtod'
d_strtol='$d_strtol'
d_strtold='$d_strtold'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
d_unordered='$d_unordered'
+d_unsetenv='$d_unsetenv'
d_usleep='$d_usleep'
d_usleepproto='$d_usleepproto'
d_ustat='$d_ustat'
useperlio='$useperlio'
useposix='$useposix'
usereentrant='$usereentrant'
+userelocatableinc='$userelocatableinc'
usesfio='$usesfio'
useshrplib='$useshrplib'
+usesitecustomize='$usesitecustomize'
usesocks='$usesocks'
usethreads='$usethreads'
usevendorprefix='$usevendorprefix'