diff --git a/src/configure.in b/src/configure.in index 055f3a89f496139854ab7c39ce0b5163c62f1714..3c104665cc29b2ea94dcbb44906e084c3cd6014e 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1,4 +1,4 @@ -AC_REVISION("$Id: configure.in,v 1.421 2000/09/17 19:29:04 grubba Exp $") +AC_REVISION("$Id: configure.in,v 1.422 2000/09/27 17:21:14 grubba Exp $") AC_INIT(interpret.c) AC_CONFIG_HEADER(machine.h) @@ -63,44 +63,83 @@ AC_MINIX ############################################################################# +# option, cache_name, variable +AC_DEFUN(AC_SYS_COMPILER_FLAG, +[ + AC_MSG_CHECKING($1) + AC_CACHE_VAL(pike_cv_option_$2, + [ + OLD_CFLAGS="[$]CFLAGS" + CFLAGS="[$]OLD_CFLAGS $1" + AC_TRY_RUN([int foo; int main(){exit(0);}], + pike_cv_option_$2=yes, + pike_cv_option_$2=no, [ + AC_TRY_LINK([], [], pike_cv_option_$2=yes, pike_cv_option_$2=no) + ]) + CFLAGS="[$]OLD_CFLAGS" + ]) + + if test x"[$]pike_cv_option_$2" = "xyes" ; then + $3="[$]$3 $1" + case "$3" in + OPTIMIZE) + CFLAGS="[$]CFLAGS $1" + ;; + esac + AC_MSG_RESULT(yes) + $5 + else + AC_MSG_RESULT(no) + $4 + fi +]) + +# arch, option, cache_name, variable +AC_DEFUN(AC_SYS_CPU_COMPILER_FLAG, +[ + if test "`uname -m 2>/dev/null`" = "$1" ; then + AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) + $7 + fi +]) + +# os, option, cache_name, variable +AC_DEFUN(AC_SYS_OS_COMPILER_FLAG, +[ + if test "x$pike_cv_sys_os" = "x$1" ; then + AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) + $7 + fi +]) + +define([DO_IF_OS], +[ + if test "x$pike_cv_sys_os" = "x$1" ; then +$2 +fi +]) + +define([DO_IF_CPU], +[ +if test "`uname -m 2>/dev/null`" = "$1" ; then +$2 +fi +]) + +############################################################################# + if test "x$GCC" = "xno" -a "x$TCC" = "xno"; then # # We want 64bit mode if possible. - # This variable is looked at by AIX 5L/cc. - # Unfortunately OBJECT_MODE=64 confuses gcc... # - if test "x$OBJECT_MODE" = "x"; then - AC_MSG_CHECKING([whether we can run the compiler in 64bit mode]) - AC_CACHE_VAL(pike_cv_OBJECT_MODE_64, [ - OBJECT_MODE=64 - export OBJECT_MODE - AC_LANG_C - AC_TRY_COMPILER([main(){return(0);}], pike_cv_OBJECT_MODE_64, - pike_cv_OBJECT_MODE_64_broken) - AC_LANG_RESTORE - if test "x$pike_cv_OBJECT_MODE_64_broken" = "x$ac_cv_prog_cc_cross"; then - :; - else - # OBJECT_MODE 64 makes broken binaries. - # don't use it. - pike_cv_OBJECT_MODE_64=no - fi - unset OBJECT_MODE - ]) - if test "x$pike_cv_OBJECT_MODE_64" = "xyes"; then - AC_MSG_RESULT(yes) - OBJECT_MODE=64 - export OBJECT_MODE - else - AC_MSG_RESULT(no) - fi - fi + AC_SYS_COMPILER_FLAG(-q64, q64, CFLAGS) if test "x$ac_cv_prog_cc_cross" = "xyes"; then # The AIX 5L/cc beta can't generate working binaries without a # data-segment... AC_MSG_CHECKING([if we're really using a cross-compiler]) + AC_CACHE_VAL(pike_cv_datasegment_required, [ ac_cv_prog_cc_cross=no; AC_TRY_RUN([int foo;main(){return(0);}], [ @@ -410,71 +449,6 @@ export FALLBACK_CC ############################################################################# -# option, cache_name, variable -AC_DEFUN(AC_SYS_COMPILER_FLAG, -[ - AC_MSG_CHECKING($1) - AC_CACHE_VAL(pike_cv_option_$2, - [ - OLD_CFLAGS="[$]CFLAGS" - CFLAGS="[$]OLD_CFLAGS $1" - AC_TRY_RUN([int main(){exit(0);}], - pike_cv_option_$2=yes, - pike_cv_option_$2=no, [ - AC_TRY_LINK([], [], pike_cv_option_$2=yes, pike_cv_option_$2=no) - ]) - CFLAGS="[$]OLD_CFLAGS" - ]) - - if test x"[$]pike_cv_option_$2" = "xyes" ; then - $3="[$]$3 $1" - case "$3" in - OPTIMIZE) - CFLAGS="[$]CFLAGS $1" - ;; - esac - AC_MSG_RESULT(yes) - $5 - else - AC_MSG_RESULT(no) - $4 - fi -]) - -# arch, option, cache_name, variable -AC_DEFUN(AC_SYS_CPU_COMPILER_FLAG, -[ - if test "`uname -m 2>/dev/null`" = "$1" ; then - AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) - $7 - fi -]) - -# os, option, cache_name, variable -AC_DEFUN(AC_SYS_OS_COMPILER_FLAG, -[ - if test "x$pike_cv_sys_os" = "x$1" ; then - AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) - $7 - fi -]) - -define([DO_IF_OS], -[ - if test "x$pike_cv_sys_os" = "x$1" ; then -$2 -fi -]) - -define([DO_IF_CPU], -[ -if test "`uname -m 2>/dev/null`" = "$1" ; then -$2 -fi -]) - -############################################################################# - if test "$GCC" = "yes"; then if test "$cflags_is_set" = "no"; then AC_SYS_COMPILER_FLAG(-pipe, pipe, CFLAGS) @@ -2072,9 +2046,10 @@ AC_CHECK_FUNCS( \ nanosleep \ ) -AC_MSG_CHECKING(if the last argument to accept is a size_t *) +AC_MSG_CHECKING(for the type of the last argument to accept) AC_CACHE_VAL(pike_cv_accept_size_t, [ - AC_TRY_COMPILE([ + for t in socklen_t size_t int; do + AC_TRY_COMPILE([ #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE @@ -2099,10 +2074,50 @@ AC_CACHE_VAL(pike_cv_accept_size_t, [ #endif /* Here's the actual test: */ -int accept(int, struct sockaddr *, size_t *); - ], [ - /* EMPTY */ - ], pike_cv_accept_size_t=size_t, [ +int accept(int, struct sockaddr *, $t *); + ], [ + /* EMPTY */ + ], [ + pike_cv_accept_size_t=$t + break + ], [ + AC_TRY_COMPILE([ +#ifndef _LARGEFILE_SOURCE +# define _FILE_OFFSET_BITS 64 +# define _LARGEFILE_SOURCE +# define _LARGEFILE64_SOURCE 1 +#endif +/* HPUX needs these too... */ +#ifndef __STDC_EXT__ +# define __STDC_EXT__ +#endif /* !__STDC_EXT__ */ + +#include <sys/types.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif + +/* NT */ +#ifdef HAVE_WINSOCK_H +#include <winsock.h> +#endif + +/* Here's the actual test: */ +SOCKET accept(SOCKET, struct sockaddr *, $t *); + ], [ + /* EMPTY */ + ], [ + pike_cv_accept_size_t=$t + break + ], []) + ]) + done + if test "x$pike_cv_accept_size_t" = "x"; then + # Check if it could be a Psocklen_t + # Psocklen_t is a stupid typedef of socklen_t *. AC_TRY_COMPILE([ #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 @@ -2128,13 +2143,19 @@ int accept(int, struct sockaddr *, size_t *); #endif /* Here's the actual test: */ -SOCKET accept(SOCKET, struct sockaddr *, size_t *); +int accept(int, struct sockaddr *, Psocklen_t); ], [ /* EMPTY */ - ], pike_cv_accept_size_t=size_t, pike_cv_accept_size_t=int) - ]) + ], [ + pike_cv_accept_size_t=socklen_t + ], [ + # FIXME: Should probably have a warning here. + # FIXME: Should we check if socklen_t exists, and use that? + pike_cv_accept_size_t=int + ]) + fi ]) -AC_MSG_RESULT($pike_cv_accept_size_t) +AC_MSG_RESULT($pike_cv_accept_size_t *) AC_DEFINE_UNQUOTED(ACCEPT_SIZE_T, $pike_cv_accept_size_t) if test x"$pike_cv_sys_os" = xWindows_NT ; then