2cf5272010-10-17Artur Skawina AC_REVISION("$Id$")
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_INIT(interpret.c)
af56471996-12-03Fredrik Hübinette (Hubbe) AC_CONFIG_HEADER(machine.h)
51bd9e1996-10-09Fredrik Hübinette (Hubbe) 
0ce67d2012-02-15Bill Welliver 
b7890d2002-12-11Mirar (Pontus Hagland) rm -f config.warnings 2>/dev/null
86550e2003-09-12Marcus Comstedt if_autoconf(2,50,[
aa47bd2002-06-25Henrik Grubbström (Grubba)  if test "x$cache_file" = "x/dev/null"; then cache_file=./config.cache if test -r "$cache_file"; then echo "loading cache $cache_file" . $cache_file else echo "creating cache $cache_file" > $cache_file fi fi
b745482003-09-09Martin Nilsson ], [
4969eb2002-12-19Marcus Comstedt  PIKE_MSG_WARN([configure script has been generated with autoconf 2.13 or earlier.])
b745482003-09-09Martin Nilsson ])
aa47bd2002-06-25Henrik Grubbström (Grubba) 
ea24061997-04-01Henrik Grubbström (Grubba) # We want an absolute path to the source-dir. case "$srcdir" in /*) ;; *) oldsrcdir="$srcdir" srcdir="`cd \"$srcdir\";pwd`"
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Converted $oldsrcdir to $srcdir, If this does not work, please use an absolute path to the configure script.])
ea24061997-04-01Henrik Grubbström (Grubba)  ;; esac
043b202003-06-27Henrik Grubbström (Grubba) # Check that we can write to the source directory. sleep 1 if touch "$srcdir/configure~"; then # Check that the system time is reasonably correct.
166faa2003-12-03Martin Nilsson  if test `cd "$srcdir" && ls -1t configure configure~ | head -n 1` = "configure"; then
a10a982004-03-09Henrik Grubbström (Grubba)  echo "Current system time is `date`."
043b202003-06-27Henrik Grubbström (Grubba)  AC_MSG_ERROR([ $srcdir/configure has modification time in the future. Check and set your system time. ]) fi else
a10a982004-03-09Henrik Grubbström (Grubba)  ls -ld "$srcdir"
043b202003-06-27Henrik Grubbström (Grubba)  AC_MSG_ERROR([ Failed to write in source directory. Fix your permissions. ]) fi
c334a02001-03-27Henrik Grubbström (Grubba) # Attempt to use bash instead of /bin/sh to run configure # since bash is usually several orders of magnitude faster # on machines that have a real /bin/sh.
27152b2002-12-14Henrik Grubbström (Grubba) # Some OS's also have a seriously broken /bin/sh (eg NetBSD).
d9caad2006-06-17Martin Stjernholm if test "x$CONFIG_SHELL" = "x" -a "x$BASH" = x; then
c334a02001-03-27Henrik Grubbström (Grubba)  AC_PATH_PROG(bash_prog, bash, no)
459b152004-03-07Henrik Grubbström (Grubba)  if test "x$ac_cv_path_bash_prog" = "xno"; then :; else AC_MSG_CHECKING([if $ac_cv_path_bash_prog works])
04b2a32005-11-22Henrik Grubbström (Grubba)  if "$ac_cv_path_bash_prog" --norc -c : 2>&AC_FD_CC; then
459b152004-03-07Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) ac_cv_path_bash_prog=no fi fi
c334a02001-03-27Henrik Grubbström (Grubba)  if test "x$ac_cv_path_bash_prog" = "xno"; then :; else
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Found bash as $ac_cv_path_bash_prog.
c334a02001-03-27Henrik Grubbström (Grubba) Will attempt to restart configure with bash for performance.
0a86982003-11-07Martin Stjernholm If this fails, please set CONFIG_SHELL to /bin/sh before starting configure.])
07d0342012-04-08Henrik Grubbström (Grubba)  if_autoconf(2,63,[ # Autoconf 2.63 and later don't like CONFIG_SHELL containing args... # It will break the generated config.status. CONFIG_SHELL="$ac_cv_path_bash_prog" export CONFIG_SHELL echo $CONFIG_SHELL --norc "$srcdir/configure" $ac_configure_args eval exec $CONFIG_SHELL --norc "$srcdir/configure" $ac_configure_args ], [ # Autoconf 2.61 and earlier support CONFIG_SHELL containing args. # Make sure the users config files aren't used. We don't want # strange aliases and stuff confusing things... CONFIG_SHELL="$ac_cv_path_bash_prog --norc" export CONFIG_SHELL echo $CONFIG_SHELL "$srcdir/configure" $ac_configure_args eval exec $CONFIG_SHELL "$srcdir/configure" $ac_configure_args ])
89b28a2001-05-31Fredrik Hübinette (Hubbe)  exit 17
c334a02001-03-27Henrik Grubbström (Grubba)  fi else :; fi
27152b2002-12-14Henrik Grubbström (Grubba) AC_PROG_MAKE_SET
42496b2002-12-14Henrik Grubbström (Grubba) 
b46d672005-11-22Henrik Grubbström (Grubba) rm -f "conftest_VPATH.in" 2>/dev/null
f156cc2002-12-14Henrik Grubbström (Grubba) touch "$srcdir/conftest_VPATH.in"
bad86f2002-12-14Henrik Grubbström (Grubba) if test -f conftest_VPATH.in; then :; else
27152b2002-12-14Henrik Grubbström (Grubba)  # Not building in source tree. AC_MSG_CHECKING([whether ${MAKE-make} supports VPATH]) AC_CACHE_VAL(pike_cv_make_supports_VPATH, [ cat > conftestmake <<EOF VPATH=.:$srcdir
22e80f2002-12-14Henrik Grubbström (Grubba) .SUFFIXES: .in .out .in.out:
27152b2002-12-14Henrik Grubbström (Grubba)  cat "\$<" >"\$@" EOF pike_cv_make_supports_VPATH=no
9edb202004-03-10Henrik Grubbström (Grubba)  if ${MAKE-make} -f conftestmake conftest_VPATH.out >/dev/null 2>&AC_FD_CC; then
f156cc2002-12-14Henrik Grubbström (Grubba)  if test -f conftest_VPATH.out; then
27152b2002-12-14Henrik Grubbström (Grubba)  pike_cv_make_supports_VPATH=yes else :; fi else :; fi
f156cc2002-12-14Henrik Grubbström (Grubba)  rm -f conftestmake conftest_VPATH.out
27152b2002-12-14Henrik Grubbström (Grubba)  ]) AC_MSG_RESULT($pike_cv_make_supports_VPATH) if test "x$pike_cv_make_supports_VPATH" = "xno"; then
fbbc942002-12-15Henrik Grubbström (Grubba)  AC_ERROR([ Building in a separate directory is not supported without VPATH.
27152b2002-12-14Henrik Grubbström (Grubba) 
fbbc942002-12-15Henrik Grubbström (Grubba) Build in the source directory, or try another make (eg gnumake). ]) exit 1
27152b2002-12-14Henrik Grubbström (Grubba)  else :; fi fi
b46d672005-11-22Henrik Grubbström (Grubba) rm -f "$srcdir/conftest_VPATH.in" 2>/dev/null
27152b2002-12-14Henrik Grubbström (Grubba) 
b0a67e2004-03-08Henrik Grubbström (Grubba) if test -d "$srcdir/../bundles"; then # Some of the bundled libraries (eg nettle) set SHELL. AC_MSG_CHECKING([whether ${MAKE-make} supports spaces in SHELL]) AC_CACHE_VAL(pike_cv_make_supports_spaces_in_SHELL, [ cat > conftestmake <<EOF SHELL=/bin/sh -n
9edb202004-03-10Henrik Grubbström (Grubba) false:
b0a67e2004-03-08Henrik Grubbström (Grubba)  /bin/false
9edb202004-03-10Henrik Grubbström (Grubba) true:
58d0b02004-03-10Henrik Grubbström (Grubba)  :
9edb202004-03-10Henrik Grubbström (Grubba) complex_false: test "foo" = "foo" && /bin/false complex_true:
58d0b02004-03-10Henrik Grubbström (Grubba)  test "foo" = "bar" || :
b0a67e2004-03-08Henrik Grubbström (Grubba) EOF
1252d32004-03-10Henrik Grubbström (Grubba)  if ${MAKE-make} -f conftestmake false >&AC_FD_CC 2>&AC_FD_CC; then
e8d9132004-03-08Henrik Grubbström (Grubba)  # /bin/sh was found, and /bin/false was not executed.
b0a67e2004-03-08Henrik Grubbström (Grubba)  pike_cv_make_supports_spaces_in_SHELL=yes
1252d32004-03-10Henrik Grubbström (Grubba)  elif ${MAKE-make} -f conftestmake complex_false >&AC_FD_CC 2>&AC_FD_CC; then
9edb202004-03-10Henrik Grubbström (Grubba)  # SHELL is ignored for simple targets, but not for more # complex expressions. # When SHELL is used, spaces are supported. pike_cv_make_supports_spaces_in_SHELL="complex only"
1252d32004-03-10Henrik Grubbström (Grubba)  elif ${MAKE-make} -f conftestmake complex_true >&AC_FD_CC 2>&AC_FD_CC; then
9edb202004-03-10Henrik Grubbström (Grubba)  # SHELL is ignored for all targets.
e8d9132004-03-08Henrik Grubbström (Grubba)  pike_cv_make_supports_spaces_in_SHELL=ignored
1252d32004-03-10Henrik Grubbström (Grubba)  elif ${MAKE-make} -f conftestmake true >&AC_FD_CC 2>&AC_FD_CC; then
9edb202004-03-10Henrik Grubbström (Grubba)  # SHELL is ignored for simple targets, but not for more # complex expressions. # When SHELL is used, spaces are not supported. pike_cv_make_supports_spaces_in_SHELL=no
b0a67e2004-03-08Henrik Grubbström (Grubba)  else
9edb202004-03-10Henrik Grubbström (Grubba)  # Spaces are not supported in SHELL.
b0a67e2004-03-08Henrik Grubbström (Grubba)  pike_cv_make_supports_spaces_in_SHELL=no fi rm -f conftestmake ]) AC_MSG_RESULT($pike_cv_make_supports_spaces_in_SHELL) else :; fi
eefb042004-12-29Marcus Agehall AC_ARG_ENABLE(pikelib, MY_DESCR([--enable-pikelib], [build pike as a library]), [enable_pikelib=yes], [enable_pikelib=no]) if test "x$enable_pikelib" != "xno"; then PIKE_MSG_WARN([BUILDING PIKE AS A LIBRARY -- HIGHLY EXPERIMENTAL!]) AC_DEFINE(LIBPIKE) fi
3084f22002-12-07Mirar (Pontus Hagland) AC_ARG_ENABLE(make_conf, MY_DESCR([--disable-make.conf], [do not use settings from /etc/make.conf]), [], [enable_make_conf=yes])
28a7602004-02-29Henrik Grubbström (Grubba) initial_cflags="${CFLAGS}" initial_cppflags="${CPPFLAGS}" initial_ldflags="${LDFLAGS}"
48ae531996-10-09Fredrik Hübinette (Hubbe) if test "x${CFLAGS-}" = x ; then
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  cflags_is_set=no
48ae531996-10-09Fredrik Hübinette (Hubbe) else cflags_is_set=yes
51bd9e1996-10-09Fredrik Hübinette (Hubbe) fi
c67b691996-11-16Fredrik Hübinette (Hubbe) if test "x${CPPFLAGS-}" = x ; then cppflags_is_set=no else cppflags_is_set=yes fi if test "x${LDFLAGS-}" = x ; then ldflags_is_set=no else ldflags_is_set=yes fi
8a88f12004-03-09Henrik Grubbström (Grubba) # if test "x$enable_make_conf" = x"yes" -a -f /etc/make.conf; then # set >conftest.tmp # echo Using settings from /etc/make.conf... # . /etc/make.conf # set | diff -u conftest.tmp - | grep '^+C' # PIKE_MSG_WARN([Using settings from /etc/make.conf.]) # fi
bd841c2002-12-10Henrik Grubbström (Grubba) 
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(cflags, MY_DESCR([--with-cflags=cflags], [specify extra c compiler flags]), [ CFLAGS="$with_cflags $CFLAGS" ]) AC_ARG_WITH(cppflags, MY_DESCR([--with-cppflags=cppflags], [specify extra c preprocessor flags]), [ CPPFLAGS="$with_cppflags $CPPFLAGS" ]) AC_ARG_WITH(ldflags, MY_DESCR([--with-ldflags=ldflags], [specify extra linker flags]), [ LDFLAGS="$with_ldflags $LDFLAGS" ])
f2e5eb2001-04-25Henrik Grubbström (Grubba) 
ace3132004-03-09Xavier Beaudouin # Force use of thread libs LIBS
6c74552004-03-15Henrik Grubbström (Grubba) AC_ARG_WITH(thread-library, MY_DESCR([--with-thread-library=lib], [Use a specific thread library]), [ case "x$withval" in x-*) with_thread_library="$withval" ;; *) with_thread_library="-l$withval" ;; esac ], [ with_thread_library=no ])
ace3132004-03-09Xavier Beaudouin 
7b39411997-02-06Fredrik Hübinette (Hubbe) for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([You are using a site file to initialize configure, please
7b39411997-02-06Fredrik Hübinette (Hubbe) note that this can lead to problems if anything in $ac_site_file is not correct. If Pike does not compile, or does not run, please try this to compile Pike again:
b46d672005-11-22Henrik Grubbström (Grubba) rm -f ./config.cache ; CONFIG_SITE=x ./configure ; make])
7b39411997-02-06Fredrik Hübinette (Hubbe)  fi done
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_ENABLE(binary, MY_DESCR([--disable-binary],
a924142002-11-18Henrik Grubbström (Grubba)  [do not configure for binary build, only do tests for precompilation stuff]),
a1c5022001-10-06Henrik Grubbström (Grubba)  [], [enable_binary=yes])
4174542001-01-26Martin Stjernholm  if test "x$enable_binary" = "xno"; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([Short-circuiting configure tests for binary building. Only some
c6f4a82002-01-27Martin Stjernholm targets in the Makefile can be used, typically those that only
0a86982003-11-07Martin Stjernholm operates on the source directory, e.g. depend.])
5c9db42002-01-27Martin Stjernholm  AC_DEFINE(DISABLE_BINARY)
4174542001-01-26Martin Stjernholm else
1acce82001-01-27Martin Stjernholm  if test ! -z "$pike_cv_prog_CC_save" -a ! -z "$CC" -a "$CC" != "$pike_cv_prog_CC_save" then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([CC is different than last time Pike was compiled,
0a86982003-11-07Martin Stjernholm It is probably best to delete ./config.cache before proceeding.])
1acce82001-01-27Martin Stjernholm  fi
7b39411997-02-06Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm  pike_cv_prog_CC_save="$CC"
7b39411997-02-06Fredrik Hübinette (Hubbe) 
c6f4a82002-01-27Martin Stjernholm fi
abeefc2002-04-30Martin Stjernholm AC_ARG_ENABLE(noopt-retry, MY_DESCR([--disable-noopty-retry],
a924142002-11-18Henrik Grubbström (Grubba)  [do not retry compilation without optimizations if it fails]),
abeefc2002-04-30Martin Stjernholm  [], [noopt_retry=yes])
c6f4a82002-01-27Martin Stjernholm # Do the below even when --disable-binary is used, since we need a # real $CPP, and AC_PROG_CPP wants AC_PROG_CC to be called earlier. # $CC will be overridden with a dummy later on. # MY_AC_PROG_CC # The above has problems if the smartlink binary is removed. /grubba
3ae7c02006-06-16Henrik Grubbström (Grubba)  AC_LANG_C # Workaround for COMPILER_EXEEXT bailing out with icc and too new gcc. # "Command-line error: invalid GNU version number: 403". # The following seem to be the max gcc-versions: # # icc gcc-version # 8.1 340 # 9.0 400? # 9.1 410? if test "x$CC" = "x"; then :; else AC_MSG_CHECKING([whether we need an icc workaround]) AC_CACHE_VAL(pike_cv_need_icc_gcc_version, [ cat >conftest.c <<EOF int main() { return 0; } EOF ORIG_CFLAGS="$CFLAGS" for pike_cv_need_icc_gcc_version in no 420 410 400 340 330 320 310 no; do if test "x$pike_cv_need_icc_gcc_version" = "xno"; then :; else CFLAGS="$ORIG_CFLAGS -gcc-version=$pike_cv_need_icc_gcc_version" fi if AC_TRY_EVAL(ac_compile); then break; fi done CFLAGS="$ORIG_CFLAGS" ]) AC_MSG_RESULT($pike_cv_need_icc_gcc_version) if test "x$pike_cv_need_icc_gcc_version" = "xno"; then :; else CFLAGS="$CFLAGS -gcc-version=$pike_cv_need_icc_gcc_version" fi fi
70f4952008-07-21Martin Stjernholm # AC_PROG_CC won't modify CFLAGS if it's already set from the icc
a4e6e42008-07-21Martin Stjernholm # workaround test above, so we make sure it's always set and then # modify CFLAGS ourselves afterwards. ${CFLAGS:=}
c6f4a82002-01-27Martin Stjernholm AC_PROG_CC
1be07f2011-02-14Henrik Grubbström (Grubba) AC_PROG_CXX
a4e6e42008-07-21Martin Stjernholm  # Only need to think of -g since -O2 or other optimization flags gets # added through other configure tests. test "$ac_cv_prog_cc_g" = yes && CFLAGS="-g $CFLAGS"
c6f4a82002-01-27Martin Stjernholm AC_PROG_CPP
6db7732012-02-08Henrik Grubbström (Grubba) AC_PROG_CXXCPP
7501042007-10-03Henrik Grubbström (Grubba) AC_PROG_EGREP
2ed72c2000-09-17Henrik Grubbström (Grubba) 
9211642004-12-16Henrik Grubbström (Grubba) AC_MSG_CHECKING([whether we are using Intel C])
00f5cf2004-12-16Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_prog_icc, [
d386a22004-12-16Henrik Grubbström (Grubba)  AC_EGREP_CPP([oui], [
9211642004-12-16Henrik Grubbström (Grubba) #if defined(__ECC) || defined(__ICC) || defined(__INTEL_COMPILER)
b0536b2004-12-16Dan Nelson  oui;
9211642004-12-16Henrik Grubbström (Grubba) #endif
55f2a92004-12-16Henrik Grubbström (Grubba)  ], pike_cv_prog_icc=yes, pike_cv_prog_icc=no)
9211642004-12-16Henrik Grubbström (Grubba) ]) AC_MSG_RESULT($pike_cv_prog_icc) if test "$pike_cv_prog_icc" = "yes"; then ICC=yes fi
b3f7ab2009-05-27Henrik Grubbström (Grubba) # This segment is disabled for now. if :; then :; else AC_MSG_CHECKING([for option to enter C99-mode]) AC_CACHE_VAL(pike_cv_flag_c99, [ ORIG_CPPFLAGS="$CPPFLAGS" for pike_cv_flag_c99 in '' '-std=gnu99' '-std=gnu9x' '-xc99' no; do if test "x$pike_cv_flag_c99" = "xno"; then break; fi # C99 is supported only in XPG6/POSIX.1-2001. pike_cv_flag_c99="$pike_cv_flag_c99 -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -DPOSIX_C_SOURCE=200112" CPPFLAGS="$ORIG_CPPFLAGS $pike_cv_flag_c99" AC_EGREP_CPP([oui], [ /* Include THE standard header file to check for C99 compliance. */ #include <stdio.h> #if __STDC_VERSION__ - 0 >= 199901 oui #endif ], [ # Ok. break; ]) done ORIG_CPPFLAGS="$CPPFLAGS" ]) if test "x$pike_cv_flag_c99" = "xno"; then AC_MSG_RESULT(not supported) AC_MSG_CHECKING([for level of XPG support]) AC_CACHE_VAL(pike_cv_flag_xpg, [ # FIXME: How determine what the max level of XPG support is? :; ]) AC_MSG_RESULT([$pike_cv_flag_xpg]) else AC_MSG_RESULT([${pike_cv_flag_c99:-(none)}]) CPPFLAGS="$CPPFLAGS $pike_cv_flag_c99" fi fi
2ed72c2000-09-17Henrik Grubbström (Grubba) #############################################################################
c6f4a82002-01-27Martin Stjernholm if test "x$enable_binary" != "xno"; then
1acce82001-01-27Martin Stjernholm  AC_ISC_POSIX AC_AIX AC_MINIX fi
2ed72c2000-09-17Henrik Grubbström (Grubba)  #############################################################################
4827972000-09-16Henrik Grubbström (Grubba) 
0e88fe2005-06-08Henrik Grubbström (Grubba) # ABI selection.
226a722006-01-05Henrik Grubbström (Grubba) PIKE_SELECT_ABI
0044122005-06-09Henrik Grubbström (Grubba) 
0e88fe2005-06-08Henrik Grubbström (Grubba) #############################################################################
1ab51d2001-06-29Henrik Grubbström (Grubba) if test "x$GCC" = "x"; then GCC=no
9b62872002-10-03Henrik Grubbström (Grubba) else
b933a62002-10-03Henrik Grubbström (Grubba)  :;
9b62872002-10-03Henrik Grubbström (Grubba) fi
1ab51d2001-06-29Henrik Grubbström (Grubba) 
4827972000-09-16Henrik Grubbström (Grubba) if test "x$GCC" = "xno" -a "x$TCC" = "xno"; then if test "x$ac_cv_prog_cc_cross" = "xyes"; then
a924142002-11-18Henrik Grubbström (Grubba)  # The AIX 5L/cc beta can not generate working binaries without a
4827972000-09-16Henrik Grubbström (Grubba)  # data-segment...
a924142002-11-18Henrik Grubbström (Grubba)  AC_MSG_CHECKING([if we are really using a cross-compiler])
6cefa12000-09-27Henrik Grubbström (Grubba) 
7fcd072000-09-16Henrik Grubbström (Grubba)  AC_CACHE_VAL(pike_cv_datasegment_required, [ ac_cv_prog_cc_cross=no; AC_TRY_RUN([int foo;main(){return(0);}], [
4827972000-09-16Henrik Grubbström (Grubba)  pike_cv_datasegment_required=yes
7fcd072000-09-16Henrik Grubbström (Grubba)  ], [
4827972000-09-16Henrik Grubbström (Grubba)  pike_cv_datasegment_required=no
7fcd072000-09-16Henrik Grubbström (Grubba)  ac_cv_prog_cc_cross=yes ], [ pike_cv_datasegment_required=no ac_cv_prog_cc_cross=yes ])
4827972000-09-16Henrik Grubbström (Grubba)  ]) if test "x$pike_cv_datasegment_required" = "xyes"; then AC_MSG_RESULT([no -- Applying data-segment kludge]) ac_cv_prog_cc_cross=no cat >conftest.c <<EOF static int foo; EOF pike_cv_datasegemnt_file=no if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then rm -f "data-segment.$ac_objext" if mv "conftest.$ac_objext" "data-segment.$ac_objext"; then if test -f "`pwd`/data-segment.$ac_objext"; then pike_cv_datasegemnt_file="`pwd`/data-segment.$ac_objext" else
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Lost track of data-segment kludge-file.)
4827972000-09-16Henrik Grubbström (Grubba)  fi else
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Failed to rename data-segment kludge-file.)
4827972000-09-16Henrik Grubbström (Grubba)  fi else
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Can not find data-segment kludgefile.)
4827972000-09-16Henrik Grubbström (Grubba)  fi else
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Failed to compile data-segment kludge.)
4827972000-09-16Henrik Grubbström (Grubba)  fi if test "x$pike_cv_datasegment_file" = "xno"; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Some tests may yield false results.)
4827972000-09-16Henrik Grubbström (Grubba)  else LIBS="$pike_cv_datasegment_file $LIBS" export LIBS
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(Data-segment kludge applied.)
4827972000-09-16Henrik Grubbström (Grubba)  fi else AC_MSG_RESULT(yes) fi fi
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "x$TCC" = "xyes"; then AC_MSG_CHECKING(if we can use pragma TenDRA longlong) AC_CACHE_VAL(pike_cv_pragma_tendra_longlong, [ AC_TRY_COMPILE([
fdcf1c2002-10-04Henrik Grubbström (Grubba) #pragma TenDRA longlong type allow
0c4c482010-01-18Henrik Grubbström (Grubba)  ], [], [ pike_cv_pragma_tendra_longlong=yes ], [ pike_cv_pragma_tendra_longlong=no ]) ]) if test "x$pike_cv_pragma_tendra_longlong" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PRAGMA_TENDRA_LONGLONG) else AC_MSG_RESULT(no) fi
fdcf1c2002-10-04Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if we can use pragma TenDRA set longlong type) AC_CACHE_VAL(pike_cv_pragma_tendra_set_longlong_type, [ AC_TRY_COMPILE([
fdcf1c2002-10-04Henrik Grubbström (Grubba) #ifdef HAVE_TENDRA_LONGLONG #pragma TenDRA longlong type allow #endif /* HAVE_TENDRA_LONGLONG */ #pragma TenDRA set longlong type : long long long long foo;
0c4c482010-01-18Henrik Grubbström (Grubba)  ], [], [ pike_cv_pragma_tendra_set_longlong_type=yes ], [ pike_cv_pragma_tendra_set_longlong_type=no ]) ]) if test "x$pike_cv_pragma_tendra_set_longlong_type" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PRAGMA_TENDRA_SET_LONGLONG_TYPE) else AC_MSG_RESULT(no) fi else :; fi
4827972000-09-16Henrik Grubbström (Grubba) 
18be802000-03-02Fredrik Hübinette (Hubbe) #############################################################################
1acce82001-01-27Martin Stjernholm if test "x$enable_binary" != "xno"; then
18be802000-03-02Fredrik Hübinette (Hubbe) # # The purpose of this test is to check that there is no filesystem # caching preventing pike from compiling correctly. #
d4f9e92000-05-19Martin Stjernholm AC_MSG_CHECKING([filesystem synchronization])
18be802000-03-02Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_filesystem_syncronization, [ pike_cv_filesystem_syncronization=working AC_EGREP_CPP(true, [ true ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(false, [ false ], , pike_cv_filesystem_syncronization=broken)
21ee4b2003-12-16Marek Habersack  AC_EGREP_CPP(oui, [ oui ], , pike_cv_filesystem_syncronization=broken)
18be802000-03-02Fredrik Hübinette (Hubbe)  AC_EGREP_CPP(no, [ no ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(near, [ far ], pike_cv_filesystem_syncronization=broken, ) AC_EGREP_CPP(up, [ up ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(down, [ down], , pike_cv_filesystem_syncronization=broken) ]) AC_MSG_RESULT($pike_cv_filesystem_syncronization) if test "x$pike_cv_filesystem_syncronization" = xbroken ; then AC_MSG_ERROR([Filesystem caching is too aggressive. If you are using Samba, make sure to have the following line in your smb.conf: oplocks = False ]) exit 1 fi
1acce82001-01-27Martin Stjernholm fi
4174542001-01-26Martin Stjernholm #############################################################################
c6f4a82002-01-27Martin Stjernholm LIBDIR=`(cd $srcdir/../lib ; pwd)` BINDIR=`(cd $srcdir/../bin ; pwd)`
3c9dc12002-08-01Martin Nilsson MANDIR=`(cd $srcdir/../man ; pwd)`
8c392e2003-01-02Henrik Grubbström (Grubba) DOCDIR=`(cd $srcdir/../refdoc ; pwd)`
3c9dc12002-08-01Martin Nilsson BASEDIR=`(cd $srcdir/.. ; pwd)`
c6f4a82002-01-27Martin Stjernholm BUILDDIR=`pwd` AC_SUBST(LIBDIR) AC_SUBST(BINDIR)
3c9dc12002-08-01Martin Nilsson AC_SUBST(MANDIR)
8c392e2003-01-02Henrik Grubbström (Grubba) AC_SUBST(DOCDIR)
3c9dc12002-08-01Martin Nilsson AC_SUBST(BASEDIR)
c6f4a82002-01-27Martin Stjernholm AC_SUBST(BUILDDIR) #############################################################################
4174542001-01-26Martin Stjernholm #
c6f4a82002-01-27Martin Stjernholm # Some cross-compilation support and --disable-binary stuff
4174542001-01-26Martin Stjernholm #
c6f4a82002-01-27Martin Stjernholm if test "x$enable_binary" = "xno"; then CROSS=yes else CROSS="$ac_cv_prog_cc_cross" fi
4174542001-01-26Martin Stjernholm AC_SUBST(CROSS)
c6f4a82002-01-27Martin Stjernholm if test "x$enable_binary" = "xno"; then CC="$BINDIR/nobinary_dummy cc" RUNPIKE="USE_PIKE"
546ce12006-08-02Martin Stjernholm  RUNTPIKE="USE_PIKE"
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "x$cross_compiling" = "xyes"; then RUNPIKE="DEFAULT_RUNPIKE" RUNTPIKE="USE_PIKE"
4174542001-01-26Martin Stjernholm else
0c4c482010-01-18Henrik Grubbström (Grubba)  RUNPIKE="DEFAULT_RUNPIKE" RUNTPIKE="USE_TPIKE"
4174542001-01-26Martin Stjernholm fi
c6f4a82002-01-27Martin Stjernholm AC_SUBST(RUNPIKE)
546ce12006-08-02Martin Stjernholm AC_SUBST(RUNTPIKE)
4174542001-01-26Martin Stjernholm  ############################################################################# if test "x$enable_binary" != "xno"; then # The following tests are only relevant if we intend to build binaries.
6900981999-05-07Fredrik Hübinette (Hubbe) ############################################################################# AC_CHECK_HEADERS(fnord/fnord/fnord.h)
54be211999-05-12Henrik Grubbström (Grubba) AC_MSG_CHECKING([if CHECK_HEADERS works])
6900981999-05-07Fredrik Hübinette (Hubbe) if test "x$ac_cv_header_fnord_fnord_fnord_h" = xyes ; then
54be211999-05-12Henrik Grubbström (Grubba)  AC_MSG_RESULT(no)
6900981999-05-07Fredrik Hübinette (Hubbe)  exit 1 fi
54be211999-05-12Henrik Grubbström (Grubba) AC_MSG_RESULT(yes)
613bc52000-08-28Henrik Grubbström (Grubba)  #############################################################################
8cf37d1997-01-27Per Hedbor 
8421612001-06-29Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if we can allocate large auto variables) AC_CACHE_VAL(pike_cv_C_supports_large_auto, [ AC_TRY_LINK([ #include <stdio.h> int eat_stack(int foo) { char large_array[131072] = ""; int i, sum = 0; for (i = 0; i < foo; i++) {
a924142002-11-18Henrik Grubbström (Grubba)  /* Make sure the compiler does not optimize away the array. */
8421612001-06-29Fredrik Hübinette (Hubbe)  large_array[i] = sum; sum += foo; } for (i = 0; i < foo; i++) { sum += large_array[i] - large_array[foo-1-i]; } return sum; } ], [ return !eat_stack(4711); ], [ pike_cv_C_supports_large_auto=yes ], [ pike_cv_C_supports_large_auto=no ]) ]) if test "$pike_cv_C_supports_large_auto" = "yes"; then AC_MSG_RESULT([yes - good]) else AC_MSG_RESULT([no]) AC_MSG_CHECKING([if we can make a workaround by defining _chkstk to call __chkstk]) AC_CACHE_VAL([pike_cv_kludge__chkstk], [ AC_TRY_LINK([ #include <stdio.h> int eat_stack(int foo) { char large_array[131072] = ""; int i, sum = 0; for (i = 0; i < foo; i++) {
a924142002-11-18Henrik Grubbström (Grubba)  /* Make sure the compiler does not optimize away the array. */
8421612001-06-29Fredrik Hübinette (Hubbe)  large_array[i] = sum; sum += foo; } for (i = 0; i < foo; i++) { sum += large_array[i] - large_array[foo-1-i]; } return sum; } extern size_t __chkstk(); size_t _chkstk() { return __chkstk(); } ], [ return !eat_stack(4711); ], [ pike_cv_kludge__chkstk=yes ], [ pike_cv_kludge__chkstk=no ]) ]) if test "$pike_cv_kludge__chkstk" = "yes"; then AC_MSG_RESULT([yes - applying workaround]) AC_DEFINE(HAVE_BROKEN_CHKSTK) else AC_MSG_RESULT([no]) AC_ERROR([Your C compiler does not link code that uses large auto variables. Please check config.log, and fix the problem.]) exit 1 fi fi #############################################################################
d1e3fe1999-03-06Henrik Grubbström (Grubba) ## Build smartlink
bb47fb2004-05-08Marcus Agehall AC_ARG_ENABLE(smartlink_binary, MY_DESCR([--disable-smartlink-binary],
033abd2008-08-15Henrik Grubbström (Grubba)  [do not build and use the smartlink binary]), [if test "x$enableval" = "xno"; then force_smartlink_script_only=yes fi])
d1e3fe1999-03-06Henrik Grubbström (Grubba)  if test -x /usr/bin/uname 2>/dev/null; then UNAME=`/usr/bin/uname -sr` elif test -x /bin/uname 2>/dev/null; then UNAME=`/bin/uname -sr` else UNAME=unknown fi
613bc52000-08-28Henrik Grubbström (Grubba) # We need some special hacks when running slowaris AC_PATH_PROG(uname_prog,uname,no) AC_MSG_CHECKING(operating system) AC_CACHE_VAL(pike_cv_sys_os, [
cbb6512003-12-07Marcus Comstedt if test "$cross_compiling" = "yes"; then case "$host_alias" in *amigaos*) pike_cv_sys_os="AmigaOS";; *linux*) pike_cv_sys_os="Linux";; *solaris*) pike_cv_sys_os="Solaris";; *sunos*) pike_cv_sys_os="SunOS";; *windows*) pike_cv_sys_os="Windows_NT";;
9fee572005-01-06Henrik Grubbström (Grubba)  *mingw*|*MINGW*) pike_cv_sys_os="Windows_NT" pike_cv_is_mingw="yes";;
cbb6512003-12-07Marcus Comstedt  *) pike_cv_sys_os="Unknown";; esac
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "$uname_prog" != "no"; then
7cfebe2001-09-23Marcus Comstedt  # uname on UNICOS doesn't work like other people's uname... if getconf CRAY_RELEASE >/dev/null 2>&1; then pike_cv_sys_os="UNICOS" else pike_cv_sys_os="`uname`" fi
613bc52000-08-28Henrik Grubbström (Grubba)  case "$pike_cv_sys_os" in SunOS) case "`uname -r`" in 5.*) pike_cv_sys_os="Solaris" ;; esac ;;
dc83082000-09-15Henrik Grubbström (Grubba)  Monterey64) # According to the release notes, the string "Monterey64" # will be changed to "AIX" in the final release. # (Monterey 64 is also known as AIX 5L). pike_cv_sys_os="AIX" ;;
ae6fed2002-08-17Henrik Grubbström (Grubba)  *Windows*|*windows*) pike_cv_sys_os="Windows_NT" ;;
e37d792004-05-10Marcus Agehall  *MINGW*|*mingw*)
9fee572005-01-06Henrik Grubbström (Grubba)  pike_cv_is_mingw="yes"
e37d792004-05-10Marcus Agehall  pike_cv_sys_os="Windows_NT" ;;
613bc52000-08-28Henrik Grubbström (Grubba)  esac else pike_cv_sys_os="Not Solaris" fi ]) AC_MSG_RESULT($pike_cv_sys_os)
ec24a42006-07-02Martin Stjernholm if test "x$pike_cv_sys_os" = xWindows_NT; then PIKE_FUNCS_NEED_DECLS(yes) fi
8d17be2006-07-02Martin Stjernholm AC_CHECK_HEADERS(stdlib.h string.h unistd.h sys/stat.h sys/types.h sys/errno.h)
613bc52000-08-28Henrik Grubbström (Grubba) if test "$GCC" = "yes"; then :; else # # Special hack for HP-UX stupid cc # if test "$pike_cv_sys_os" = "HP-UX"; then AC_TRY_COMPILE([int foo(int bar);],[],[], [ OLD_CC="${CC-cc}" OLD_CFLAGS="$CFLAGS" case "/$CC" in */smartlink\ cc) if test -x /usr/bin/cc; then
ac9aca2007-05-04Martin Stjernholm  CC="`echo $CC|sed -e 's/ cc/ \/usr\/bin\/cc/'`"
613bc52000-08-28Henrik Grubbström (Grubba)  else : ; fi ;; esac CFLAGS="-Ae +Olibcalls $CFLAGS" AC_TRY_COMPILE([int foo(int bar);],[],[],[ CC="$OLD_CC" CFLAGS="$OLD_CFLAGS" ]) pike_cv_prog_CC="${CC}" ]) fi fi if test "$pike_cv_sys_os" = "Solaris" ; then AC_DEFINE(SOLARIS) else : fi
25e4742002-10-13Xavier Beaudouin # Workaround for compiling Pike on some OS that have some clues
827dda2002-10-04Xavier Beaudouin case "$pike_cv_sys_os" in CYGWIN*)
87eacc2005-02-04Henrik Grubbström (Grubba)  # Cygwin has both Windows includes and Unix ones.
93a5212007-12-15Henrik Grubbström (Grubba)  # Hiding them makes it a somewhat Unix compliant OS.
827dda2002-10-04Xavier Beaudouin  echo 'Cygwin host detected. Enabling workarounds...'
ba0a652002-10-09Xavier Beaudouin  # winsock.h, winbase.h, winsock2.h, windows.h, wingdi.h, windef.h
827dda2002-10-04Xavier Beaudouin  # are part of VC api but given as headers in cygwin. We
87eacc2005-02-04Henrik Grubbström (Grubba)  # should not detect them when using cygwin
827dda2002-10-04Xavier Beaudouin  ac_cv_header_wingdi_h="no"
ba0a652002-10-09Xavier Beaudouin  ac_cv_header_windef_h="no"
827dda2002-10-04Xavier Beaudouin  ac_cv_header_winsock_h="no" ac_cv_header_winsock2_h="no" ac_cv_header_winbase_h="no" ac_cv_header_windows_h="no"
09322e2003-03-09Xavier Beaudouin  with_machine_code="no"
827dda2002-10-04Xavier Beaudouin  ;;
e37d792004-05-10Marcus Agehall  Windows_NT)
9fee572005-01-06Henrik Grubbström (Grubba)  if test "$pike_cv_is_mingw" = "yes"; then #with_machine_code="no"
e37d792004-05-10Marcus Agehall  ac_cv_func_fpclass="no" fi ;;
25e4742002-10-13Xavier Beaudouin  FreeBSD*)
87eacc2005-02-04Henrik Grubbström (Grubba)  # FreeBSD has different naming convention for gtk-config and sdl-config
64356c2003-12-19Dan Nelson  if test "x${GTK_CONFIG}" = "x"; then
2b30042003-12-17Marcus Comstedt  GTK_CONFIG=`which ${ac_tool_prefix}gtk12-config`
aa5ac72002-10-13Xavier Beaudouin  export GTK_CONFIG
25e4742002-10-13Xavier Beaudouin  fi
64356c2003-12-19Dan Nelson  if test "x${SDL_CONFIG}" = "x"; then
2b30042003-12-17Marcus Comstedt  SDL_CONFIG=`which ${ac_tool_prefix}sdl11-config`
aa5ac72002-10-13Xavier Beaudouin  export SDL_CONFIG
25e4742002-10-13Xavier Beaudouin  fi ;;
827dda2002-10-04Xavier Beaudouin esac
514bbc2009-09-19Henrik Grubbström (Grubba) # Skip if user does not wish to use smartlink binary.
bb47fb2004-05-08Marcus Agehall if test "x$force_smartlink_script_only" = "x"; then
ac423c2003-01-16David Hedbor # Strip smartlink from $CC REALCC="`echo $CC|sed -e 's/.*smartlink //'`"
9041271999-03-06Henrik Grubbström (Grubba) # FIXME: Add proper tests
71561a2002-08-21Henrik Grubbström (Grubba) AC_MSG_CHECKING([for ld.so run path method]) AC_CACHE_VAL(pike_cv_ld_so_run_path_method, [ case "$UNAME" in OSF1\ V4.*|OSF1\ V5.*|OSF1\ V6.*) pike_cv_run_path_method=rpath
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  HPUX\ 11.*) pike_cv_run_path_method=plus_b
108dde2000-10-31Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  IRIX\ 6.*) pike_cv_run_path_method=rpath
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  IRIX\ 5.*) pike_cv_run_path_method=rpath
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  SunOS\ 5.*) if test "$TCC" = "yes"; then # tcc doesn't know about -R pike_cv_run_path_method=wl_r else pike_cv_run_path_method=r fi
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
d4d23e2005-11-30Marek Habersack  Linux\ 2.* | GNU/kFreeBSD* )
9211642004-12-16Henrik Grubbström (Grubba)  if test "$ICC" = "yes"; then
3cfc072004-04-16Henrik Grubbström (Grubba)  # icc or ecc.
d4fc872003-01-16David Hedbor  pike_cv_run_path_method=qoption else pike_cv_run_path_method=wl fi
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  UnixWare\ 7.*|OpenUNIX\ 8.*) if test "$ac_cv_prog_gcc" = "yes"; then pike_cv_run_path_method=xlinker_yp_ else pike_cv_run_path_method=yp_ fi
ed7aeb2000-06-16Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  *) pike_cv_run_path_method=ld_library_path
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;;
71561a2002-08-21Henrik Grubbström (Grubba)  esac ])
fdb3872002-08-21Henrik Grubbström (Grubba) case "$pike_cv_run_path_method" in
71561a2002-08-21Henrik Grubbström (Grubba)  rpath) AC_DEFINE(USE_RPATH) AC_MSG_RESULT([use -rpath]) ;; plus_b) AC_DEFINE(USE_PLUS_b) AC_MSG_RESULT([use +b]) ;; yp_) AC_DEFINE(USE_YP_) AC_MSG_RESULT([use -Yp,]) ;; xlinker_yp_) AC_DEFINE(USE_XLINKER_YP_) AC_MSG_RESULT([use -Xlinker -Yp, -Xlinker]) ;; wl_r) AC_DEFINE(USE_Wl_R) AC_MSG_RESULT([use -Wl,-R]) ;; r) AC_DEFINE(USE_R) AC_MSG_RESULT([use -R]) ;; wl) AC_DEFINE(USE_Wl) AC_MSG_RESULT([use -Wl,-rpath]) ;;
d4fc872003-01-16David Hedbor  qoption) AC_DEFINE(USE_Qoption) AC_MSG_RESULT([use -Qoption,ld,-rpath]) ;;
71561a2002-08-21Henrik Grubbström (Grubba)  ld_library_path|*) AC_DEFINE(USE_LD_LIBRARY_PATH) AC_MSG_RESULT([use LD_LIBRARY_PATH/LD_RUN_PATH]) ;;
2565f41997-02-26Fredrik Hübinette (Hubbe) esac
5c9e1d2008-08-19Jonas Wallden # Smartlink needs to know if OS X uses flat or two-level namespace if test "$pike_cv_sys_os" = "Darwin" ; then AC_MSG_CHECKING([for Darwin linker namespace]) case "`uname -r`" in [1-6].*) AC_MSG_RESULT([flat (10.2 or older)]) pike_cv_osx_twolevel_namespace=no ;; *) AC_DEFINE(USE_OSX_TWOLEVEL_NAMESPACE) AC_MSG_RESULT([two-level (10.3 or newer)]) pike_cv_osx_twolevel_namespace=yes ;; esac fi
71561a2002-08-21Henrik Grubbström (Grubba) 
d1e3fe1999-03-06Henrik Grubbström (Grubba) # Fix a smartlink SMARTLINK="$BUILDDIR/smartlink"
9041271999-03-06Henrik Grubbström (Grubba) AC_MSG_CHECKING(if $SMARTLINK exists is up to date and works)
9edb202004-03-10Henrik Grubbström (Grubba) if ls -1tr "$SMARTLINK${ac_exeext}" "$srcdir/smartlink.$ac_ext" 2>/dev/null | head -n 1 | grep "smartlink.$ac_ext" >/dev/null 2>&AC_FD_CC && "$SMARTLINK" -v >/dev/null 2>&AC_FD_CC; then
d1e3fe1999-03-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes) else AC_MSG_RESULT(no)
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  SMARTBUILDCC="${REALCC-cc}"
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
9f85232000-11-26Henrik Grubbström (Grubba)  if echo foo "$CC" | egrep 'rntc.|rnt.cl' >/dev/null; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([rntcc/rntcl/rnticl/rntecl detected.])
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  AC_PATH_PROGS(SMARTBUILDCC,gcc cc egcs,gcc, $PATH:$EXTRA_PATH) echo Using $SMARTBUILDCC to compile smartlink.
0c4c482010-01-18Henrik Grubbström (Grubba)  elif test "x$ac_cv_prog_cc_cross" = "xyes"; then PIKE_MSG_WARN([Crosscompiler detected.]) AC_PATH_PROGS(SMARTBUILDCC, gcc cc egcs, gcc, /usr/bin:/bin/:/usr/ccs/bin:/usr/local/bin:/usr/sfw/bin:/opt/sfw/bin:/opt/csw/bin:$PATH:$EXTRA_PATH) echo Using $SMARTBUILDCC to compile smartlink.
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  fi
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  rm -f "$SMARTLINK"
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(whether smartlink compiles)
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
9edb202004-03-10Henrik Grubbström (Grubba)  link_cmd='${SMARTBUILDCC-cc} -o smartlink${ac_exeext} $CFLAGS -I. $CPPFLAGS $LDFLAGS $srcdir/smartlink.$ac_ext $LIBS 2>&AC_FD_CC' if { (eval echo Compiling smartlink: \"$link_cmd\") 1>&AC_FD_CC; (eval $link_cmd) 2>&AC_FD_CC; } && "$BUILDDIR/smartlink" -v >/dev/null 2>&AC_FD_CC; then
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(yes) else AC_MSG_RESULT(no - use the sh script) SMARTLINK="$BINDIR/smartlink"
d1e3fe1999-03-06Henrik Grubbström (Grubba)  fi fi
bb47fb2004-05-08Marcus Agehall else # force_smartlink_script_only AC_MSG_CHECKING(for smartlink build script) SMARTLINK="$BINDIR/smartlink" REALCC="$CC" AC_MSG_RESULT($SMARTLINK) fi # force_smartlink_script_only
d1e3fe1999-03-06Henrik Grubbström (Grubba)  CC="$SMARTLINK $REALCC" pike_cv_prog_CC="$CC"
d5efba1998-01-23Henrik Grubbström (Grubba) 
bf4cdf2011-02-14Henrik Grubbström (Grubba) # Strip smartlink from $CXX REALCXX="`echo $CXX|sed -e 's/.*smartlink //'`" CXX="$SMARTLINK $REALCXX" pike_cv_prog_CXX="$CXX"
424d9c1999-05-02Fredrik Hübinette (Hubbe) AC_SUBST(SMARTLINK) AC_SUBST(REALCC)
bf4cdf2011-02-14Henrik Grubbström (Grubba) AC_SUBST(REALCXX)
5286222011-03-25Henrik Grubbström (Grubba) export CC CXX REALCC REALCXX SMARTLINK
d5efba1998-01-23Henrik Grubbström (Grubba) 
d166d62000-08-06Henrik Grubbström (Grubba) AC_MSG_CHECKING([for a fallback compiler]) # Strip smartlink from $FALLBACK_CC FALLBACK_CC="`echo $FALLBACK_CC|sed -e 's/.*smartlink //'`" if test "x$FALLBACK_CC" = "x"; then AC_MSG_RESULT(no) else FALLBACK_CC="$SMARTLINK $FALLBACK_CC" AC_MSG_RESULT($FALLBACK_CC) fi AC_SUBST(FALLBACK_CC) export FALLBACK_CC
2565f41997-02-26Fredrik Hübinette (Hubbe) #############################################################################
1acce82001-01-27Martin Stjernholm fi #if test "x$enable_binary" != "xno" #############################################################################
2565f41997-02-26Fredrik Hübinette (Hubbe) 
8f9f3d2007-12-26Henrik Grubbström (Grubba) # Something seems to mess with the stack ulimit on some architectures...
5e2d842008-01-14Henrik Grubbström (Grubba) # # Cause found. GNU make 3.81 apparently raises the stack ulimit to max # without restoring it for the subprocesses. (Bug 18396 and 22010 at # http://savannah.gnu.org/projects/make)
8f9f3d2007-12-26Henrik Grubbström (Grubba) AC_DEFUN(PIKE_AC_DEBUG, [ echo "DEBUG: ----------------------------------" 1>&AC_FD_CC echo "Current limits: " 1>&AC_FD_CC ulimit -a 1>&AC_FD_CC echo "DEBUG: ++++++++++++++++++++++++++++++++++" 1>&AC_FD_CC ])
0ce67d2012-02-15Bill Welliver # Convenience function for querying Frameworks AC_DEFUN([AC_CHECK_FRAMEWORK], [m4_ifval([$3], , [AH_CHECK_FRAMEWORK([$1])])dnl AS_LITERAL_IF([$1], [AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1_$2])], [AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1''_$2])])dnl AC_CACHE_CHECK([for $2 in $1 framework], ac_Framework, [ac_check_framework_save_LIBS=$LIBS LIBS="-framework $1 $5 $LIBS" AC_LINK_IFELSE([AC_LANG_CALL([], [$2])], [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no)]) LIBS=$ac_check_framework_save_LIBS]) AS_IF([test AS_VAR_GET(ac_Framework) = yes], [m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FRAMEWORK_$1)) LIBS="-framework $1 $LIBS" ])], [$4])dnl AS_VAR_POPDEF([ac_Framework])dnl ])# AC_CHECK_FRAMEWORK # AH_CHECK_FRAMEWORK(FRAMEWORK) # --------------------- m4_define([AH_CHECK_FRAMEWORK], [AH_TEMPLATE(AS_TR_CPP(HAVE_FRAMEWORK_$1), [Define to 1 if you have the `]$1[' framework (-framework ]$1[).])])
8f9f3d2007-12-26Henrik Grubbström (Grubba) PIKE_AC_DEBUG
5e2d842008-01-14Henrik Grubbström (Grubba) if :; then :; else # Disabled for now. # It looks this makes it even worse... # It seems to cause bash to loop on a SIGSEGV in the signal handler # on Gentoo Linux/IA64.
3f36d02008-01-11Henrik Grubbström (Grubba) AC_MSG_CHECKING([if the stack ulimit is excessive]) if ulimit -s 1>&AC_FD_CC 2>&AC_FD_CC; then orig_ulimit="`ulimit -s 2>&AC_FD_CC`" if test "$orig_ulimit" -gt "65536"; then
433fe42008-01-12Henrik Grubbström (Grubba)  AC_MSG_RESULT([yes, $orig_ulimit - reducing to 8192.]) if ulimit -s 8192 1>&AC_FD_CC 2>&AC_FD_CC; then :; else AC_MSG_WARN([Failed to reduce stack ulimit to 8192.])
3f36d02008-01-11Henrik Grubbström (Grubba)  fi PIKE_AC_DEBUG else AC_MSG_RESULT([no, $orig_ulimit]) fi else AC_MSG_RESULT([unknown, ulimit -s failed.]) fi
5e2d842008-01-14Henrik Grubbström (Grubba) fi
3f36d02008-01-11Henrik Grubbström (Grubba) 
bde77e2011-05-01Per Hedbor AC_SYS_COMPILER_FLAG([-fvisibility=hidden],[fvisibility_hidden],CFLAGS)
7e37bb2002-08-20Henrik Grubbström (Grubba) AC_SYS_COMPILER_FLAG(+O3,plus_O3,OPTIMIZE, [
9714812008-07-12Martin Stjernholm  AC_SYS_COMPILER_FLAG(-O3,O3,OPTIMIZE, [ AC_SYS_COMPILER_FLAG(-O2,O2,OPTIMIZE, [ AC_SYS_COMPILER_FLAG(-O,O,OPTIMIZE) ])
7e37bb2002-08-20Henrik Grubbström (Grubba)  ]) ])
de575a1999-05-29Henrik Grubbström (Grubba) 
613bc52000-08-28Henrik Grubbström (Grubba) if test "$GCC" = "yes"; then
08f0e72011-05-16Per Hedbor 
dc83082000-09-15Henrik Grubbström (Grubba)  if test "$cflags_is_set" = "no"; then
ed1fae2002-08-14Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-pipe, pipe, OPTIMIZE)
30d7e32003-12-04Per Hedbor 
6cc8482005-06-09Henrik Grubbström (Grubba)  # The following segment is obsolete, since executable memory is # now allocated with mmap instead of with malloc(). # /grubba 2005-06-09 # # #### For exec-shield in newer linux kernels. # #### Linux's mprotect(2) is broken, so we unfortunately # #### need to enable executabe stack. # #### This test crashes under mingw32 so let's disable for win32 for now. # if test "$pike_cv_sys_os" != "Windows_NT"; then # AC_SYS_COMPILER_FLAG([[-Wa,--execstack]],executableheap,CFLAGS) # fi
613bc52000-08-28Henrik Grubbström (Grubba)  fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) fi
2901d31998-08-05Fredrik Hübinette (Hubbe) LD='$(CC) $(CFLAGS)'
37428e2001-10-05Fredrik Hübinette (Hubbe) LC_REQ="-lc"
0809711998-02-27Marcus Comstedt 
de16081997-06-03Fredrik Hübinette (Hubbe) case "$pike_cv_sys_os" in
f4215b2002-08-30H. William Welliver III  Darwin*) ;;
de16081997-06-03Fredrik Hübinette (Hubbe)  SCO*)
77b2821997-10-04Henrik Grubbström (Grubba)  case "$CFLAGS" in
2a7fc81999-11-29Boyd Lynn Gerber  *-belf*) AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[ case "$LDFLAGS" in *-belf*) ;; *) echo "Adding -belf option to ldflags." LDFLAGS="$LDFLAGS -belf" ;; esac ]) ;;
de16081997-06-03Fredrik Hübinette (Hubbe)  *)
2a7fc81999-11-29Boyd Lynn Gerber  AC_SYS_COMPILER_FLAG(-belf,belf,CFLAGS)
77b2821997-10-04Henrik Grubbström (Grubba)  ;; esac case "$LDFLAGS" in *-belf*) ;; *)
dda9061999-08-15Boyd Lynn Gerber  AC_SYS_COMPILER_FLAG(-belf,belf,LDFLAGS)
de16081997-06-03Fredrik Hübinette (Hubbe)  ;; esac ;;
2b49031998-03-05Henrik Grubbström (Grubba)  SunOS*) # gcc on SunOS 4 forgets to define this: echo "SunOS. Adding -D__USE_FIXED_PROTOTYPES__" CFLAGS="$CFLAGS -D__USE_FIXED_PROTOTYPES__" ;;
0809711998-02-27Marcus Comstedt  BSD/OS*)
1807bd2000-11-28Fredrik Hübinette (Hubbe)  case "`uname -r`" in
e9e9d82001-09-22Henrik Grubbström (Grubba)  [4-9].*) ;;
1807bd2000-11-28Fredrik Hübinette (Hubbe)  *) LD="$BINDIR/smartlink shlicc";; esac
0809711998-02-27Marcus Comstedt  ;;
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*)
2a7fc81999-11-29Boyd Lynn Gerber  case "$CFLAGS" in *-Kalloca*) ;; *) if test "$GCC" != "yes"; then # We are using built-in inline function CFLAGS="$CFLAGS -Kalloca" CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
37428e2001-10-05Fredrik Hübinette (Hubbe)  LC_REQ=""
2a7fc81999-11-29Boyd Lynn Gerber  fi ;; esac
9ab4461998-11-06Honza Petrous  ;;
d4fc872003-01-16David Hedbor  Linux*)
3cfc072004-04-16Henrik Grubbström (Grubba)  if $REALCC -V 2>&1 | head -1 | grep "Intel(R) C" >/dev/null; then # icc or ecc.
d4fc872003-01-16David Hedbor  LC_REQ="" fi ;;
de16081997-06-03Fredrik Hübinette (Hubbe) esac
dcad551996-08-03Fredrik Hübinette (Hubbe) 
0809711998-02-27Marcus Comstedt AC_SUBST(LD)
37428e2001-10-05Fredrik Hübinette (Hubbe) AC_SUBST(LC_REQ)
0809711998-02-27Marcus Comstedt 
de16081997-06-03Fredrik Hübinette (Hubbe) #############################################################################
f6c3371998-09-29Henrik Grubbström (Grubba) 
87eacc2005-02-04Henrik Grubbström (Grubba) AC_ARG_WITH(extra_debug_checks, MY_DESCR([--with-extra-debug-checks], [enable some extra (possibly verbose) debug checks.]), [], [ if test "x$pike_cv_sys_os" = "xOSF1"; then # Attempt to detect the cause for test_resolv to fail on Unicode.so. with_extra_debug_checks="yes"
2cc1792006-08-09Henrik Grubbström (Grubba)  elif test "x$pike_cv_sys_os" = "xOpenBSD"; then # Attempt to detect cause of dmalloc failure on OpenBSD. with_extra_debug_checks="yes"
87eacc2005-02-04Henrik Grubbström (Grubba)  else with_extra_debug_checks=no fi ]) if test "x$with_extra_debug_checks" = "xno"; then :; else AC_MSG_WARN([Enabling extra debug checks.]) AC_DEFINE([PIKE_EXTRA_DEBUG]) fi #############################################################################
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(patch_gcc, MY_DESCR([--with-patch-gcc], [attempt to patch the UA32 relocation bug.]), [], [with_patch_gcc=no])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba) AC_ARG_WITH(force_ua32, MY_DESCR([--with-force-ua32], [ignore the UA32 relocation bug.]), [], [with_force_ua32=no])
348fca1999-05-29Henrik Grubbström (Grubba) # Some sanity checks.
4313c92000-01-15Fredrik Hübinette (Hubbe) if test "$GCC" = "yes" -a "$pike_cv_sys_os" = "Solaris" && test "`uname -p`" = "sparc"; then
348fca1999-05-29Henrik Grubbström (Grubba)  # Solaris/sparc: # Check that gnu ld isn't used. # It's usually hidden in $prefix/sparc-sun-solaris2.?/bin/. # NOTE: M4 uses [] as quotes. gcc_ld_path="`$CC -v 2>&1 | sed -e '1,1s/[[^\/]]*\(\/.*\/\)[[^\/]]*$/\1/p;d' | sed -e '/lib\/gcc-lib\//s/lib\/gcc-lib\///;s/\/[[0-9]]*\.[[0-9]]*\.[[0-9]]*\/$/\/bin/'`"
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x$gcc_ld_path" = "x"; then :; elif test -d "$gcc_ld_path/."; then if "$gcc_ld_path/ld" -v 2>&1 | grep -i GNU >/dev/null; then PIKE_MSG_WARN([GNU ld found on Solaris sparc system ($gcc_ld_path/ld).
0a86982003-11-07Martin Stjernholm This may cause the dynamic module support to fail.])
348fca1999-05-29Henrik Grubbström (Grubba)  else :; fi
0c4c482010-01-18Henrik Grubbström (Grubba)  else :; fi
348fca1999-05-29Henrik Grubbström (Grubba)  unset gcc_ld_path
9998151999-05-30Henrik Grubbström (Grubba)  # Watch out for gcc-2.8.1 on Solaris 7 sparc machines. It generates # assembler code which contains .uaword directives, which in turn # generates code with R_SPARC_UA32 relocations, which /usr/bin/ld.so # has buggy support for (it doesn't relocate the MSB). # Check that gcc doesn't generate uaword opcodes AC_MSG_CHECKING(if your gcc generates uaword opcodes) AC_CACHE_VAL(pike_cv_gcc_uaword, [ cat > conftest.c <<EOF char *foo[[]] = { "bar" }; EOF
ea62cf2004-09-13Marcus Comstedt  pike_compile='${CC-cc} -S $CPPFLAGS conftest.c 1>&AC_FD_CC'
9998151999-05-30Henrik Grubbström (Grubba)  pike_cv_gcc_uaword=no
9edb202004-03-10Henrik Grubbström (Grubba)  if { (eval echo configure: \"$pike_compile\") >&AC_FD_CC; (eval $pike_compile) 2>&AC_FD_CC; }; then if grep ".uaword" conftest.s 2>&AC_FD_CC >/dev/null; then echo "configure: result contains .uaword:" >&AC_FD_CC cat conftest.s >&AC_FD_CC
9998151999-05-30Henrik Grubbström (Grubba)  pike_cv_gcc_uaword=yes else :; fi else
9edb202004-03-10Henrik Grubbström (Grubba)  echo "configure: failed program was:" >&AC_FD_CC cat conftest.c >&AC_FD_CC
9998151999-05-30Henrik Grubbström (Grubba)  fi rm -rf conftest.* ])
cfd7c91999-05-30Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_gcc_uaword)
9998151999-05-30Henrik Grubbström (Grubba)  # Check if as generates R_SPARC_UA32 relocations from .uaword. if test "$pike_cv_gcc_uaword" = "yes"; then AC_MSG_CHECKING([if your as generates R_SPARC_UA32 relocations]) AC_CACHE_VAL(pike_cv_as_r_sparc_ua32, [ AC_TRY_ASSEMBLE([ .section ".rodata" .align 8 .STRING: .asciz "String" .section ".data" .align 4 .type string,#object .size string,4 string: .uaword .STRING ],[ if /usr/ccs/bin/elfdump -r conftest.o | grep -i R_SPARC_UA32 >/dev/null 2>&AC_FD_CC; then pike_cv_ac_r_sparc_ua32=yes else pike_cv_ac_r_sparc_ua32=no fi ],[ pike_cv_ac_r_sparc_ua32=no ]) ]) AC_MSG_RESULT($pike_cv_ac_r_sparc_ua32) if test "$pike_cv_ac_r_sparc_ua32" = "yes"; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([Your gcc/as combo may generate R_SPARC_UA32 relocations. R_SPARC_UA32 relocations are unsupported in Solaris >= 2.3, and have broken support in Solaris 7.])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test "x$with_patch_gcc$with_force_ua32" = "xnono"; then
b09bef2001-01-25Henrik Grubbström (Grubba)  if test -d "/var/sadm/patch/107058-01/."; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([Back out patch 107058-01, or recompile gcc with a modified config/sparc/sol2.h.])
b09bef2001-01-25Henrik Grubbström (Grubba)  else
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Recompile gcc with a modified config/sparc/sol2.h.])
b09bef2001-01-25Henrik Grubbström (Grubba)  fi
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([You may want to try binary patching gcc. In that case rerun configure with --with-patch-gcc. NOTE: Binary patching is highly experimental and risky, and may break your existing gcc even more. R_SPARC_UA32 relocations are supported on some versions of Solaris. If you want to try a binary with R_SPARC_UA32 relocations, rerun configure with --with-force-ua32.])
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
4b21e72002-05-08John W. Pierce  if test "x$with_patch_gcc" = "xno"; then :; else
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Will attempt to patch gcc.])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING([for cc1]) if test "x$with_patch_gcc" = "xyes"; then cc1="`$CC -v 2>&1|sed -e '/\//s!^[[^/]]*\(/.*\)/specs$!\1/cc1!p' -ed`" else cc1="$with_patch_gcc"; fi if test -f "$cc1"; then AC_MSG_RESULT($cc1) else AC_MSG_RESULT(not found. Tried $cc1) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if $cc1 looks unpatched) if /usr/bin/strings "$cc1" | grep uaword >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no -- strange) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if patch_cc1 compiles)
9edb202004-03-10Henrik Grubbström (Grubba)  link_cmd='${CC-cc} -o patch_cc1${ac_exeext} $CFLAGS -I. $CPPFLAGS $LDFLAGS $srcdir/patch_cc1.$ac_ext $LIBS 2>&AC_FD_CC' if { (eval echo Compiling patch_cc1: \"$link_cmd\") 1>&AC_FD_CC; (eval $link_cmd) 2>&AC_FD_CC; } && "$BUILDDIR/patch_cc1" -v >/dev/null 2>&AC_FD_CC; then
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes)
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test -f "$cc1.patched"; then AC_MSG_ERROR([$cc1.patched already exists.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please move it out of the way.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1; fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test -f "$cc1.orig"; then AC_MSG_ERROR([$cc1.orig already exists.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please move it out of the way.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1; fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if patch_cc1 works)
9edb202004-03-10Henrik Grubbström (Grubba)  if ./patch_cc1 "$cc1" 2>&AC_FD_CC >"$cc1.patched"; then
ac61a22001-12-06Henrik Grubbström (Grubba)  if test -f "$cc1.patched"; then :; else AC_MSG_RESULT(no - failed to create $cc1.patched) exit 1
b09bef2001-01-25Henrik Grubbström (Grubba)  fi
ac61a22001-12-06Henrik Grubbström (Grubba)  if chmod 755 "$cc1.patched"; then :; else AC_MSG_RESULT(no - failed to set permission to 755 on $cc1.patched)
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
ac61a22001-12-06Henrik Grubbström (Grubba)  if test "`/bin/ls -l \"$cc1\"|awk '{print $5}'`" = "`/bin/ls -l \"$cc1.patched\"|awk '{print $5}'`"; then if /usr/bin/strings "$cc1.patched" | grep uaword >/dev/null 2>&1; then rm -f "$cc1.patched" AC_MSG_RESULT(no -- patching failed) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if "$cc1.patched" --help >/dev/null 2>&1; then :; else AC_MSG_RESULT(no -- the patched binary does not seem to work) exit 1 fi
1d5a7b2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes)
1d5a7b2001-01-25Henrik Grubbström (Grubba) 
15b7222003-11-07Martin Stjernholm  AC_MSG_WARN([Activating the patched cc1.
0a86982003-11-07Martin Stjernholm NOTE: Entering critical section.
15b7222003-11-07Martin Stjernholm If configure fails at this point a broken gcc my result.])
ac61a22001-12-06Henrik Grubbström (Grubba)  if /usr/bin/mv -f "$cc1" "$cc1.orig"; then
b09bef2001-01-25Henrik Grubbström (Grubba) 
15b7222003-11-07Martin Stjernholm  AC_MSG_WARN([Moved $cc1 to $cc1.orig.])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if /usr/bin/mv -f "$cc1.patched" "$cc1"; then
15b7222003-11-07Martin Stjernholm  AC_MSG_WARN([Patching seems to have succeeded. Please rerun configure.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
15b7222003-11-07Martin Stjernholm  AC_MSG_WARN([Moving the patched cc1 into place failed. Will try to restore the old cc1.])
ac61a22001-12-06Henrik Grubbström (Grubba)  if /usr/bin/mv -f "$cc1.orig" "$cc1"; then
15b7222003-11-07Martin Stjernholm  AC_MSG_WARN([The old cc1 has been restored.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 fi AC_MSG_ERROR([Restoring the old cc1 failed.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Your installation of gcc is most likely broken now. Sorry, you will have to restore it yourself. Please move $cc1.orig to $cc1.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 else AC_MSG_ERROR([Failed to move the old cc1 to safety.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please replace $cc1 with $cc1.patched by hand.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 fi else rm -f "$cc1.patched" AC_MSG_ERROR([The size has changed. You need to patch cc1 by hand.])
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi else
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(no -- you need to patch cc1 by hand)
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
ac61a22001-12-06Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no -- you need to patch cc1 by hand) exit 1 fi
193c741999-05-31Henrik Grubbström (Grubba)  fi
9998151999-05-30Henrik Grubbström (Grubba)  else :; fi else :; fi
348fca1999-05-29Henrik Grubbström (Grubba) else :; fi #############################################################################
f6c3371998-09-29Henrik Grubbström (Grubba) 
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(root, MY_DESCR([--with-root=path], [specify a cross-compilation root-directory]),[
cf39902001-01-19Henrik Grubbström (Grubba)  case "$with_root" in /) with_root="" ;; /*) ;; no) with_root="" ;; *)
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Root path $with_root is not absolute. Ignored.])
cf39902001-01-19Henrik Grubbström (Grubba)  with_root="" ;; esac ],[with_root=""])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(relocatable_dumped_modules, MY_DESCR([--with-relocatable-dumped-modules], [make dumped modules relocatable]), [with_relocatable_dumped_modules=yes]) AC_ARG_WITH(dynamic_modules, MY_DESCR([--without-dynamic-modules], [link modules statically])) MY_AC_ARG_WITH(static_linking, MY_DESCR([--with-static-linking], [link statically, if possible]), [with_static_linking=yes])
0f38f72006-08-05Martin Stjernholm AC_ARG_ENABLE(dll, MY_DESCR([--disable-dll], [don't link dynamic modules to DLLs on Windows]), [], [enable_dll=yes])
90802b2006-08-03Martin Stjernholm AC_ARG_WITH(crt, MY_DESCR([--with-crt=dynamic|static], [force linking with dynamic or static CRT in Visual Studio]))
099eeb2006-08-03Martin Stjernholm  # --with-debug-crt is a nop on most systems since a debug C runtime # lib normally is used simply by setting LD_LIBRARY_PATH, but in MSVC # the choice affects both the compiler and the linker. # # Note that all libs need to be linked to the same CRT in VC8 if they # are linked to the DLL variant (i.e. using -MD), otherwise the MS # loader won't load them. This restriction is reinforced by the # manifest stuff that's used in VC8, and it doesn't apply when running # directly in the build dir. See # http://msdn2.microsoft.com/en-us/library/ms235299.aspx # # Also note that the debug CRT DLL in VC8 isn't redistributable. AC_ARG_WITH(debug-crt, MY_DESCR([--with-debug-crt], [compile and link with debug CRT in Visual Studio]), [], [with_debug_crt=no])
6eebf22004-02-26Henrik Grubbström (Grubba) AC_ARG_WITH(bundles, MY_DESCR([--without-bundles],
75bee72004-02-26Henrik Grubbström (Grubba)  [do not enable bundled libraries]),
fc8dba2004-02-27Henrik Grubbström (Grubba)  [], [with_bundles=yes])
5f8a412004-02-27Henrik Grubbström (Grubba) pike_bundle_dir=""
0c4c482010-01-18Henrik Grubbström (Grubba) if test "$with_bundles" = "no"; then :; elif test -d "$with_bundles/."; then # The user has specified a bundle directory. Use it. pike_bundle_dir="$with_bundles" elif test -d "$srcdir/../bundles/."; then # We have a bundle directory; enable them if needed. pike_bundle_dir=`cd "$srcdir/../bundles" && pwd`
e358392004-02-29Henrik Grubbström (Grubba) fi
4f80cf2008-03-05Henrik Grubbström (Grubba) test -d bundles/. || mkdir bundles
ea88bf2004-02-29Henrik Grubbström (Grubba) if test -d bundles/.; then
e358392004-02-29Henrik Grubbström (Grubba)  touch bundles/no_testsuites
6d02222005-08-10Henrik Grubbström (Grubba)  pike_bundle_prefix="`pwd`/bundles" test -d bundles/installed/. || mkdir bundles/installed
e8316e2005-06-17Henrik Grubbström (Grubba)  test -d bundles/include/. || mkdir bundles/include
e358392004-02-29Henrik Grubbström (Grubba)  CPPFLAGS="$CPPFLAGS -I$pike_bundle_prefix/include"
e8316e2005-06-17Henrik Grubbström (Grubba)  test -d bundles/lib/. || mkdir bundles/lib
0fa7852007-04-05Henrik Grubbström (Grubba)  touch bundles/lib/keep
226a722006-01-05Henrik Grubbström (Grubba)  for d in $pike_cv_abi_suffixes; do
e8316e2005-06-17Henrik Grubbström (Grubba)  test -d "bundles/lib$d/." || mkdir "bundles/lib$d"
0fa7852007-04-05Henrik Grubbström (Grubba)  touch "bundles/lib$d/keep"
e8316e2005-06-17Henrik Grubbström (Grubba)  LDFLAGS="$LDFLAGS -L$pike_bundle_prefix/lib$d" done
4f80cf2008-03-05Henrik Grubbström (Grubba)  test -d bundles/lib/pkgconfig/. || mkdir bundles/lib/pkgconfig if test "x$PKG_CONFIG_PATH" = "x"; then PKG_CONFIG_PATH="${pike_bundle_prefix}/lib/pkgconfig"
de0dc32008-03-02Marcus Comstedt  else
4f80cf2008-03-05Henrik Grubbström (Grubba)  PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${pike_bundle_prefix}/lib/pkgconfig"
de0dc32008-03-02Marcus Comstedt  fi
4f80cf2008-03-05Henrik Grubbström (Grubba)  export PKG_CONFIG_PATH
6eebf22004-02-26Henrik Grubbström (Grubba) fi
5f8a412004-02-27Henrik Grubbström (Grubba) export pike_bundle_dir
9ed0832008-03-04Henrik Grubbström (Grubba) export pike_bundle_prefix
fc4d962001-12-07Henrik Grubbström (Grubba) AC_ARG_WITH(site-prefixes, MY_DESCR([--with-site-prefixes],
e06a3c2006-01-06Peter Bortas  [:-separated list of prefixes to search for include, lib and bin dirs.]))
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(include-path, MY_DESCR([--with-include-path], [a list of paths to search for include files.])) AC_ARG_WITH(lib-path, MY_DESCR([--with-lib-path], [a list of paths to search for libraries.]))
3c6eaa2002-04-12Martin Stjernholm AC_ARG_WITH(long-double-precision, MY_DESCR([--with-long-double-precision], [use long double precision floats])) AC_ARG_WITH(double-precision, MY_DESCR([--with-double-precision], [use double precision floats])) AC_ARG_WITH(long-long-int, MY_DESCR([--with-long-long-int],
88b19d2003-02-27Mirar (Pontus Hagland)  [use long long native type int]))
3c6eaa2002-04-12Martin Stjernholm AC_ARG_WITH(long-int, MY_DESCR([--with-long-int],
88b19d2003-02-27Mirar (Pontus Hagland)  [use long native type int]))
3c6eaa2002-04-12Martin Stjernholm AC_ARG_WITH(int-int, MY_DESCR([--with-int-int], [use int native type int]))
ac60002003-11-15Martin Stjernholm dnl AC_ARG_WITH(short-int, MY_DESCR([--with-short-int], dnl [use short native type int (EXPERIMENTAL)])) dnl AC_ARG_WITH(unsigned-long-int, MY_DESCR([--with-unsigned-long-int], dnl [use short native type int (EXPERIMENTAL)])) dnl AC_ARG_WITH(unsigned-long-long-int, MY_DESCR([--with-unsigned-long-longint], dnl [use short native type int (EXPERIMENTAL)]))
a1c5022001-10-06Henrik Grubbström (Grubba) 
8f797a2006-08-05Martin Stjernholm AC_ARG_ENABLE(dlmalloc, MY_DESCR([--enable-dlmalloc], [use Doug Leas malloc implementation instead of system malloc]), [], [test "$pike_cv_sys_os" = Windows_NT && enable_dlmalloc=yes]) # dlmalloc is enabled by default on windows since the OS heap manager # Sucketh. (Well, it's possible to enable a "low-fragmentation heap" # but it only works for blocks up to 16kb.) if test "x$enable_dlmalloc" = xyes; then EXTRA_OBJS="$EXTRA_OBJS malloc.o" AC_DEFINE(USE_DL_MALLOC)
b22d7c2006-08-07Martin Stjernholm else enable_dlmalloc=no
8f797a2006-08-05Martin Stjernholm fi
343c592004-03-16Martin Stjernholm MY_AC_ARG_WITH(cleanup-on-exit, MY_DESCR([--with-cleanup-on-exit], [Do full cleanup at exit to detect leaks better.]), [AC_DEFINE(DO_PIKE_CLEANUP)]) MY_AC_ARG_WITH(dmalloc, MY_DESCR([--with-dmalloc],[Enable memory leak checks.]),
299a4e2002-03-14Martin Stjernholm  [AC_DEFINE(DEBUG_MALLOC,10)]) MY_AC_ARG_WITH(dmalloc-malloc, MY_DESCR([--with-dmalloc-malloc],
343c592004-03-16Martin Stjernholm  [Enable overloading of malloc(3)]),
299a4e2002-03-14Martin Stjernholm  [ AC_DEFINE(ENCAPSULATE_MALLOC,1) ])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(dmalloc-malloc-leaks,
299a4e2002-03-14Martin Stjernholm  MY_DESCR([--with-dmalloc-malloc-leaks],
a1c5022001-10-06Henrik Grubbström (Grubba)  [Report memory allocated by malloc(3) as leaks.]), [ AC_DEFINE(REPORT_ENCAPSULATED_MALLOC,1) ]) MY_AC_ARG_WITH(dmalloc-trace, MY_DESCR([--with-dmalloc-trace], [enable tracepoints]), [with_dmalloc_trace="yes" AC_DEFINE(DMALLOC_TRACE,10)])
5bfd382008-09-03Henrik Grubbström (Grubba) MY_AC_ARG_WITH(dmalloc-c-stack-trace, MY_DESCR([--with-dmalloc-c-stack-trace],
5783402008-09-04Martin Stjernholm  [record C stack traces for block allocations]),
5bfd382008-09-03Henrik Grubbström (Grubba)  [AC_DEFINE(DMALLOC_C_STACK_TRACE)])
000aab2004-10-22Henrik Grubbström (Grubba) MY_AC_ARG_WITH(dmalloc-track-free, MY_DESCR([--with-dmalloc-track-free], [track freed memory too]), [ with_dmalloc_track_free="yes" AC_DEFINE(DMALLOC_TRACK_FREE,10)])
299a4e2002-03-14Martin Stjernholm AC_ARG_WITH(debug, MY_DESCR([--with-debug],[same as --with-cdebug --with-rtldebug]), [],[with_debug=]) AC_ARG_WITH(debug, MY_DESCR([--without-debug],[same as --without-cdebug --without-rtldebug]),
a1c5022001-10-06Henrik Grubbström (Grubba)  [],[with_debug=]) AC_ARG_WITH(rtldebug, MY_DESCR([--with-rtldebug],[enable run time self tests]), [],[with_rtldebug=]) AC_ARG_WITH(cdebug, MY_DESCR([--without-cdebug],[disable -g]),[],[
aa38a81999-11-29Henrik Grubbström (Grubba)  case "$pike_cv_sys_os:$GCC" in Solaris:no) # Solaris/cc has problems with combining optimizations and debuginfo.
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Defaulting to --without-cdebug since the OS is Solaris,
0d53c52002-08-19Henrik Grubbström (Grubba) and gcc is not being used.]) with_cdebug=no ;; HP-UX:no|HPUX:no) # HP-UX/cc has problems with combining optimizations and debuginfo. # # cc: internal panic 7815: Malloc: underflow detected in free(). (7815)
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Defaulting to --without-cdebug since the OS is HP-UX,
81e6432000-01-03Martin Stjernholm and gcc is not being used.])
aa38a81999-11-29Henrik Grubbström (Grubba)  with_cdebug=no ;; *) with_cdebug= ;; esac ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(copt, MY_DESCR([--without-copt], [disable -O2]), [], [with_copt=]) AC_ARG_WITH(threads, MY_DESCR([--without-threads], [disable threads support]), [],[
2f04112000-02-03Fredrik Hübinette (Hubbe)  case "x$pike_cv_sys_os" in xFreeBSD*)
0b620a2001-01-21Henrik Grubbström (Grubba)  if test "`uname -r|sed -e 's/\([[0-9]]*\).*/\1/'`" -lt 4; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([FreeBSD <= 3.x detected, disabling threads. Use --with-threads to force threads support.])
e1afda2003-02-03Henrik Grubbström (Grubba)  with_threads=no fi ;; xOpenBSD*) if test "`uname -r|sed -e 's/\([[0-9]]*\).*/\1/'`" -lt 4 \ -a "x`uname -m`" = "xalpha"; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN([OpenBSD/alpha <= 3.x detected, disabling threads. Use --with-threads to force threads support.])
2f04112000-02-03Fredrik Hübinette (Hubbe)  with_threads=no fi ;; esac
cd57482000-02-03Henrik Grubbström (Grubba)  if test "x${with_threads-}" = x; then
2f04112000-02-03Fredrik Hübinette (Hubbe)  with_threads=yes fi ])
38c2d62002-11-24Martin Stjernholm 
8f9f3d2007-12-26Henrik Grubbström (Grubba) PIKE_AC_DEBUG
38c2d62002-11-24Martin Stjernholm AC_ARG_WITH(malloc_overhead, MY_DESCR([--with-malloc-overhead=n], [tune the malloc block overhead (default is 2 * sizeof(void *))]), [AC_DEFINE(PIKE_MALLOC_OVERHEAD,($withval))], [AC_DEFINE(PIKE_MALLOC_OVERHEAD,(2 * sizeof(void *)))]) AC_ARG_WITH(malloc_page_size, MY_DESCR([--with-malloc-page-size=n], [tune to the memory page size (default is 4 kb)]), [AC_DEFINE(PIKE_MALLOC_PAGE_SIZE,($withval))], [AC_DEFINE(PIKE_MALLOC_PAGE_SIZE,(4 * 1024))])
8f9f3d2007-12-26Henrik Grubbström (Grubba)  PIKE_AC_DEBUG
5da06f2003-06-26Tomas Nilsson AC_ARG_WITH(thread_c_stack, MY_DESCR([--with-thread-c-stack=n], [tune the thread c-stack (default is 256 * 1024)]), [AC_DEFINE_UNQUOTED(PIKE_THREAD_C_STACK_SIZE,($withval))], [AC_DEFINE(PIKE_THREAD_C_STACK_SIZE,(256 * 1024))])
38c2d62002-11-24Martin Stjernholm 
8ad6e72004-03-09Henrik Grubbström (Grubba) AC_ARG_WITH(devpoll, MY_DESCR([--without-devpoll], [disable support for /dev/poll]), [],[with_devpoll=yes])
38c2d62002-11-24Martin Stjernholm AC_ARG_WITH(gdbm, MY_DESCR([--without-gdbm],[no GNU database manager support])) AC_ARG_WITH(gmp, MY_DESCR([--without-gmp],[no support for Gmp bignums]))
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(zlib, MY_DESCR([--without-zlib],[disable gz compression support]), [],[with_zlib=yes]) AC_ARG_WITH(mysql, MY_DESCR([--without-mysql], [disable support for the Mysql database]), [],[with_mysql=yes])
a924142002-11-18Henrik Grubbström (Grubba) AC_ARG_WITH(valgrind, MY_DESCR([--with-valgrind=path],
cfb75c2011-07-22Henrik Grubbström (Grubba)  [Support for running with valgrind. Implies --with-cleanup-on-exit.]) MY_DESCR([],[Specify --without-cleanup-on-exit if you do not want this.]), [
a924142002-11-18Henrik Grubbström (Grubba)  if test "x$with_valgrind" = "xyes"; then AC_PATH_PROG(with_valgrind, valgrind, no) if test "x$with_valgrind" = "xno"; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN(valgrind not found, disabled.)
ac69582002-11-19Henrik Grubbström (Grubba)  else :; fi
a924142002-11-18Henrik Grubbström (Grubba)  else :; fi ], [with_valgrind=no])
cf84342011-05-19Jonas Walldén AC_ARG_WITH(dtrace, MY_DESCR([--with-dtrace],[embed DTrace probes]))
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(checker, MY_DESCR([--with-checker], [add extra memory checking overhead (Purify)]))
e7b1602004-01-09Henrik Grubbström (Grubba) AC_ARG_WITH(gcov, MY_DESCR([--with-gcov], [compile with support for gcov (gcc-only)]))
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(profiling, MY_DESCR([--with-profiling], [add code used to profile pike code]), [AC_DEFINE(PROFILING)])
a8a8132002-09-13Martin Stjernholm MY_AC_ARG_WITH(internal-profiling, MY_DESCR([--with-internal-profiling], [add profiling code for various internal things]), [AC_DEFINE(INTERNAL_PROFILING)])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(pg, MY_DESCR([--with-pg],[use the gcc -pg option]), [PROFIL=-pg]) AC_ARG_WITH(poll, MY_DESCR([--with-poll], [use poll instead of select]), [], [
78a69c1998-09-29Henrik Grubbström (Grubba)  # Neither --with-poll nor --without-poll was specified case "$pike_cv_sys_os" in
95161d2002-11-28Xavier Beaudouin  Solaris|HP-UX|OSF1|IRIX|Linux|UnixWare|OpenUNIX)
30d7e32003-12-04Per Hedbor # PIKE_MSG_WARN([Defaulting to --with-poll since the OS is $pike_cv_sys_os.]) # Nothing to warn about, really...
d7bcfd1998-09-29Henrik Grubbström (Grubba)  with_poll=yes
f6c3371998-09-29Henrik Grubbström (Grubba)  ;;
d0be141999-05-27Fredrik Hübinette (Hubbe)  AIX)
085ac61999-05-27Henrik Grubbström (Grubba)  # poll(2) is broken on AIX 4.1 and earlier.
d0be141999-05-27Fredrik Hübinette (Hubbe)  if test "`uname -r`" -ge 2 -a "`uname -v`" -ge 4 ; then with_poll=yes
0c4c482010-01-18Henrik Grubbström (Grubba)  elif test "`uname -v`" -gt 4 ; then with_poll=yes else :; fi
d0be141999-05-27Fredrik Hübinette (Hubbe)  ;;
f6c3371998-09-29Henrik Grubbström (Grubba)  esac ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(max-fd, MY_DESCR([--with-max-fd=X], [set how many filedescriptors can be used at once]), [pike_cv_max_open_fd=$withval]) MY_AC_ARG_WITH(oob, MY_DESCR([--without-oob],
15a3d22003-10-23Henrik Grubbström (Grubba)  [disable out-of-band data handling (INVALID)]), [],[ AC_MSG_ERROR([Support for out of band data is mandatory in Pike 7.5 and later.]) ])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(compiler-trace, MY_DESCR([--with-compiler-trace], [enable tracing of the compiler]), [AC_DEFINE(YYDEBUG)])
c8c8d02011-07-22Henrik Grubbström (Grubba) MY_AC_ARG_WITH(atomic-svalue, MY_DESCR([--with-atomic-svalue], [change the svalue representation to one]) MY_DESCR([],[supporting atomic changes (EXPERIMENTAL)]), [ AC_DEFINE(ATOMIC_SVALUE) PIKE_MSG_WARN([Atomic svalues enabled.]) ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(security, MY_DESCR([--with-security], [enable internal pike security system]), [AC_DEFINE(PIKE_SECURITY)]) AC_ARG_WITH(bignums, MY_DESCR([--without-bignums],
0a86982003-11-07Martin Stjernholm  [disable internal conversion to bignums (not recommended)]),
a1c5022001-10-06Henrik Grubbström (Grubba)  [],[with_bignums=yes])
e2b7b92002-04-27Martin Stjernholm dnl Shared nodes has been disabled in an ugly way. To enable it you dnl need to remove the line that sets the OPT_NOT_SHARED flag at the dnl top of freeze_node in src/las.c. /mast dnl AC_ARG_WITH(shared-nodes, dnl MY_DESCR([--without-shared-nodes], dnl [disable the SHARED_NODES mode of the optimizer]), dnl [],[with_shared_nodes=yes])
0785492007-04-02Henrik Grubbström (Grubba) AC_ARG_WITH(typechecker, MY_DESCR([--with-typechecker=new|old],[])) AC_ARG_WITH(type-checker, MY_DESCR([--with-type-checker=new|old], [select type-checker behaviour]),
c6cb742007-10-03Henrik Grubbström (Grubba)  [],[with_type_checker="${with_typechecker:-new}"])
8472d22007-10-03Henrik Grubbström (Grubba) if test "x$with_type_checker" = "xold"; then :; PIKE_MSG_WARN([Old type checker selected.]) else
0785492007-04-02Henrik Grubbström (Grubba)  AC_DEFINE(NEW_ARG_CHECK) fi
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(computed-goto, MY_DESCR([--with-computed-goto], [enable use of gcc-style computed goto (EXPERIMENTAL).]), [], [with_computed_goto=no]) AC_ARG_WITH(machine-code,
e2b7b92002-04-27Martin Stjernholm  MY_DESCR([--without-machine-code],
a924142002-11-18Henrik Grubbström (Grubba)  [do not try to use of machine code on supported architectures.]),
bbb9502002-09-07Henrik Grubbström (Grubba)  [], [
8fdd252004-08-23Henrik Grubbström (Grubba)  case "x$pike_cv_sys_os" in xOpenBSD*) PIKE_MSG_WARN([OpenBSD detected, disabling machine code.
c10e142004-08-23Xavier Beaudouin  Use --with-machine-code to force usage of machine code support.])
8fdd252004-08-23Henrik Grubbström (Grubba)  with_machine_code="no" ;;
227f832004-10-24Xavier Beaudouin  xFreeBSD*) PIKE_MSG_WARN([FreeBSD detected, disabling machine code. Use --with-machine-code to force usage of machine code support.]) with_machine_code="no" ;;
c10e142004-08-23Xavier Beaudouin  esac
8fdd252004-08-23Henrik Grubbström (Grubba)  if test "x${with_machine_code-}" = x; then with_machine_code="yes"
c10e142004-08-23Xavier Beaudouin  fi
bbb9502002-09-07Henrik Grubbström (Grubba)  ])
7199a72004-10-21Henrik Grubbström (Grubba) AC_ARG_WITH(small-eval-instruction, MY_DESCR([--with-small-eval-instruction], [attempt to reduce the size of eval_instruction (EXPERIMENTAL).]), [ AC_DEFINE(PIKE_SMALL_EVAL_INSTRUCTION) with_machine_code="no" with_computed_goto="no" ])
a1c5022001-10-06Henrik Grubbström (Grubba)  MY_AC_ARG_WITH(keypair-loop,
7501042007-10-03Henrik Grubbström (Grubba)  MY_DESCR([--with-keypair-loop],
8472d22007-10-03Henrik Grubbström (Grubba)  [enable use of keypair mapping loop method.]), [AC_DEFINE(PIKE_MAPPING_KEYPAIR_LOOP)],[],
7501042007-10-03Henrik Grubbström (Grubba)  [])
a1c5022001-10-06Henrik Grubbström (Grubba) 
20e8ae2003-11-19Henrik Grubbström (Grubba) MY_AC_ARG_WITH(portable-bytecode,
e7411f2004-05-11Henrik Grubbström (Grubba)  MY_DESCR([--without-portable-bytecode], [disable portable bytecode support.]), [AC_DEFINE(PIKE_PORTABLE_BYTECODE)],[],
20e8ae2003-11-19Henrik Grubbström (Grubba)  [AC_DEFINE(PIKE_PORTABLE_BYTECODE)])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(lock, MY_DESCR([--without-lock], [enable experimental code for multicpu machines (EXPERIMENTAL).]), [],[AC_DEFINE(PIKE_RUN_UNLOCKED)])
e83eb92001-03-22Fredrik Hübinette (Hubbe) 
a85b892006-07-03Martin Nilsson AC_ARG_WITH(facets, MY_DESCR([--with-facets], [enable experimental facet support (EXPERIMENTAL).]), [AC_DEFINE(WITH_FACETS)])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(pike-type, MY_DESCR([--without-pike-type],
3913502002-06-25Henrik Grubbström (Grubba)  [disable struct pike_type (IGNORED).]))
6cb70d2001-02-21Henrik Grubbström (Grubba) 
3913502002-06-25Henrik Grubbström (Grubba) if test "x$with_pike_type" = "xno"; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Disabling of USE_PIKE_TYPE is no longer supported.])
769d1c2001-03-27Henrik Grubbström (Grubba) fi
6cb70d2001-02-21Henrik Grubbström (Grubba) 
011ad31999-10-22Fredrik Hübinette (Hubbe) if test "x$with_bignums" = xyes; then AC_DEFINE(AUTO_BIGNUM)
4900161999-10-23Fredrik Noring  if test "x$with_gmp" = xno; then
5435a72000-05-04Fredrik Hübinette (Hubbe)  AC_MSG_ERROR([Cannot compile --with-bignums without the GMP library It is highly recommended that you install a working GMP library on your system as that will add features to Pike
cab7ce2001-08-29Martin Stjernholm required by many applications (such as Roxen). However,
5435a72000-05-04Fredrik Hübinette (Hubbe) if you know that you do not need GMP, you may re-run configure
0a86982003-11-07Martin Stjernholm with the option --without-bignums instead.])
011ad31999-10-22Fredrik Hübinette (Hubbe)  else :; fi
0a86982003-11-07Martin Stjernholm else
30d7e32003-12-04Per Hedbor  PIKE_MSG_WARN([****** Compiling without bignum support. This is discouraged. Many ****** Pike applications might not work correctly.]) sleep 10
0a86982003-11-07Martin Stjernholm fi
f6c3371998-09-29Henrik Grubbström (Grubba) 
e7b1602004-01-09Henrik Grubbström (Grubba) dnl Pike currently breaks miserably if SHARED_NODES is not defined.
15b7222003-11-07Martin Stjernholm dnl Shared nodes are still disabled bluntly. (See note above.) dnl if test "x$with_shared_nodes" != xno; then dnl echo 'Enabling the SHARED_NODES mode of the optimizer.'
de28961999-11-13Henrik Grubbström (Grubba)  AC_DEFINE(SHARED_NODES)
15b7222003-11-07Martin Stjernholm dnl else :; fi
de28961999-11-13Henrik Grubbström (Grubba) 
f6c3371998-09-29Henrik Grubbström (Grubba) if test "x$with_poll" = "xyes"; then AC_DEFINE(HAVE_AND_USE_POLL) else :; fi
a924142002-11-18Henrik Grubbström (Grubba) if test "x$with_valgrind" = "xno"; then VALGRIND=""
e040cf2002-11-23Martin Stjernholm  VALGRINDARGS=""
a924142002-11-18Henrik Grubbström (Grubba) else
e42fa82002-11-23Martin Stjernholm  VALGRIND="$with_valgrind"
e040cf2002-11-23Martin Stjernholm  # Make valgrind a bit silent by default.
ec2d752004-03-21Martin Nilsson  VALGRINDARGS="-q --tool=memcheck"
37e9f12002-11-19Henrik Grubbström (Grubba)  AC_DEFINE(USE_VALGRIND)
b7890d2002-12-11Mirar (Pontus Hagland) 
0beebd2007-05-20Henrik Grubbström (Grubba)  if test "x$with_cleanup_on_exit" = "x"; then AC_DEFINE(DO_PIKE_CLEANUP) fi
9fb79c2004-09-27Martin Stjernholm 
b7890d2002-12-11Mirar (Pontus Hagland)  if test "x$with_copt" != "xno"; then PIKE_MSG_WARN([--without-copt is advisable when using valgrind!]) fi
a924142002-11-18Henrik Grubbström (Grubba) fi
e040cf2002-11-23Martin Stjernholm export VALGRIND VALGRINDARGS
a924142002-11-18Henrik Grubbström (Grubba) AC_SUBST(VALGRIND)
e040cf2002-11-23Martin Stjernholm AC_SUBST(VALGRINDARGS)
a924142002-11-18Henrik Grubbström (Grubba) 
cf84342011-05-19Jonas Walldén # DTrace probes if test "x$with_dtrace" = "xyes"; then AC_PATH_PROG(dtrace_prog, dtrace, no) if test "x$ac_cv_path_dtrace_prog" != "xno"; then AC_DEFINE(USE_DTRACE) DTRACE_REQUIREMENTS="dtrace_probes.h" fi fi
bf61b91999-02-06Henrik Grubbström (Grubba) if test "x$with_checker" = "xyes"; then AC_DEFINE(__CHECKER__) else :; fi
4839dd2001-09-02Marcus Comstedt if test "x$with_relocatable_dumped_modules" = xyes; then PIKE_MODULE_RELOC=1 else PIKE_MODULE_RELOC="" fi AC_SUBST(PIKE_MODULE_RELOC)
4b8d502000-12-19Henrik Grubbström (Grubba) 
f6c3371998-09-29Henrik Grubbström (Grubba) # # Allow --with(out)-debug to toggle both cdebug and rtldebug, but # let --with(out)-{c,rtl}debug take precedence. # if test "x$with_cdebug" = x ; then with_cdebug="$with_debug" fi if test "x$with_rtldebug" = x ; then with_rtldebug="$with_debug" fi
4b8d502000-12-19Henrik Grubbström (Grubba) # # --with-dmalloc requires --with-rtldebug #
0c4c482010-01-18Henrik Grubbström (Grubba) if test "x$with_dmalloc" = "x"; then :; elif test "x$with_rtldebug" = "xyes"; then :; else PIKE_MSG_WARN([Debug malloc requires rtldebug. Enabling rtldebug.]) with_rtldebug=yes
4b8d502000-12-19Henrik Grubbström (Grubba) fi
f6c3371998-09-29Henrik Grubbström (Grubba) # # Defaults for cdebug and rtldebug here: # if test "x$with_cdebug" = x ; then with_cdebug=yes fi if test "x$with_rtldebug" = x ; then
88b2682000-12-17Henrik Grubbström (Grubba)  with_rtldebug=no # with_rtldebug=yes
f6c3371998-09-29Henrik Grubbström (Grubba) fi if test "x$with_rtldebug" = xyes ; then
71f3a21998-11-22Fredrik Hübinette (Hubbe)  AC_DEFINE(PIKE_DEBUG)
f6c3371998-09-29Henrik Grubbström (Grubba) fi #############################################################################
48ae531996-10-09Fredrik Hübinette (Hubbe) 
8cf37d1997-01-27Per Hedbor 
d9ea112004-12-30Henrik Grubbström (Grubba) DLOPEN_O=""
3e35432006-09-29Henrik Grubbström (Grubba) OSFLAGS=""
8cf37d1997-01-27Per Hedbor WARN=""
8a5cd32001-06-07Fredrik Hübinette (Hubbe) OPTIMIZE="${OPTFLAGS-}"
8cf37d1997-01-27Per Hedbor 
4b63392002-12-10Mirar (Pontus Hagland) AC_ARG_ENABLE(pedantic, MY_DESCR([--enable-pedantic],
bd841c2002-12-10Henrik Grubbström (Grubba)  [enable -pedantic compilation]))
4b63392002-12-10Mirar (Pontus Hagland) 
bd841c2002-12-10Henrik Grubbström (Grubba) if test "$cflags_is_set" = "no"; then
2901d31998-08-05Fredrik Hübinette (Hubbe)  if test "x$with_cdebug" = "xno" ; then CFLAGS=`echo " $CFLAGS " | sed -e 's@ -g @ @g'` else :
f41e0d1999-10-19Henrik Grubbström (Grubba)  fi
2901d31998-08-05Fredrik Hübinette (Hubbe) 
4b63392002-12-10Mirar (Pontus Hagland)  if test "x$enable_pedantic" = "xyes"; then AC_SYS_COMPILER_FLAG(-pedantic,pedantic,WARN) fi
2901d31998-08-05Fredrik Hübinette (Hubbe) 
4b63392002-12-10Mirar (Pontus Hagland)  if test "x${GCC-}" = xyes ; then
2e96cd2000-08-12Per Hedbor  # Do not use -Wall, since that produces a lot of warnings that are not
3d6e5c2000-08-17Henrik Grubbström (Grubba)  # really interresting (such as the warning for if( ... ) ... if(
2e96cd2000-08-12Per Hedbor  # ... ) .... else
4b63392002-12-10Mirar (Pontus Hagland)  AC_SYS_COMPILER_FLAG(-W,W,WARN) AC_SYS_COMPILER_FLAG(-Wall,Wall,WARN) AC_SYS_COMPILER_FLAG(-Wno-unused,Wno_unused,WARN) AC_SYS_COMPILER_FLAG(-Wcomment,Wcomment,WARN) AC_SYS_COMPILER_FLAG(-Wformat,Wformat,WARN)
4ae0da2008-12-12Martin Stjernholm  AC_SYS_COMPILER_FLAG(-Wformat-security,Wformat_security,WARN)
4b63392002-12-10Mirar (Pontus Hagland)  AC_SYS_COMPILER_FLAG(-Wimplicit-function-declaration,Wimplicit_function_declaration,WARN) AC_SYS_COMPILER_FLAG(-Wmultichar,Wmultichar,WARN) AC_SYS_COMPILER_FLAG(-Wswitch,Wswitch,WARN)
30d7e32003-12-04Per Hedbor 
4b63392002-12-10Mirar (Pontus Hagland)  if test "x$with_copt" != xno; then # gcc complains that it doesn't support this when compiling # without optimizations. AC_SYS_COMPILER_FLAG(-Wuninitialized,Wuninitialized,WARN) fi AC_SYS_COMPILER_FLAG(-Wpointer-arith,Wpointer_arith,WARN) AC_SYS_COMPILER_FLAG(-Wchar-subscripts,Wchar_subscripts,WARN) AC_SYS_COMPILER_FLAG(-Wno-long-long,Wno_long_long,WARN)
52a8362007-12-27Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-Wdeclaration-after-statement,Wdeclaration_after_statement,WARN)
9c5a5e1997-12-20Henrik Grubbström (Grubba) 
4b63392002-12-10Mirar (Pontus Hagland)  if test "x${with_static_linking-}" = "xyes" ; then AC_SYS_COMPILER_FLAG(-static,link_static,CFLAGS) else : fi
e7b1602004-01-09Henrik Grubbström (Grubba)  if test "x$with_gcov" = "xyes"; then # Support for gcov AC_SYS_COMPILER_FLAG(-fprofile-arcs, fprofile_arcs, CFLAGS) AC_SYS_COMPILER_FLAG(-ftest-coverage, ftest_coverage, CFLAGS) else :; fi
6d2c672005-06-23Henrik Grubbström (Grubba)  if test "x$with_cdebug" = "xyes" ; then AC_SYS_COMPILER_FLAG(-ggdb3,ggdb3,CFLAGS) fi
4b63392002-12-10Mirar (Pontus Hagland)  ## ## -fomit-frame-pointer does not work with egcs 1.1.1 ## /Hubbe 1998-12-20 ## #if test "x$with_cdebug" = "xno" ; then # AC_SYS_COMPILER_FLAG(-fomit-frame-pointer,fomit_frame_pointer,OPTIMIZE) #else # : #fi
9c5a5e1997-12-20Henrik Grubbström (Grubba) 
30d7e32003-12-04Per Hedbor 
8cf37d1997-01-27Per Hedbor ### Optimize for different SUN machines. If there is no working 'uname' ### no extra optimization will be done, but nothing should break either.
50adc31998-04-17Fredrik Hübinette (Hubbe)  case "`uname -m 2>/dev/null`" in sun4c)
769d1c2001-03-27Henrik Grubbström (Grubba)  # The -msparclite option seems to generate assembler that /bin/as doesn't
e65d8d1998-07-17Henrik Grubbström (Grubba)  # understand. /grubba 1998-07-17
7e83af2001-03-23Henrik Grubbström (Grubba)  # AC_SYS_COMPILER_FLAG(-msparclite,sparclite,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4m)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mv8,microsparc,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4d)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-msupersparc,supersparc,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4u)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=ultrasparc,mcpu_ultrasparc,CFLAGS,[ AC_SYS_COMPILER_FLAG(-msupersparc,supersparc,CFLAGS)
e2172a2003-10-03Henrik Grubbström (Grubba)  ],[],[ # Some versions of gcc define __sparcv9 but aren't LP64. # Definition of __sparcv9 causes <sys/isa_defs.h> to define _LP64, # which is not a good thing for ILP32 systems... # Some versions of gcc define __sparc_v9__, which causes the # fix-included <limits.h> to think the same... AC_TRY_CPP([#include <limits.h> #include <sys/types.h> #if defined(_LP64) || (LONG_MAX != 2147483647L) #error "We might have a problem." #endif ],[],[ # We might have a problem... # Check that we indeed have a LP64 system. AC_MSG_RESULT([yes, but LP64]) AC_CHECK_SIZEOF(long, 4) # Note: the result for the following message is provided # by SYS_COMPILER_FLAG AC_MSG_CHECKING([are we really an LP64 system]) if test "x$ac_cv_sizeof_long" = "x8"; then :; #OK, we have an LP64 system! else pike_cv_option_mcpu_ultrasparc=no fi ])
d769bf2001-03-23Henrik Grubbström (Grubba)  ])
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; i586)
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=pentium,mtune_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS) ])
ecb7602002-08-20Henrik Grubbström (Grubba)  ])
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; i686)
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=i686,mtune_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS) ])
ecb7602002-08-20Henrik Grubbström (Grubba)  ])
72bb7c2006-07-23Martin Stjernholm  ])
50adc31998-04-17Fredrik Hübinette (Hubbe)  ])
43594f2001-09-18Fredrik Hübinette (Hubbe) # AC_SYS_COMPILER_FLAG(-march=i686,march_i686,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;;
46dc322005-03-17Henrik Grubbström (Grubba)  x86_64) AC_SYS_COMPILER_FLAG(-m64,m64,CFLAGS,[
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=i686,mtune_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS) ])
46dc322005-03-17Henrik Grubbström (Grubba)  ])
72bb7c2006-07-23Martin Stjernholm  ])
46dc322005-03-17Henrik Grubbström (Grubba)  ]) ], [
f135ff2005-09-01Henrik Grubbström (Grubba)  BUNDLE_FLAGS="$BUNDLE_FLAGS --build=x86_64"
46dc322005-03-17Henrik Grubbström (Grubba)  ]) ;;
2e96cd2000-08-12Per Hedbor  i86pc)
46dc322005-03-17Henrik Grubbström (Grubba)  # Solaris x86 case "`optisa \`isalist 2>/dev/null\` 2>/dev/null || isalist 2>/dev/null`" in *amd64*) AC_SYS_COMPILER_FLAG(-m64,m64,CFLAGS,[
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=i686,mtune_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS) ])
46dc322005-03-17Henrik Grubbström (Grubba)  ])
72bb7c2006-07-23Martin Stjernholm  ])
46dc322005-03-17Henrik Grubbström (Grubba)  ]) ], [
f135ff2005-09-01Henrik Grubbström (Grubba)  BUNDLE_FLAGS="$BUNDLE_FLAGS --build=x86_64"
46dc322005-03-17Henrik Grubbström (Grubba)  ]) # AC_SYS_COMPILER_FLAG(-march=i686,march_i686,CFLAGS) ;;
2e96cd2000-08-12Per Hedbor  *pentium_pro*)
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=i686,mtune_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[
ecb7602002-08-20Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS) ]) ])
72bb7c2006-07-23Martin Stjernholm  ])
61fb902001-03-19Mirar (Pontus Hagland)  ])
43594f2001-09-18Fredrik Hübinette (Hubbe) # AC_SYS_COMPILER_FLAG(-march=i686,march_i686,CFLAGS)
2e96cd2000-08-12Per Hedbor  ;; *pentium*)
72bb7c2006-07-23Martin Stjernholm  AC_SYS_COMPILER_FLAG(-mtune=pentium,mtune_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mcpu=pentium,mcpu_pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-m486,486,CFLAGS) ])
ecb7602002-08-20Henrik Grubbström (Grubba)  ])
72bb7c2006-07-23Martin Stjernholm  ])
2e96cd2000-08-12Per Hedbor  ;; esac
ec4ee42008-07-09Henrik Grubbström (Grubba)  ;; ia64) case "`uname -p`" in [Ii]tanium*2) AC_SYS_COMPILER_FLAG(-mtune=itanium2,mtune_itanium2,CFLAGS) ;; [Ii]tanium) AC_SYS_COMPILER_FLAG(-mtune=itanium1,mtune_itanium1,CFLAGS) ;; esac ;;
ce09672008-07-13Marcus Comstedt  ppc64) case "`uname -p 2>/dev/null`" in Cell\ Broadband\ Engine*) AC_SYS_COMPILER_FLAG(-mcpu=cell,mcpu_cell,CFLAGS) ;; esac ;;
50adc31998-04-17Fredrik Hübinette (Hubbe)  esac
b7c2ef1999-08-08Henrik Grubbström (Grubba)  # AIX DO_IF_OS(AIX, [ # Tell the linker to generate a large toc if needed
6d50892001-07-12Henrik Grubbström (Grubba)  # # This option is not needed on AIX 5L/ia64. if test "x`uname -p`" = "xia64"; then :; else AC_SYS_COMPILER_FLAG(-bbigtoc,bbigtoc,LDFLAGS) AC_SYS_COMPILER_FLAG([-Wl,-bbigtoc],Wlbbigtoc,LDFLAGS) fi
05cd672000-09-28Henrik Grubbström (Grubba)  ])
ce3dcd2001-11-02Jonas Wallden  DO_IF_OS(Darwin, [ # aka MacOS X. # Foundation framework needed by JavaVM.framework. The OS X 10.1 linker # no longer includes indirect dependencies so we need to add them here. AC_SYS_COMPILER_FLAG(-framework Foundation, framework_Foundation, LDFLAGS)
9f95ce2003-09-22Jonas Wallden  AC_SYS_COMPILER_FLAG(-framework System, framework_System, LDFLAGS)
ce3dcd2001-11-02Jonas Wallden 
d97bbf2005-08-27Jonas Wallden  # Needed for MakeDataExecutable which comes from CarbonLib AC_SYS_COMPILER_FLAG(-framework CoreServices, framework_CoreServices, LDFLAGS)
ce3dcd2001-11-02Jonas Wallden  # -flat_namespace only needed for linking with libMallocDebug # AC_SYS_COMPILER_FLAG(-flat_namespace, flat_namespace, LDFLAGS)
3fcbb92006-04-10Jonas Wallden 
dbbb572008-07-09Jonas Wallden  # Take care of warning when linking with GMP libraries AC_SYS_COMPILER_FLAG(-read_only_relocs warning, ro_relocs_warn, LDFLAGS)
3fcbb92006-04-10Jonas Wallden  # Tune based on processor family case "`machine`" in i486) # Darwin x86 runs on Intel Core Solo/Duo (based on Pentium M) and newer AC_SYS_COMPILER_FLAG(-march=pentium-m, arch_pentium_m, OPTIMIZE) AC_SYS_COMPILER_FLAG(-msse3, opt_sse3, OPTIMIZE)
53d62f2009-12-09Jonas Wallden  AC_SYS_COMPILER_FLAG(-mfpmath=sse, opt_mfpmath_sse, OPTIMIZE)
3fcbb92006-04-10Jonas Wallden 
85a85e2006-10-06Stefan Wallström  # no-pic required for machine code to work AC_SYS_COMPILER_FLAG(-mdynamic-no-pic, dynamicnopic, OSFLAGS)
53d62f2009-12-09Jonas Wallden  # Silence warnings about not working on systems older than the base # version of the current machine. We'll convert e.g. 10.5.8 to 1050. AC_SYS_COMPILER_FLAG(-DMAC_OS_X_VERSION_MIN_REQUIRED=`sw_vers -productVersion | tr -d . | cut -c -3`0, osxminversion, CFLAGS)
3fcbb92006-04-10Jonas Wallden  ;;
dbbb572008-07-09Jonas Wallden  ppc970|ppc7450|ppc7400) # Improve performance on G4 and G5. Note that if the build machine # is a G4 or newer the resulting pike won't run on a G3. AC_SYS_COMPILER_FLAG(-mcpu=7400, cpu7400, OPTIMIZE) AC_SYS_COMPILER_FLAG(-mtune=7400, tune7400, OPTIMIZE) ;;
3fcbb92006-04-10Jonas Wallden  *) # G3 is the baseline on PPC since Mac OS X doesn't support anything
dbbb572008-07-09Jonas Wallden  # older.
3fcbb92006-04-10Jonas Wallden  AC_SYS_COMPILER_FLAG(-mcpu=750, cpu750, OPTIMIZE) AC_SYS_COMPILER_FLAG(-mtune=750, tune750, OPTIMIZE) ;; esac
ce3dcd2001-11-02Jonas Wallden  ])
827d132004-06-21Henrik Grubbström (Grubba)  DO_IF_OS(Linux, [
6cc8482005-06-09Henrik Grubbström (Grubba)  : # The following segment is obsolete, since executable memory is # now allocated with mmap instead of with malloc(). # /grubba 2005-06-09 # # if test "x$with_machine_code" = "xno"; then :; else # # WORKAROUND: mprotect(PROT_EXEC) doesn't work on Linux/x86. # # Try to set the stackexec flag on the binary. # # First try -z execstack (ld). # AC_SYS_COMPILER_FLAG([-z execstack], z_execstack, LDFLAGS, [ # # No, try passing it directly to the linker. # AC_SYS_COMPILER_FLAG([-Wl,-z,execstack], Wl_z_execstack, LDFLAGS, [ # # No, try --execstack (gas). # AC_SYS_COMPILER_FLAG([--execstack], execstack, CFLAGS, [ # # No, try passing it directly to the assembler. # AC_SYS_COMPILER_FLAG([-Wa,--execstack], Wa_execstack, CFLAGS, [ # # No. # # FIXME: Add support for use of chstk(1). # PIKE_MSG_WARN([Could not find any way to enable executable stack.]) # ]) # ]) # ]) # ]) # fi
827d132004-06-21Henrik Grubbström (Grubba)  ])
9211642004-12-16Henrik Grubbström (Grubba)  elif test "x${TCC-}" = xyes ; then
5866e01999-04-25Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Yikes! We're using the TenDRA compiler!
5866e01999-04-25Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Make sure we can use the system headerfiles... # Already done by the CC test in aclocal.m4. # AC_SYS_COMPILER_FLAG(-Ysystem, ysystem, CPPFLAGS)
5866e01999-04-25Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Use lenient ANSI compliance... #AC_SYS_COMPILER_FLAG(-Xa, xa, CFLAGS)
5866e01999-04-25Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Find out where libtdf.a is hidden. AC_MSG_CHECKING(for machine dependant library directory) AC_CACHE_VAL(pike_cv_tcc_lib_path, [ pike_cv_tcc_lib_path="`${CC-cc} -dry conftest.c -i 2>&1 | sed -e '/tdfc/s/bin\/tdfc.*/lib\/sys/p' -ed| head -n 1`" if test -d "$pike_cv_tcc_lib_path/." ; then :; else # Failed. pike_cv_tcc_lib_path="no" fi ]) AC_MSG_RESULT($pike_cv_tcc_lib_path)
6077101999-05-15Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "$pike_cv_tcc_lib_path" = "no" ; then :; else LDFLAGS="$LDFLAGS -L$pike_cv_tcc_lib_path"
6077101999-05-15Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # This library is needed for 64bit support on 32bit machines/OS's. AC_CHECK_LIB(tdf, __TDFUnot) fi
6077101999-05-15Henrik Grubbström (Grubba) 
9211642004-12-16Henrik Grubbström (Grubba)  else
8cf37d1997-01-27Per Hedbor 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Assume system compiler "cc".
8334e31999-01-29Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x${with_static_linking-}" = "xyes" ; then DO_IF_OS(AIX, [ AC_SYS_COMPILER_FLAG([-Wl,-bstatic],wl_link_static,CFLAGS) LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -bstatic" ])
8334e31999-01-29Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  DO_IF_OS(OSF1, [ AC_SYS_COMPILER_FLAG(-non_shared,non_shared,CFLAGS) LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -non_shared" ])
8334e31999-01-29Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  DO_IF_OS(IRIX, [ AC_SYS_COMPILER_FLAG(-non_shared,non_shared,CFLAGS) LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -B static" ])
8334e31999-01-29Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # how do you link statically on HP-UX ? else : fi
8334e31999-01-29Fredrik Hübinette (Hubbe) 
8cf37d1997-01-27Per Hedbor ### Non-gcc thingies. This should probably be enhanced...
fde5a61997-09-05Henrik Grubbström (Grubba) 
d4fc872003-01-16David Hedbor 
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x$with_cdebug" = "xyes" ; then # FIXME: # Maybe should remove the -g flag if this succeeds. AC_SYS_COMPILER_FLAG(-g3,g3,CFLAGS) AC_SYS_COMPILER_FLAG(-trapuv,trapuv,WARN) fi
6d2c672005-06-23Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Solaris DO_IF_OS(Solaris, [ AC_SYS_COMPILER_FLAG(-fast,fast,OPTIMIZE,,[ if test "x$with_abi" = "x64"; then # -fast implies -xarch=native, which implies 32-bit ABI. AC_SYS_COMPILER_FLAG(-xtarget=generic64, xtarget_generic64, OPTIMIZE) AC_SYS_COMPILER_FLAG(-xarch=generic64, xarch_generic64, OPTIMIZE) fi # -fast implies -fns, which turns off gradual underflow. AC_SYS_COMPILER_FLAG(-fns=no, fns_no, OPTIMIZE) ]) AC_SYS_COMPILER_FLAG(-xdepend,xdepend,OPTIMIZE) AC_SYS_COMPILER_FLAG(-xs,xs,CFLAGS) # Causes __STDC__ to be 1 which causes several headerfiles to behave # differently. # AC_SYS_OS_COMPILER_FLAG(-Xc,Xc,WARN)
8ce2522005-06-17Henrik Grubbström (Grubba)  ])
d93ff51997-11-02Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # AIX DO_IF_OS(AIX, [ # This one is needed to get the compiler to fail on errors, # which is needed for several configure-tests. AC_SYS_COMPILER_FLAG(-qhalt=e,qhalt_e,CFLAGS) AC_SYS_COMPILER_FLAG(-qro,qro,OPTIMIZE) AC_SYS_COMPILER_FLAG(-qfold,qfold,OPTIMIZE) AC_SYS_COMPILER_FLAG(-qwarn64,qwarn64,WARN) AC_SYS_COMPILER_FLAG(-qflag=w:w,qflag_w_w,WARN) AC_DEFUN(AC_SYS_COMPILER_FLAG_QINFO, [ AC_SYS_COMPILER_FLAG(-qinfo=$1,qinfo_$1,WARN) ]) AC_SYS_COMPILER_FLAG_QINFO(cmp) AC_SYS_COMPILER_FLAG_QINFO(cnd) AC_SYS_COMPILER_FLAG_QINFO(cns) AC_SYS_COMPILER_FLAG_QINFO(cnv) AC_SYS_COMPILER_FLAG_QINFO(dcl) AC_SYS_COMPILER_FLAG_QINFO(eff) AC_SYS_COMPILER_FLAG_QINFO(enu) AC_SYS_COMPILER_FLAG_QINFO(ext) AC_SYS_COMPILER_FLAG_QINFO(gen) AC_SYS_COMPILER_FLAG_QINFO(gnr) AC_SYS_COMPILER_FLAG_QINFO(got) AC_SYS_COMPILER_FLAG_QINFO(ini) AC_SYS_COMPILER_FLAG_QINFO(inl) AC_SYS_COMPILER_FLAG_QINFO(lan) AC_SYS_COMPILER_FLAG_QINFO(obs) AC_SYS_COMPILER_FLAG_QINFO(ord) AC_SYS_COMPILER_FLAG_QINFO(par) AC_SYS_COMPILER_FLAG_QINFO(por) # ppc disabled since it complains about the system header files. # AC_SYS_COMPILER_FLAG_QINFO(ppc) # ppt disabled since tracing the preprocessor isn't interresting. # AC_SYS_COMPILER_FLAG_QINFO(ppt) AC_SYS_COMPILER_FLAG_QINFO(pro) AC_SYS_COMPILER_FLAG_QINFO(rea) AC_SYS_COMPILER_FLAG_QINFO(ret) # trd disabled, since it adds extra errors (in particular 1506-419). # AC_SYS_COMPILER_FLAG_QINFO(trd) AC_SYS_COMPILER_FLAG_QINFO(tru) AC_SYS_COMPILER_FLAG_QINFO(uni) AC_SYS_COMPILER_FLAG_QINFO(use) # AC_SYS_COMPILER_FLAG(-qalias=addr,qalias_addr,OPTIMIZE) # AC_SYS_COMPILER_FLAG(-qlibansi,qlibansi,OPTIMIZE) # Suppress warnings and informational messages we aren't interested in. AC_DEFUN(AC_SYS_COMPILER_FLAG_QSUPPRESS, [ AC_SYS_COMPILER_FLAG(-qsuppress=$1, translit([qsuppress_$1],[-:],[__]), ifelse([$2],,WARN,[$2])) ]) # 1506-010 (W) Macro XX invoked with a null argument for parameter Z. AC_SYS_COMPILER_FLAG_QSUPPRESS(1506-010) # 1506-219 (W) #line value 40140 too large. AC_SYS_COMPILER_FLAG_QSUPPRESS(1506-219, CPPFLAGS) # Tell the linker to generate a large toc if needed # # This option is not needed on AIX 5L/ia64. if test "x`uname -p`" = "xia64"; then :; else AC_SYS_COMPILER_FLAG(-bbigtoc,bbigtoc,LDFLAGS) fi
211a012005-04-07Henrik Grubbström (Grubba)  ])
de386f1998-08-06Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # HP-UX DO_IF_OS(HP-UX, [ AC_SYS_COMPILER_FLAG(-D__STDC_EXT__,stdc_ext,CFLAGS) AC_SYS_COMPILER_FLAG([-Wp,-H50000],cpp_buffer_size,CFLAGS) AC_SYS_COMPILER_FLAG(+ESlit,plus_ESlit,OPTIMIZE) AC_SYS_COMPILER_FLAG(+Odataprefetch,plus_Odataprefetch,OPTIMIZE) AC_SYS_COMPILER_FLAG(+Ofailsafe,plus_Ofailsafe,OPTIMIZE) # Ignore the following warnings if you enable +w1 # 414 Optimization reduced to +O2 for compatibility with Debug. # 530 Casting from loose to strict alignment # 558 Empty declaration. # AC_SYS_COMPILER_FLAG(+w1,plus_w1,WARN) ])
fde5a61997-09-05Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # OSF/1 DO_IF_OS(OSF1, [ AC_SYS_COMPILER_FLAG(-fast,fast,OPTIMIZE) # The need for -ieee is not detected properly by the FPE tests below. # AC_SYS_COMPILER_FLAG(-ieee,ieee,CFLAGS) AC_SYS_COMPILER_FLAG(-readonly_strings,readonly_strings,OPTIMIZE) AC_SYS_COMPILER_FLAG(-assume trusted_short_alignment, assume_trusted_short_alignment,OPTIMIZE) AC_SYS_COMPILER_FLAG(-assume aligned_objects, assume_aligned_objects,OPTIMIZE) AC_SYS_COMPILER_FLAG(-no_misalign,no_misalign,OPTIMIZE) AC_SYS_COMPILER_FLAG(-host,host,OPTIMIZE)
8334e31999-01-29Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Flags that cause errors or change compiler behaviour # must go in CFLAGS, they can not go in WARN # /Hubbe AC_SYS_COMPILER_FLAG(-std1,std1,CFLAGS) AC_SYS_COMPILER_FLAG(-warnprotos,warnprotos,WARN) ])
a897001997-04-10Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # IRIX DO_IF_OS(IRIX, [ # sopt disabled since it takes too long time on interpret.c (>45min on an O²) # AC_SYS_COMPILER_FLAG(-sopt,sopt,OPTIMIZE) # -n32 moved to smartlink so it will affect cc as well as linker # this way the user can override it by setting LDFLAGS and/or CFLAGS # AC_SYS_COMPILER_FLAG(-n32,n32,CFLAGS) AC_SYS_COMPILER_FLAG(-fullwarn,fullwarn,WARN) AC_SYS_COMPILER_FLAG(-woff 1209,woff_1209,WARN) AC_SYS_COMPILER_FLAG(-OPT:Olimit_opt=on,OPT_Olimit_opt_on,OPTIMIZE) if test x$with_cdebug = xyes ; then AC_SYS_COMPILER_FLAG(-g3,g3,CFLAGS) fi if test x$with_rtldebug = xyes ; then AC_SYS_COMPILER_FLAG(-trapuw,trapuw,WARN) fi ])
fde5a61997-09-05Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Windows NT DO_IF_OS(Windows_NT, [ case "x$CC" in *rntecl*) # Some options used by ecl (Intel's IA64 compiler).
a747c42000-05-01Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # We want threads, and link libc statically. AC_SYS_COMPILER_FLAG(-MT,MT,LDFLAGS)
a747c42000-05-01Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # Interprocedural optimizations. # For some reason this seems to cause the error: # dynamic_buffer.obj : error LNK2001: unresolved external symbol "[Entry] ?1memcpy" (.?1memcpy) # AC_SYS_COMPILER_FLAG(-Qip,Qip,OPTIMIZE)
a747c42000-05-01Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  # More warnings. AC_SYS_COMPILER_FLAG(-W3,W3,WARN)
a747c42000-05-01Henrik Grubbström (Grubba) 
0c4c482010-01-18Henrik Grubbström (Grubba)  if test x$with_rtldebug = xyes ; then # Initialize auto variables to 0xcc. # (Only if optimizations are turned off with -Od). AC_SYS_COMPILER_FLAG(-GZ,GZ,WARN) fi ;;
4eac6b2006-06-28Martin Stjernholm 
0c4c482010-01-18Henrik Grubbström (Grubba)  *rntcl*) if test x$with_debug_crt = xyes; then dynamic_crt_flag=-MDd static_crt_flag=-MTd else dynamic_crt_flag=-MD static_crt_flag=-MT fi ;; esac
1f21332000-07-28Fredrik Hübinette (Hubbe) 
0c4c482010-01-18Henrik Grubbström (Grubba)  if test x$with_dynamic_modules != xno; then pike_cv_sys_dynamic_loading=yes if test x$enable_dll != xyes; then PIKE_MSG_NOTE([Enabling dynamic modules for Win32.]) # EXTRA_MODULE_REQUIREMENTS="${EXTRA_MODULE_REQUIREMENTS} import_functions.h" DLOPEN_O="dlopen.o" AC_DEFINE(USE_MY_WIN32_DLOPEN) fi
46bd602006-08-05Martin Stjernholm  fi
0c4c482010-01-18Henrik Grubbström (Grubba)  ])
a747c42000-05-01Henrik Grubbström (Grubba) 
9211642004-12-16Henrik Grubbström (Grubba)  dnl dnl This does not work with Digital UNIX cc/ld (cc thinks it is ok, ld does not) dnl dnl AC_SYS_COMPILER_FLAG(-native,native,OPTIMIZE) dnl dnl ### Ok. This is for apcc... case "$CC" in *apcc) AC_SYS_COMPILER_FLAG(-XO=5,apcc_opt,OPTIMIZE) AC_SYS_COMPILER_FLAG(-Xcallmod=2,apcc_opt_2,OPTIMIZE) ;; esac
8cf37d1997-01-27Per Hedbor 
9211642004-12-16Henrik Grubbström (Grubba)  # Old cc for solaris. # AC_SYS_CPU_COMPILER_FLAG(sun4m,-Xpipe=micro,microsparc,OPTIMIZE) # AC_SYS_CPU_COMPILER_FLAG(sun4d,-Xpipe=super,supersparc,OPTIMIZE) # AC_SYS_CPU_COMPILER_FLAG(sun4u,-Xpipe=super,ultrasparc,OPTIMIZE)
8cf37d1997-01-27Per Hedbor 
9211642004-12-16Henrik Grubbström (Grubba)  case "${CFLAGS-} $OPTIMIZE" in *-O*) ;; *+O*) ;; *-fast*) ;; *) case "$pike_cv_sys_os:$GCC" in UnixWare*:no|OpenUNIX*:no) ;; *) ;; esac ;; esac fi if test "$ICC" = "yes"; then # icc or ecc. # Modern versions of icc and ecc claim to be gcc, so we need to have # this outside the main if-else segment. DO_IF_OS(Linux, [ # Linux with Intel C++ # Disable excessive warnings from Linux's header files: # warning #1292: attribute "__nothrow__" ignored AC_SYS_COMPILER_FLAG(-wd1292,wd1292,WARN) # And from Pike: # remark #177: function "MKPCHARP" was declared but never referenced AC_SYS_COMPILER_FLAG(-wd177,wd177,WARN) # remark #279: controlling expression is constant AC_SYS_COMPILER_FLAG(-wd279,wd279,WARN)
b50a592004-12-16Henrik Grubbström (Grubba)  # remark #869: parameter was never referenced AC_SYS_COMPILER_FLAG(-wd869,wd869,WARN)
9211642004-12-16Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-Ob2,Ob2,OPTIMIZE)
9d61882006-03-25Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-ip,ip,OPTIMIZE) # Iterprocedural optimization accross object files. # This slows down the compiler quite a bit with Pike's # large number of object files. # AC_SYS_COMPILER_FLAG(-ipo,ipo,OPTIMIZE) # AC_SYS_COMPILER_FLAG(-ipo,ipo,EXTRALDFLAGS) # AC_SYS_COMPILER_FLAG(-ipo_obj,ipo_obj,OPTIMIZE)
e08b482006-04-07Henrik Grubbström (Grubba)  # -parallel seems to generate broken code with icc 8.0/ia64. # AC_SYS_COMPILER_FLAG(-parallel, parallel,OPTIMIZE) # AC_SYS_COMPILER_FLAG(-parallel, parallel,LDFLAGS)
9211642004-12-16Henrik Grubbström (Grubba)  # arch dependent optimizations while maintaining # i386 compatibility AC_SYS_COMPILER_FLAG(-axKW,axKW,OPTIMIZE) ]) fi
c744782001-06-29Henrik Grubbström (Grubba) else # CFLAGS has already been set by the user. # Avoid adding anything that isn't essential. DO_IF_OS(AIX, [ # This one is needed to get the compiler to fail on errors, # which is needed for several configure-tests. AC_SYS_COMPILER_FLAG(-qhalt=e,qhalt_e,CFLAGS) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) fi
d9ea112004-12-30Henrik Grubbström (Grubba) AC_SUBST(DLOPEN_O)
3fb8772011-05-16Henrik Grubbström (Grubba) AC_MSG_CHECKING([crc32 intrinsics]) AC_CACHE_VAL(pike_cv_sys_have_crc_intrinsics,[ AC_TRY_LINK([ __attribute__((target("sse4"))) int c(int a) { return __builtin_ia32_crc32si(0,a); }],[ return c(0); ], [pike_cv_sys_have_crc_intrinsics=yes], [pike_cv_sys_have_crc_intrinsics=no]) ]) AC_MSG_RESULT($pike_cv_sys_have_crc_intrinsics) if test "x$pike_cv_sys_have_crc_intrinsics" = "xyes" ; then AC_DEFINE(HAVE_CRC32_INTRINSICS,[], [True if crc32 intrinsics are available]) fi
bcb5382001-08-23Boyd Lynn Gerber #############################################################################
9fee572005-01-06Henrik Grubbström (Grubba) # Script to translate from POSIX paths to native paths. echo "Creating posix_to_native.sh..." if test "x$PIKE_PATH_TRANSLATE" = "x"; then if test "x$pike_cv_is_mingw" = "xyes"; then # MinGW system. cat <<\EOF #!/bin/sh
2cf5272010-10-17Artur Skawina # Automatically generated by $Id$.
9fee572005-01-06Henrik Grubbström (Grubba) # MinGW-version. Do NOT edit. posix_name="`cat`" posix_prefix="/" native_prefix="/" case "$posix_name" in /*) ;; *) posix_name="`pwd`/$posix_name" ;; esac case "$posix_name" in EOF
299f922005-01-10Henrik Grubbström (Grubba)  # Split and recombine the lines. # Sort the lines according to longest path first. # Convert backslashes to forward slashes. # Escape spaces, tabs and dollars. # Note, dollars must be escaped both for sed, sh and sed. # Split, and generate the case entries. # Remove any duplicate sequences of slashes. mount | \ sed -e 's/\(.*\) on \(.*\) type user.*/\2 _split_ \1/p' -ed | \ sort -r | \
b704072005-01-06Henrik Grubbström (Grubba)  sed -e 's/\\/\//g' | \
72e9c12005-01-10Henrik Grubbström (Grubba)  sed -e 's/\([[ ]]\)/\\\1/g' -e 's/\$/\\\\\\\$/g' | \
299f922005-01-10Henrik Grubbström (Grubba)  sed -e 's/\(.*\)\\ _split_\\ \(.*\)/ \1|\1\/*)\ posix_prefix=\1\ native_prefix=\2\/\
378a132005-01-07Henrik Grubbström (Grubba)  \;\;/p' -ed | \ sed -e 's/\/\//\//g'
9fee572005-01-06Henrik Grubbström (Grubba)  cat <<\EOF esac
95bdda2005-01-07Henrik Grubbström (Grubba) echo "$posix_name" | \ sed -e "s,^$posix_prefix,$native_prefix," | \ sed -e 's/\/\//\//g'
9fee572005-01-06Henrik Grubbström (Grubba) EOF else # Native POSIX system. cat <<\EOF #!/bin/sh
2cf5272010-10-17Artur Skawina # Automatically generated by $Id$.
9fee572005-01-06Henrik Grubbström (Grubba) # POSIX-version. Do NOT edit. cat EOF fi else # rntcl-style cat <<\EOF #!/bin/sh
2cf5272010-10-17Artur Skawina # Automatically generated by $Id$.
9fee572005-01-06Henrik Grubbström (Grubba) # RNTCL-version. Do NOT edit. sed -e "$PIKE_PATH_TRANSLATE" EOF fi >posix_to_native.sh chmod a+x posix_to_native.sh #############################################################################
2565f41997-02-26Fredrik Hübinette (Hubbe) if test ! -d modules/. ; then
cb728c1997-01-12Henrik Grubbström (Grubba)  mkdir modules fi
c0911b1997-10-03Henrik Grubbström (Grubba)  ############################################################################# ## Search for some popular places where libraries may be hidden. #############################################################################
abb3c92006-07-23Martin Nilsson if test "x$pike_cv_sys_os$pike_cv_is_mingw" != xWindows_NT ; then
a12f271998-01-10Fredrik Hübinette (Hubbe) 
8f53bd2005-06-15Henrik Grubbström (Grubba) echo Searching for library and include directories... #Don't add include dirs if they give us warnings... OLD_ac_c_preproc_warn_flag="$ac_c_preproc_warn_flag" ac_c_preproc_warn_flag=yes
4550062005-06-18Henrik Grubbström (Grubba) AC_TRY_CPP([#include <stdio.h>], , [ AC_MSG_WARN([Turning on preprocessor warnings causes cpp test to fail.]) ac_c_preproc_warn_flag="$OLD_ac_c_preproc_warn_flag" ])
8f53bd2005-06-15Henrik Grubbström (Grubba) 
1d94062006-01-09Henrik Grubbström (Grubba) PIKE_INIT_REAL_DIRS
8f53bd2005-06-15Henrik Grubbström (Grubba) 
e12c222006-08-10Henrik Grubbström (Grubba) if test "x$with_lib_path" = "x"; then
147e532009-10-19Marcus Comstedt  : # Actual code for this case appears later...
e12c222006-08-10Henrik Grubbström (Grubba) else
8f53bd2005-06-15Henrik Grubbström (Grubba)  for dd in `echo $with_lib_path | sed -e 's/:/ /g'`; do
30f2792002-11-22Henrik Grubbström (Grubba)  if test "$dd" = "/lib"; then continue; fi if test "$dd" = "/usr/lib"; then continue; fi
226a722006-01-05Henrik Grubbström (Grubba)  for suff in $pike_cv_abi_suffixes; do
c4b41d2002-04-06Henrik Grubbström (Grubba)  d="$dd$suff"
1d94062006-01-09Henrik Grubbström (Grubba)  PIKE_CHECK_ABI_LIB_DIR($d)
c4b41d2002-04-06Henrik Grubbström (Grubba)  done
c0911b1997-10-03Henrik Grubbström (Grubba)  done fi
c67b691996-11-16Fredrik Hübinette (Hubbe) 
8f53bd2005-06-15Henrik Grubbström (Grubba) if test "x$with_include_path" = "x"; then :; else for d in `echo $with_include_path | sed -e 's/:/ /g'`; do if test "$d" = "/lib/include"; then continue; fi if test "$d" = "/usr/lib/include"; then continue; fi AC_MSG_CHECKING($d) if test -d "$d/." ; then real_dir=`cd "$d/." && /bin/pwd 2>/dev/null` if test "x$real_dir" = "x"; then real_dir="UNKNOWN" else case " $real_incs " in *\ $real_dir\ *) AC_MSG_RESULT(already checked) continue ;; esac real_incs="$real_incs $real_dir" fi case " $CPPFLAGS " in *\ -I$d\ * | *\ -I$real_dir\ *) AC_MSG_RESULT(already added) ;; *) OLD_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="${CPPFLAGS} -I$d" AC_TRY_CPP([#include <stdio.h>], [ AC_MSG_RESULT(added) ], [ AC_MSG_RESULT(fails) CPPFLAGS="${OLD_CPPFLAGS}" ]) ;; esac else AC_MSG_RESULT(no) fi done fi
8ec31a2005-11-07Henrik Grubbström (Grubba) primary_path="" fallback_path=""
8f53bd2005-06-15Henrik Grubbström (Grubba) if test $ldflags_is_set = yes -a $cppflags_is_set = yes ; then :; else for dd in \ `echo "${with_site_prefixes}"|sed -e 's/:/ /g'` \ `echo $exec_prefix | sed "s@^NONE@$prefix@g" | sed "s@^NONE@$with_root$ac_default_prefix@g"` \
3c60832010-02-16Henrik Grubbström (Grubba)  $with_root/usr \
8f53bd2005-06-15Henrik Grubbström (Grubba)  $with_root/usr/local $with_root/sw/local $with_root/sw \ $with_root/usr/gnu $with_root/opt/gnu $with_root/sw/gnu \ $with_root/usr/freeware $with_root/usr/pkg \ `echo $with_root/opt/gnome* | sort -r` \
c86f932009-10-19Marcus Comstedt  `echo $with_root/usr/X* | sort -r` \ $with_root/usr/sfw $with_root/opt/sfw $with_root/opt/csw \ $with_root/usr/ccs
8f53bd2005-06-15Henrik Grubbström (Grubba)  do if test "$dd" = "/"; then continue; fi
3c60832010-02-16Henrik Grubbström (Grubba)  #if test "$dd" = "/usr"; then continue; fi
8f53bd2005-06-15Henrik Grubbström (Grubba)  AC_MSG_CHECKING($dd) if test -d "$dd/."; then :; else AC_MSG_RESULT(no) continue fi real_dir=`cd "$dd/." && /bin/pwd 2>/dev/null` if test "x$real_dir" = "x"; then AC_MSG_RESULT(ok but pwd failed) else case " $real_dirs " in *\ $real_dir\ *) AC_MSG_RESULT(already checked) continue ;; esac AC_MSG_RESULT(ok) real_dirs="$real_dirs $real_dir" fi libs_found="" if test $ldflags_is_set = yes ; then :; else
e3100f2006-01-13Henrik Grubbström (Grubba)  for suff in $pike_cv_abi_suffixes; do
8f53bd2005-06-15Henrik Grubbström (Grubba)  d="$dd/lib$suff"
1d94062006-01-09Henrik Grubbström (Grubba)  PIKE_CHECK_ABI_LIB_DIR($d, [libs_found="yes"], [ if test "x$libs_found" = "x"; then libs_found="no"
8f53bd2005-06-15Henrik Grubbström (Grubba)  fi
1d94062006-01-09Henrik Grubbström (Grubba)  ], [libs_found="yes"])
8f53bd2005-06-15Henrik Grubbström (Grubba)  done fi
8ec31a2005-11-07Henrik Grubbström (Grubba)  AC_MSG_CHECKING($dd/bin) if test -d "$dd/bin/."; then if test "x$libs_found" = "xno"; then AC_MSG_RESULT(yes - use as fallback) if test "x$fallback_path" = "x"; then fallback_path="$dd/bin" else fallback_path="$fallback_path:$dd/bin" fi else AC_MSG_RESULT(yes) if test "x$primary_path" = "x"; then primary_path="$dd/bin" else primary_path="$primary_path:$dd/bin" fi fi else AC_MSG_RESULT(no) fi
8f53bd2005-06-15Henrik Grubbström (Grubba)  if test $cppflags_is_set = no -a "x$C_INCLUDE_PATH" = "x"; then d="$dd/include" AC_MSG_CHECKING($d) if test "x$libs_found" = "xno"; then # Don't add includes that correspond to libraries for the wrong ABI. AC_MSG_RESULT(skipped - bad libraries) continue fi if test -d "$d/." ; then real_dir=`cd "$d/." && /bin/pwd 2>/dev/null` if test "x$real_dir" = "x"; then real_dir="UNKNOWN" else case " $real_incs " in *\ $real_dir\ *) AC_MSG_RESULT(already checked) continue ;; esac real_incs="$real_incs $real_dir" fi case " $CPPFLAGS " in *\ -I$d\ * | *\ -I$real_dir\ *) AC_MSG_RESULT(already added) ;; *) OLD_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="${CPPFLAGS} -I$d" AC_TRY_CPP([#include <stdio.h>], [ AC_MSG_RESULT(added) ], [ AC_MSG_RESULT(fails) CPPFLAGS="${OLD_CPPFLAGS}" ]) ;; esac else AC_MSG_RESULT(no) fi fi done fi
8ec31a2005-11-07Henrik Grubbström (Grubba) if test "x$primary_path" = "x"; then EXTRA_PATH="$fallback_path" elif test "x$fallback_path" = "x"; then EXTRA_PATH="$primary_path" else EXTRA_PATH="$primary_path:$fallback_path" fi export EXTRA_PATH
8f53bd2005-06-15Henrik Grubbström (Grubba) #Restore preprocessor warning sensitivity ac_c_preproc_warn_flag="$OLD_ac_c_preproc_warn_flag"
147e532009-10-19Marcus Comstedt if test "x$with_lib_path" = "x"; then
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x$with_dynamic_modules" = "xno"; then :; elif test "x$GCC" = "xno"; then :; else # Extract the default library paths from gcc, # so that we can pass them along to ld later on. for dd in `$CC -print-search-dirs 2>/dev/null | sed -e '/^libraries:/s/^[[^=]]*=//p' -ed | sed -e 's/\/:/ /g' -e 's/:/ /g' -e 's/\/$//'` /lib; do if test -d "$dd"; then :; else continue; fi # Normalize the paths. dd=`cd "$dd" && pwd` if test "$dd" = "/lib"; then continue; fi if test "$dd" = "/usr/lib"; then continue; fi for suff in $pike_cv_abi_suffixes; do d="$dd$suff" PIKE_CHECK_ABI_DIR($d, [ AC_MSG_CHECKING([if we need to add -L$real_dir to LDFLAGS]) case " $LDFLAGS " in *\ -L$d\ *) AC_MSG_RESULT([no - already added]) ;; *\ -L$real_dir\ *) AC_MSG_RESULT([no - already added]) ;; *) LDFLAGS="$LDFLAGS -L$real_dir" AC_MSG_RESULT([yes - added]) ;; esac AC_MSG_CHECKING([if we need to add -R$real_dir to LDFLAGS]) case " $LDFLAGS " in *\ -R$d\ *) AC_MSG_RESULT([no - already added]) ;; *\ -R$real_dir\ *) AC_MSG_RESULT([no - already added]) ;; *) if test "x$abi_dir_dynamic" = "xyes"; then LDFLAGS="$LDFLAGS -R$real_dir"
147e532009-10-19Marcus Comstedt  AC_MSG_RESULT([yes - added])
0c4c482010-01-18Henrik Grubbström (Grubba)  else AC_MSG_RESULT([no - does not contain dynamic objects]) fi ;; esac ])
147e532009-10-19Marcus Comstedt  done
0c4c482010-01-18Henrik Grubbström (Grubba)  done
147e532009-10-19Marcus Comstedt  fi fi
a12f271998-01-10Fredrik Hübinette (Hubbe) else
abb3c92006-07-23Martin Nilsson  # We are running NT without MinGW
ed616b2003-02-08Martin Stjernholm  :
a12f271998-01-10Fredrik Hübinette (Hubbe) fi
ed616b2003-02-08Martin Stjernholm # During the configure tests we need some extra includes that # shouldn't be there in the final version. CONF_CPPFLAGS_EXTRA="-I$srcdir -I`pwd`" CPPFLAGS="${CPPFLAGS} ${CONF_CPPFLAGS_EXTRA}"
bcf2722009-09-24Henrik Grubbström (Grubba) # We want to know if we ought to append any abi indicator to the libdir.
2ea1932009-09-26Henrik Grubbström (Grubba) AC_MSG_CHECKING(if an abi indicator would be appropriate for libdir)
bcf2722009-09-24Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_lib_abi, [ pike_cv_lib_abi="" for dd in "$with_root/lib" "$with_root/usr/lib" "$prefix/lib"; do for d in $pike_cv_abi_suffixes; do if test "x$d" = "x/."; then :; elif test -d "$dd$d/."; then pike_cv_lib_abi="$d" break fi done done ]) AC_MSG_RESULT($pike_cv_lib_abi)
2ea1932009-09-26Henrik Grubbström (Grubba)  AC_MSG_CHECKING(what libdir should be set to) if test "x$pike_cv_lib_abi" = "x"; then :; elif test -d `eval echo "$libdir$pike_cv_lib_abi/."` -o \ "x$libdir" = 'x${exec_prefix}/lib'; then libdir="$libdir$pike_cv_lib_abi" fi AC_MSG_RESULT($libdir)
bcf2722009-09-24Henrik Grubbström (Grubba) 
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
bf622c1997-09-19Henrik Grubbström (Grubba) ## At this point we have at last initialized the compiler! #############################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) if test ! -f confdefs.h ; then
b7890d2002-12-11Mirar (Pontus Hagland)  PIKE_MSG_WARN([Warning, lost confdefs.h, testing will be flawed!!
c411dc1997-04-21Fredrik Hübinette (Hubbe) You might need to use bash instead of /bin/sh to get correct results. To do this, please type the following at an sh prompt: \$ rm ./config.cache \$ CONFIG_SHELL=/path/to/bash \$ export CONFIG_SHELL
0a86982003-11-07Martin Stjernholm  \$ $CONFIG_SHELL ./configure])
c411dc1997-04-21Fredrik Hübinette (Hubbe) fi #############################################################################
c6f4a82002-01-27Martin Stjernholm AC_MSG_CHECKING(ansi prototype capability) AC_CACHE_VAL(pike_cv_sys_ansi_prototypes, [ AC_TRY_COMPILE([int foo(int bar);],[], [pike_cv_sys_ansi_prototypes=yes], [pike_cv_sys_ansi_prototypes=no]) ])
1acce82001-01-27Martin Stjernholm 
c6f4a82002-01-27Martin Stjernholm if test "$pike_cv_sys_ansi_prototypes" = "yes"; then AC_MSG_RESULT(yes) else
518cc02002-09-10Marcus Comstedt  AC_MSG_RESULT([no, giving up...])
c6f4a82002-01-27Martin Stjernholm  exit 1
1acce82001-01-27Martin Stjernholm fi
9925681996-10-11Fredrik Hübinette (Hubbe) 
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
c7f2712007-06-09Martin Stjernholm AC_MSG_CHECKING(how to concatenate two symbols) AC_CACHE_VAL(pike_cv_cpp_symbol_concat, [ AC_TRY_COMPILE([ int AABB=0; #define CONCAT(X,Y) X##Y ], [ return CONCAT(AA,BB); ], pike_cv_cpp_symbol_concat=ANSI, [ AC_TRY_COMPILE([ int AABB=0; #define CONCAT(X,Y) X/**/Y ], [ return CONCAT(AA,BB); ], pike_cv_cpp_symbol_concat=KR, [ pike_cv_cpp_symbol_concat=Unknown ]) ]) ]) AC_MSG_RESULT($pike_cv_cpp_symbol_concat) case "$pike_cv_cpp_symbol_concat" in "ANSI") AC_DEFINE(HAVE_ANSI_CONCAT) ;; "KR") AC_DEFINE(HAVE_KR_CONCAT) ;; esac #############################################################################
7ac9c11998-12-03Henrik Grubbström (Grubba) # The AC_PROG_INSTALL test is broken if $INSTALL is specified by hand. # The FreeBSD ports system does this... # Workaround: if test "x$INSTALL" = "x"; then :; else # $INSTALL overrides ac_cv_path_install anyway... ac_cv_path_install="$INSTALL" fi
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_PROG_INSTALL AC_PROG_CPP AC_PROG_RANLIB
02c9642000-12-18Fredrik Hübinette (Hubbe) if test "x${AR-}" = x ; then AC_PATH_PROG(AR, ar, ar, $PATH:$EXTRA_PATH) export AR fi
6fa2281997-11-04Henrik Grubbström (Grubba) AC_SUBST(AR)
97c8ba2004-10-20Henrik Grubbström (Grubba) if test "x${RNTANY-}" = x ; then
d56ff32006-08-04Martin Stjernholm  AC_PATH_PROG(RNTANY, rntany, , $PATH:$EXTRA_PATH)
97c8ba2004-10-20Henrik Grubbström (Grubba)  export RNTANY fi AC_SUBST(RNTANY) # Wix compiler if test "x${CANDLE-}" = x ; then
d56ff32006-08-04Martin Stjernholm  PIKE_NT_PROG(CANDLE, candle, , $PATH:$EXTRA_PATH)
97c8ba2004-10-20Henrik Grubbström (Grubba)  export CANDLE fi AC_SUBST(CANDLE) # Wix linker if test "x${LIGHT-}" = x ; then
d56ff32006-08-04Martin Stjernholm  PIKE_NT_PROG(LIGHT, light, , $PATH:$EXTRA_PATH)
97c8ba2004-10-20Henrik Grubbström (Grubba)  export LIGHT fi AC_SUBST(LIGHT)
2f91412004-11-01Henrik Grubbström (Grubba) # Wix tool
4592822011-04-09Martin Stjernholm # This one doesn't exist any more in WiX 3.x. #if test "x${TALLOW-}" = x ; then # PIKE_NT_PROG(TALLOW, tallow, , $PATH:$EXTRA_PATH) # export TALLOW #fi #AC_SUBST(TALLOW)
2f91412004-11-01Henrik Grubbström (Grubba) 
d175152006-08-02Martin Stjernholm # VC8 manifest tool if test "x${MTEXE-}" = x ; then
d56ff32006-08-04Martin Stjernholm  PIKE_NT_PROG(MTEXE, mt.exe, , $PATH:$EXTRA_PATH)
d175152006-08-02Martin Stjernholm  export MTEXE fi
d56ff32006-08-04Martin Stjernholm # Resource compiler if test "x${RCEXE-}" = x ; then PIKE_NT_PROG(RCEXE, rc.exe, , $PATH:$EXTRA_PATH) export RCEXE fi AC_SUBST(RCEXE)
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
9fe0a01997-08-16Henrik Grubbström (Grubba) # installbsd seems to be broken on some versions of AIX # # /grubba 1997-08-16 case "$ac_cv_path_install" in *installbsd*) AC_MSG_CHECKING(if $ac_cv_path_install works) AC_CACHE_VAL(pike_cv_install_works, [ if $ac_cv_path_install "$srcdir/configure.in" ./conftest >/dev/null 2>&1 then if cmp "$srcdir/configure.in" ./conftest >/dev/null 2>&1; then pike_cv_install_works=yes; else pike_cv_install_works=no; fi else pike_cv_install_works=no; fi if test -f ./conftest; then rm -f ./conftest fi ]) AC_MSG_RESULT($pike_cv_install_works) if test "$pike_cv_install_works" = "no"; then echo "Warning: Falling back to $ac_install_sh" INSTALL="$ac_install_sh" fi ;; esac #############################################################################
bfd5a52001-02-17Henrik Grubbström (Grubba) 
26e7e71996-04-23Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for yacc clone that handles %pure_parser)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_prog_working_yacc,
26e7e71996-04-23Fredrik Hübinette (Hubbe) [
4e2e071998-11-16Fredrik Hübinette (Hubbe) for YACC in pyacc byacc "bison -y" yacc "None"; do
26e7e71996-04-23Fredrik Hübinette (Hubbe)  set dummy $YACC; ac_word=$2 has_it=no IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then has_it="yes" break
8f42881996-03-01Fredrik Hübinette (Hubbe)  fi
26e7e71996-04-23Fredrik Hübinette (Hubbe)  done IFS="$ac_save_ifs" if test "$has_it" = "yes"; then cat >conftest.y<<\EOF %pure_parser %{ void parse(); void yyerror(char *); %} %% all: foo bar foo: 'f' 'o' 'o' { parse(); } ; bar: 'b' 'a' 'r' ; %% int context;
8f42881996-03-01Fredrik Hübinette (Hubbe) 
26e7e71996-04-23Fredrik Hübinette (Hubbe) int yylex(YYSTYPE *yylval) { switch(context++) { case 0: return 'f'; case 1: return 'o'; case 2: return 'o'; case 3: return 'b'; case 4: return 'a'; case 5: return 'r'; default: return 0; } } int depth=0; void parse() { int tmp; if(depth++>5) return; tmp=context; context=0; yyparse(); context=tmp; } int errors=0; void yyerror(char *fel) { errors++; } int main() { parse(); exit(errors); } EOF
9edb202004-03-10Henrik Grubbström (Grubba)  if $YACC -d conftest.y 1>&AC_FD_CC 2>&AC_FD_CC; then
1acce82001-01-27Martin Stjernholm  if test "x$enable_binary" = "xno"; then
5e68162005-11-01Henrik Grubbström (Grubba)  rm -f y.tab.*
1acce82001-01-27Martin Stjernholm  break else AC_TRY_RUN([
26e7e71996-04-23Fredrik Hübinette (Hubbe) #include "y.tab.c"
75920f1997-12-28Fredrik Hübinette (Hubbe) ],pure_parser_works=yes,pure_parser_works=no,pure_parser_works=no)
5e68162005-11-01Henrik Grubbström (Grubba)  rm -f y.tab.*
1acce82001-01-27Martin Stjernholm  if test "$pure_parser_works" = "yes"; then break fi
26e7e71996-04-23Fredrik Hübinette (Hubbe)  fi
5e68162005-11-01Henrik Grubbström (Grubba)  else rm -f y.tab.*
26e7e71996-04-23Fredrik Hübinette (Hubbe)  fi
8f42881996-03-01Fredrik Hübinette (Hubbe)  fi
26e7e71996-04-23Fredrik Hübinette (Hubbe) done
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_prog_working_yacc="$YACC"
26e7e71996-04-23Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) YACC="$pike_cv_prog_working_yacc"
4943ca1997-04-21Fredrik Hübinette (Hubbe)  if test "x$YACC" = "xNone" ; then
1acce82001-01-27Martin Stjernholm  AC_MSG_RESULT([Get bison if you want to do "make export"])
4943ca1997-04-21Fredrik Hübinette (Hubbe)  YACC="bison -y" else AC_MSG_RESULT($YACC) fi
5267b71995-08-09Fredrik Hübinette (Hubbe) 
4174542001-01-26Martin Stjernholm #############################################################################
42de022005-10-13Martin Stjernholm AC_MSG_CHECKING(how bison uses short) AC_CACHE_VAL(pike_cv_short_use, [ pike_cv_short_use=unknown for short_use in CT_SHORT CT_SHORT_INT; do cat >conftest.y <<EOF %{ #define $short_use #ifdef CT_SHORT #define short int #else #define short #endif void parse(); void yyerror(char *); %} %% foo: 'f' x y ; x: 'o' ; y: 'o' ; %% int context = 0; int yylex(YYSTYPE *yylval) { switch(context++) { case 0: return 'f'; case 1: return 'o'; case 2: return 'o'; default: return 0; } } int errors=0; void yyerror(char *fel) { errors++; } EOF if $YACC -d conftest.y 1>&AC_FD_CC 2>&AC_FD_CC; then AC_TRY_COMPILE([ #include "y.tab.c" ],[ yyparse(); exit(errors); ],ok=yes,ok=no) if test "$ok" = "yes"; then pike_cv_short_use=$short_use break fi fi done ]) case "$pike_cv_short_use" in CT_SHORT) AC_MSG_RESULT(short) AC_DEFINE(BISON_SHORT_EXPANSION,int) ;; CT_SHORT_INT) AC_MSG_RESULT(short int) AC_DEFINE(BISON_SHORT_EXPANSION,[]) ;; *) AC_MSG_RESULT(unknown) ;; esac #############################################################################
d523532002-09-24Henrik Grubbström (Grubba) AC_MSG_CHECKING(for the type of __yy_memcpy)
f5d7042001-01-20Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv___yy_memcpy_count_type, [
d523532002-09-24Henrik Grubbström (Grubba)  pike_cv___yy_memcpy_from_const=
f5d7042001-01-20Henrik Grubbström (Grubba)  pike_cv___yy_memcpy_count_type=unknown
4865232001-01-20Henrik Grubbström (Grubba)  for count_type in "unsigned int" "size_t" "unsigned long" "int"; do
d523532002-09-24Henrik Grubbström (Grubba)  for from_const in "const" ""; do cat >conftest.y <<EOF
f5d7042001-01-20Henrik Grubbström (Grubba) %pure_parser %{ #include <stdio.h> #ifndef __GNUC__ #ifndef __cplusplus
d523532002-09-24Henrik Grubbström (Grubba) static void __yy_memcpy(char *to, $from_const char *from, $count_type count);
f5d7042001-01-20Henrik Grubbström (Grubba) #endif /* !__cplusplus */ #endif /* !__GNUC__ */
4865232001-01-20Henrik Grubbström (Grubba)  void yyerror(char *); int yylex(void *);
f5d7042001-01-20Henrik Grubbström (Grubba) %} %% all: foo bar
a8adfd2001-01-20Henrik Grubbström (Grubba) foo: 'f' 'o' 'o' { fprintf(stderr, "foo\\n"); } ;
f5d7042001-01-20Henrik Grubbström (Grubba) bar: 'b' 'a' 'r' ; %%
4865232001-01-20Henrik Grubbström (Grubba) int yylex(void *yylval) { return 'f'; }
a8adfd2001-01-20Henrik Grubbström (Grubba) void yyerror(char *err) { fprintf(stderr, "ERR: %s\\n", err); }
f5d7042001-01-20Henrik Grubbström (Grubba) EOF
9edb202004-03-10Henrik Grubbström (Grubba)  echo conftest.y: 1>&AC_FD_CC cat conftest.y 1>&AC_FD_CC if $YACC -d conftest.y 1>&AC_FD_CC 2>&AC_FD_CC; then
d523532002-09-24Henrik Grubbström (Grubba)  AC_TRY_LINK([
f5d7042001-01-20Henrik Grubbström (Grubba) #include "y.tab.c"
d523532002-09-24Henrik Grubbström (Grubba)  ], [
f5d7042001-01-20Henrik Grubbström (Grubba)  yyparse(); exit(0);
d523532002-09-24Henrik Grubbström (Grubba)  ], [ pike_cv___yy_memcpy_count_type=$count_type pike_cv___yy_memcpy_from_const="$from_const" break ]) fi done if test "x$pike_cv___yy_memcpy_count_type" = "xunknown"; then :; else break
f5d7042001-01-20Henrik Grubbström (Grubba)  fi done ]) if test "x$pike_cv___yy_memcpy_count_type" = "xunknown"; then
d523532002-09-24Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv___yy_memcpy_count_type)
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Defaulting to unsigned int.])
6ded522001-07-13Henrik Grubbström (Grubba)  YY_COUNT_TYPE="unsigned int"
d523532002-09-24Henrik Grubbström (Grubba)  YY_FROM_CONST=""
f5d7042001-01-20Henrik Grubbström (Grubba) else
d523532002-09-24Henrik Grubbström (Grubba)  AC_MSG_RESULT(void __yy_memcpy(char *, $pike_cv___yy_memcpy_from_const char *, $pike_cv___yy_memcpy_count_type))
6ded522001-07-13Henrik Grubbström (Grubba)  YY_COUNT_TYPE="$pike_cv___yy_memcpy_count_type"
d523532002-09-24Henrik Grubbström (Grubba)  YY_FROM_CONST="$pike_cv___yy_memcpy_from_const"
f5d7042001-01-20Henrik Grubbström (Grubba) fi
6ded522001-07-13Henrik Grubbström (Grubba) AC_SUBST(YY_COUNT_TYPE)
d523532002-09-24Henrik Grubbström (Grubba) AC_SUBST(YY_FROM_CONST)
f5d7042001-01-20Henrik Grubbström (Grubba) 
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
bf622c1997-09-19Henrik Grubbström (Grubba) ## At this point we have found all binaries we are going to use. ############################################################################# AC_C_CONST
3bb83a1997-09-22Henrik Grubbström (Grubba) # The above doesn't find IBM C's buggy const. if test "$ac_cv_c_const" = "yes"; then AC_MSG_CHECKING(if const really does work)
8976531997-12-22Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_c_really_const,[ AC_TRY_COMPILE([
3bb83a1997-09-22Henrik Grubbström (Grubba) const int foo(int bar) { return bar; }
8976531997-12-22Fredrik Hübinette (Hubbe)  ], [ return bar(0); ], [ pike_cv_c_really_const=yes ], [ pike_cv_c_really_const=no ])
3bb83a1997-09-22Henrik Grubbström (Grubba)  ])
8976531997-12-22Fredrik Hübinette (Hubbe)  AC_MSG_RESULT($pike_cv_c_really_const) if test "x$pike_cv_c_really_const" = xno ; then AC_DEFINE(const, []) else : fi
3bb83a1997-09-22Henrik Grubbström (Grubba) fi
4ff8002004-03-12Henrik Grubbström (Grubba) AC_MSG_CHECKING([if restrict keyword is available (C99)]) AC_CACHE_VAL(pike_cv_keyword_restrict, [ AC_TRY_COMPILE([ extern int foo(void *bar[restrict], void *restrict baz); ], [], [ pike_cv_keyword_restrict="yes" ], [ pike_cv_keyword_restrict="no" ]) ]) AC_MSG_RESULT($pike_cv_keyword_restrict) if test "x$pike_cv_keyword_restrict" = "xno"; then AC_DEFINE(restrict, [ /* Not supported */ ]) fi
b9b05f2003-02-20Henrik Grubbström (Grubba) AC_C_CHAR_UNSIGNED
82c04f1999-04-25Henrik Grubbström (Grubba) AC_MSG_CHECKING(if we can cast void * to a function pointer) AC_CACHE_VAL(pike_cv_function_cast, [ AC_TRY_COMPILE([ void *foo = 0; ],[ void (*bar)(void) = (void (*)(void)) foo; ],[ pike_cv_function_cast="yes" ], [ pike_cv_function_cast="no" ]) ]) if test "$pike_cv_function_cast" = "yes"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_DEFINE(NO_CAST_TO_FUN) fi
bf622c1997-09-19Henrik Grubbström (Grubba) #############################################################################
c7f2712007-06-09Martin Stjernholm AC_MSG_CHECKING(for isgraph) AC_CACHE_VAL(pike_cv_func_isgraph, [ AC_TRY_LINK([ #include <ctype.h>
0c4c482010-01-18Henrik Grubbström (Grubba)  ], [ return(!isgraph('A')); ], pike_cv_func_isgraph=yes, pike_cv_func_isgraph=no)
c7f2712007-06-09Martin Stjernholm ]) AC_MSG_RESULT($pike_cv_func_isgraph) if test "x$pike_cv_func_isgraph" = "xyes" ; then AC_DEFINE(HAVE_ISGRAPH) else :; fi #############################################################################
8f9f3d2007-12-26Henrik Grubbström (Grubba) PIKE_AC_DEBUG
ec24a42006-07-02Martin Stjernholm # Note: For function detection to work correctly with # PIKE_FUNCS_NEED_DECLS (i.e. windows), it's necessary that # AC_CHECK_HEADERS tests all potential header files for a function # before AC_CHECK_FUNCS is used.
6930181996-02-25Fredrik Hübinette (Hubbe) AC_HEADER_TIME AC_HEADER_STDC
8c9f332006-08-04Martin Stjernholm # Note: winsock2.h has to be included before winsock.h to avoid # conflict. Thus check for winsock2.h before anything else in case # winsock.h is included indirectly. AC_CHECK_HEADERS(winsock2.h sys/rusage.h time.h sys/time.h sys/types.h \ unistd.h stdlib.h memory.h values.h string.h strings.h \ fcntl.h sys/filio.h sys/sockio.h crypt.h locale.h \ sys/select.h net/socket.h sys/param.h stdio.h wchar.h io.h \
12368a2003-04-30Henrik Grubbström (Grubba)  sys/mman.h setjmp.h sys/user.h limits.h pthread.h \ crt/signal.h sys/id.h mach-o/dyld.h sys/ptrace.h \ thread.h dlfcn.h dld.h dl.h sys/times.h sched.h \
daf8462009-03-18Henrik Grubbström (Grubba)  sys/procfs.h sys/ioct.h sys/socket.h sys/uio.h fcntl.h \
500f8e2004-11-17Henrik Grubbström (Grubba)  malloc.h netinet/in.h sys/wait.h windows.h grp.h pwd.h \
8d17be2006-07-02Martin Stjernholm  passwd.h group.h winsock.h signal.h sys/file.h poll.h \
12368a2003-04-30Henrik Grubbström (Grubba)  sys/poll.h socket.h ieeefp.h fp_class.h floatingpoint.h \
500f8e2004-11-17Henrik Grubbström (Grubba)  float.h sys/priocntl.h sys/sched.h winbase.h errno.h \
895ced2003-10-25Martin Nilsson  stddef.h mmx.h asm/mmx.h sys/termio.h sys/termios.h \ ws2tcpip.h valgrind/memcheck.h memcheck.h valgrind.h \
32ccf92003-11-25Jonas Wallden  sys/prctl.h sys/ioctl.h mach/task_info.h mach/task.h \
d97bbf2005-08-27Jonas Wallden  mach/mach_init.h syscall.h sys/syscall.h devices/timer.h \
8dc5b42008-11-07Martin Stjernholm  direct.h CoreServices/CoreServices.h execinfo.h \ mach/mach.h mach/thread_act.h mach/clock.h,,,[
500f8e2004-11-17Henrik Grubbström (Grubba) #if (defined(__WINNT__) || defined(__WIN32__)) && !defined(__NT__) #define __NT__ #endif #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE #endif #ifndef __STDC_EXT__ # define __STDC_EXT__ #endif /* !__STDC_EXT__ */ #ifndef _PROTOTYPES # define _PROTOTYPES #endif /* !_PROTOTYPES */ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif /* !_GNU_SOURCE */ #ifdef __NT__ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #ifndef WIN32 #define WIN32 100 /* WinNT 1.0 */ #endif
efd1802009-05-28Henrik Grubbström (Grubba) #if !defined(_WIN32_WINDOWS) || (_WIN32_WINDOWS < 0x500)
500f8e2004-11-17Henrik Grubbström (Grubba) #undef _WIN32_WINDOWS
efd1802009-05-28Henrik Grubbström (Grubba) #define _WIN32_WINDOWS 0x0500
500f8e2004-11-17Henrik Grubbström (Grubba) #endif
efd1802009-05-28Henrik Grubbström (Grubba) #if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x500)
500f8e2004-11-17Henrik Grubbström (Grubba) #undef _WIN32_WINNT
efd1802009-05-28Henrik Grubbström (Grubba) #define _WIN32_WINNT 0x0500
b3f7ab2009-05-27Henrik Grubbström (Grubba) #endif
efd1802009-05-28Henrik Grubbström (Grubba) #if !defined(NTDDI_VERSION) || (NTDDI_VERSION < 0x05000000)
b3f7ab2009-05-27Henrik Grubbström (Grubba) #undef NTDDI_VERSION
efd1802009-05-28Henrik Grubbström (Grubba) #define NTDDI_VERSION 0x05000000
500f8e2004-11-17Henrik Grubbström (Grubba) #endif #endif /* __NT__ */ #ifdef __amigaos__ #define __USE_NETINET_IN_H #endif #ifndef __BUILTIN_VA_ARG_INCR #define __BUILTIN_VA_ARG_INCR 1 #endif /* !__BUILTIN_VA_ARG_INCR */ #ifdef HAVE_WINDOWS_H #include <windows.h> #undef HAVE_WINDOWS_H #endif
3152b42004-11-20Mattias Wingstedt /* Necessary to find sys/socket.h on MacOS X 10.3 */ #if HAVE_SYS_TYPES_H # include <sys/types.h>
fc7d612005-11-16Henrik Grubbström (Grubba) #endif /* Necessary to find ws2tcpip.h on WIN32. */ #ifdef HAVE_WINSOCK2_H # include <winsock2.h>
3152b42004-11-20Mattias Wingstedt #endif
d0d7962005-12-02Henrik Grubbström (Grubba) /* Necessary to find sys/user.h on OpenBSD */ #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif
500f8e2004-11-17Henrik Grubbström (Grubba) ])
8ad6e72004-03-09Henrik Grubbström (Grubba) 
91e1682004-08-31Henrik Grubbström (Grubba) # Setjmp. # # POSIX defines sigsetjmp(). # BSD defines both _setjmp() and setjmp(), where setjmp() # saves the signal mask. # SVID explicitly defines setjmp() not to save the signal mask. AC_CHECK_FUNCS(sigsetjmp setjmp _setjmp siglongjmp longjmp _longjmp)
8ad6e72004-03-09Henrik Grubbström (Grubba) # Make it possible to disable use of /dev/poll. if test "x$with_devpoll" = "xno"; then :; else
8939372004-04-03Henrik Grubbström (Grubba)  AC_CHECK_HEADERS(sys/devpoll.h sys/event.h sys/epoll.h)
6f6f352004-04-04Henrik Grubbström (Grubba)  AC_CHECK_FUNCS(kqueue)
0ce67d2012-02-15Bill Welliver  AC_CHECK_FRAMEWORK(CoreServices, CFRunLoopRunInMode) AC_CHECK_FUNCS(CFRunLoopRunInMode)
8939372004-04-03Henrik Grubbström (Grubba)  AC_MSG_CHECKING(for poll device) AC_CACHE_VAL(pike_cv_device_devpoll, [ pike_cv_poll_device="no" for device in /dev/poll /dev/epoll; do if test -w "$device"; then pike_cv_poll_device="$device" break fi done ]) AC_MSG_RESULT($pike_cv_poll_device) if test "x$pike_cv_poll_device" = "xno"; then :; else AC_DEFINE_UNQUOTED(PIKE_POLL_DEVICE, "$pike_cv_poll_device")
4b420b2004-03-10Henrik Grubbström (Grubba)  fi
12a1892006-12-15Henrik Grubbström (Grubba) 
5b8b2f2007-05-19Henrik Grubbström (Grubba)  if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then
12a1892006-12-15Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if epoll is available) AC_CACHE_VAL(pike_cv_epoll_works, [ if test "x$pike_cv_poll_device" = "xno"; then AC_TRY_RUN([ #ifdef HAVE_ERRNO_H #include <errno.h> #endif #include <sys/epoll.h> #ifdef __stub_epoll_create /* We have a libc without the wrappers for epoll support. */ #ifdef HAVE_SYSCALL_H #include <syscall.h> #elif defined(HAVE_SYS_SYSCALL_H) #include <sys/syscall.h> #endif /* HAVE_SYSCALL_H || HAVE_SYS_SYSCALL_H */ #ifndef __NR_epoll_create /* Our libc does not even know the syscall numbers for the epoll syscalls. */ #ifdef __i386__ #define __NR_epoll_create 254 #elif defined(__ia64__) #define __NR_epoll_create 1243 #elif defined(__x86_64__) #define __NR_epoll_create 214 #else /* cpu types */ #error Syscall numbers for epoll_create et al not known on this architecture. #endif /* cpu types */ #endif /* !defined(__NR_epoll_create) */ #if defined(_syscall1) && defined(_syscall4) _syscall1(int, epoll_create, int, size); #undef __stub_epoll_create #else /* !_syscall1 || !_syscall4 */ #error Missing macros for generation of syscall wrappers. #endif /* _syscall1 && _syscall4 */ #endif /* __stub_epoll_{create, ctl, wait} */ int main(int argc, char **argv) { int fd; do {
5b8b2f2007-05-19Henrik Grubbström (Grubba)  fd = epoll_create(32);
12a1892006-12-15Henrik Grubbström (Grubba)  } while ((fd < 0) && (errno == EINTR)); return fd < 0; } ], [ pike_cv_epoll_works=yes ], [ pike_cv_epoll_works=no ], [ pike_cv_epoll_works=unknown ]) else pike_cv_epoll_works=yes fi ]) AC_MSG_RESULT($pike_cv_epoll_works) if test "x$pike_cv_epoll_works" = "xyes"; then
c38af32006-12-15Henrik Grubbström (Grubba)  AC_DEFINE(WITH_EPOLL)
12a1892006-12-15Henrik Grubbström (Grubba)  fi fi
8ad6e72004-03-09Henrik Grubbström (Grubba) fi
5267b71995-08-09Fredrik Hübinette (Hubbe) 
7cccc52000-12-27Mirar (Pontus Hagland) # some Linux systems have a broken resource.h that compiles anyway /Mirar
c5cbce2000-12-27Mirar (Pontus Hagland) AC_MSG_CHECKING([for sys/resource.h])
4492cc2000-12-28Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_sys_resource_h, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */
b5fac72000-12-28Henrik Grubbström (Grubba) #ifdef HAVE_TIME_H #include <time.h> #endif /* HAVE_TIME_H */ #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif /* HAVE_SYS_TIME_H */
4492cc2000-12-28Henrik Grubbström (Grubba)  #include <sys/resource.h> ],[], [pike_cv_sys_resource_h=yes], [pike_cv_sys_resource_h=no]) ])
c5cbce2000-12-27Mirar (Pontus Hagland) if test "x$pike_cv_sys_resource_h" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SYS_RESOURCE_H) else AC_MSG_RESULT(no) fi
7cccc52000-12-27Mirar (Pontus Hagland) 
75920f1997-12-28Fredrik Hübinette (Hubbe) AC_CHECK_SIZEOF(char *,4)
d0d62b2000-08-18Henrik Grubbström (Grubba) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(float, 4) AC_CHECK_SIZEOF(double, 8)
3c6eaa2002-04-12Martin Stjernholm AC_CHECK_SIZEOF(long double, 0)
d0d62b2000-08-18Henrik Grubbström (Grubba) AC_CHECK_SIZEOF(long, 4)
3c6eaa2002-04-12Martin Stjernholm AC_CHECK_SIZEOF(long long, 0) AC_CHECK_SIZEOF(__int64, 0)
318a412004-12-14Martin Stjernholm AC_CHECK_SIZEOF(time_t, 4)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
6f7df82000-06-29Henrik Grubbström (Grubba) AC_MY_CHECK_TYPE(size_t,unsigned long) AC_MY_CHECK_TYPE(ptrdiff_t,long)
1e577b1999-07-15Fredrik Hübinette (Hubbe) AC_MY_CHECK_TYPE(off_t,long) AC_MY_CHECK_TYPE(pid_t,int) AC_MY_CHECK_TYPE(uid_t,int) AC_MY_CHECK_TYPE(gid_t,int) AC_MY_CHECK_TYPE(time_t,INT32) AC_MY_CHECK_TYPE(pri_t, short)
da9b452003-03-28Martin Stjernholm AC_CHECK_SIZEOF(off_t, 4)
3ce0912003-10-10Henrik Grubbström (Grubba) AC_MSG_CHECKING(for sizeof anything) if test "$ac_cv_sizeof_long_double" != 0 -a \ "x$with_long_double_precision" = xyes ; then sizeof_float_type="$ac_cv_sizeof_long_double" elif test "x$with_double_precision" = xyes ; then sizeof_float_type="$ac_cv_sizeof_double" else sizeof_float_type="$ac_cv_sizeof_float" fi if test "$ac_cv_sizeof_long_long" != 0 -a \ "x$with_long_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof_long_long" elif test "$ac_cv_sizeof___int64" != 0 -a \ "x$with_long_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof___int64" elif test "x$with_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof_long" elif test "x$with_short_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof_short" elif test "x$with_unsigned_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof_long" elif test "$ac_cv_sizeof_long_long" != 0 -a \ "x$with_unsigned_long_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof_long_long" elif test "$ac_cv_sizeof___int64" != 0 -a \ "x$with_unsigned_long_long_int" = xyes ; then sizeof_int_type="$ac_cv_sizeof___int64" else sizeof_int_type="$ac_cv_sizeof_int" fi sizeof_anything="$ac_cv_sizeof_char_p" if test "$sizeof_float_type" -gt "$sizeof_anything"; then sizeof_anything="$sizeof_float_type" fi if test "$sizeof_int_type" -gt "$sizeof_anything"; then sizeof_anything="$sizeof_int_type" fi AC_MSG_RESULT($sizeof_anything) AC_MSG_CHECKING(for FLOAT_TYPE)
3c6eaa2002-04-12Martin Stjernholm if test "x$with_long_double_precision" = x -a \ "x$with_double_precision" = x ; then # Choose the longest available float that fits in a pointer.
3ce0912003-10-10Henrik Grubbström (Grubba)  if test "$ac_cv_sizeof_long_double" != 0 -a \ "$ac_cv_sizeof_long_double" -le "$sizeof_anything" ; then
3c6eaa2002-04-12Martin Stjernholm  with_long_double_precision=yes
3ce0912003-10-10Henrik Grubbström (Grubba)  elif test "$ac_cv_sizeof_double" -le "$sizeof_anything" ; then
3c6eaa2002-04-12Martin Stjernholm  with_double_precision=yes fi fi
3ce0912003-10-10Henrik Grubbström (Grubba) if test "$ac_cv_sizeof_long_double" != 0 -a \
3c6eaa2002-04-12Martin Stjernholm  "x$with_long_double_precision" = xyes ; then
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(long double)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(WITH_LONG_DOUBLE_PRECISION_SVALUE) AC_DEFINE(FLOAT_TYPE, long double) AC_DEFINE(SIZEOF_FLOAT_TYPE, SIZEOF_LONG_DOUBLE)
2f8ae62004-01-12Mirar (Pontus Hagland)  float_type="long double"
3ce0912003-10-10Henrik Grubbström (Grubba)  sizeof_float_type="$ac_cv_sizeof_long_double"
3c6eaa2002-04-12Martin Stjernholm elif test "x$with_double_precision" = xyes ; then
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(double)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(WITH_DOUBLE_PRECISION_SVALUE) AC_DEFINE(FLOAT_TYPE, double) AC_DEFINE(SIZEOF_FLOAT_TYPE, SIZEOF_DOUBLE)
2f8ae62004-01-12Mirar (Pontus Hagland)  float_type="double"
3ce0912003-10-10Henrik Grubbström (Grubba)  sizeof_float_type="$ac_cv_sizeof_double"
3c6eaa2002-04-12Martin Stjernholm else
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(float)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(FLOAT_TYPE, float) AC_DEFINE(SIZEOF_FLOAT_TYPE, SIZEOF_FLOAT)
2f8ae62004-01-12Mirar (Pontus Hagland)  float_type="float"
3ce0912003-10-10Henrik Grubbström (Grubba)  sizeof_float_type="$ac_cv_sizeof_float"
3c6eaa2002-04-12Martin Stjernholm fi
3ce0912003-10-10Henrik Grubbström (Grubba) AC_MSG_CHECKING(for INT_TYPE)
3c6eaa2002-04-12Martin Stjernholm if test "x$with_long_long_int" = x -a \ "x$with_long_int" = x -a \ "x$with_int_int" = x -a \ "x$with_short_int" = x ; then # Choose the longest available integer that fits in a pointer. # if test $ac_cv_sizeof_long_long != 0 -a \ # $ac_cv_sizeof_long_long -le $ac_cv_sizeof_char_p ; then # # This isn't a good idea on architectures where # # sizeof(long int) < sizeof(LONGEST). # # This is due to the gmp mpz api's using long int instead of # # mp_limb_{signed_}t. # #with_long_long_int=yes # : # fi
3ce0912003-10-10Henrik Grubbström (Grubba)  if test "$ac_cv_sizeof_long" -le "$sizeof_anything" ; then with_long_int=yes else with_int_int=yes fi
3c6eaa2002-04-12Martin Stjernholm  : fi
3ce0912003-10-10Henrik Grubbström (Grubba) if test "$ac_cv_sizeof_long_long" != 0 -a \
3c6eaa2002-04-12Martin Stjernholm  "x$with_long_long_int" = xyes ; then
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(long long)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(WITH_LONG_LONG_INT) AC_DEFINE(INT_TYPE, long long) AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_LONG_LONG)
2f8ae62004-01-12Mirar (Pontus Hagland)  int_type="long long" sizeof_int_type="$ac_cv_sizeof_long_long"
3ce0912003-10-10Henrik Grubbström (Grubba) elif test "$ac_cv_sizeof___int64" != 0 -a \ "x$with_long_long_int" = xyes ; then AC_MSG_RESULT(__int64) AC_DEFINE(WITH_LONG_LONG_INT) AC_DEFINE(INT_TYPE, __int64) AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF___INT64)
2f8ae62004-01-12Mirar (Pontus Hagland)  int_type="__int64" sizeof_int_type="$ac_cv_sizeof___int64"
3c6eaa2002-04-12Martin Stjernholm elif test "x$with_long_int" = xyes ; then
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(long)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(WITH_LONG_INT) AC_DEFINE(INT_TYPE, long) AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_LONG)
2f8ae62004-01-12Mirar (Pontus Hagland)  int_type="long" sizeof_int_type="$ac_cv_sizeof_long"
ac60002003-11-15Martin Stjernholm dnl elif test "x$with_short_int" = xyes ; then dnl AC_MSG_RESULT(short) dnl AC_DEFINE(WITH_SHORT_INT) dnl AC_DEFINE(INT_TYPE, short) dnl AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_SHORT) dnl elif test "x$with_unsigned_long_int" = xyes ; then dnl AC_MSG_RESULT(unsigned long) dnl AC_DEFINE(WITH_UNSIGNED_LONG_INT) dnl AC_DEFINE(INT_TYPE, unsigned long) dnl AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_LONG) dnl elif test "$ac_cv_sizeof_long_long" != 0 -a \ dnl "x$with_unsigned_long_long_int" = xyes ; then dnl AC_MSG_RESULT(unsigned long long) dnl AC_DEFINE(WITH_UNSIGNED_LONG_LONG_INT) dnl AC_DEFINE(INT_TYPE, unsigned long long) dnl AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_LONG_LONG) dnl elif test "$ac_cv_sizeof___int64" != 0 -a \ dnl "x$with_unsigned_long_long_int" = xyes ; then dnl AC_MSG_RESULT(unsigned __int64) dnl AC_DEFINE(WITH_UNSIGNED_LONG_LONG_INT) dnl AC_DEFINE(INT_TYPE, unsigned __int64) dnl AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF___INT64)
3c6eaa2002-04-12Martin Stjernholm else
3ce0912003-10-10Henrik Grubbström (Grubba)  AC_MSG_RESULT(int)
3c6eaa2002-04-12Martin Stjernholm  AC_DEFINE(WITH_INT_INT) AC_DEFINE(INT_TYPE, int) AC_DEFINE(SIZEOF_INT_TYPE, SIZEOF_INT)
2f8ae62004-01-12Mirar (Pontus Hagland)  int_type="int" sizeof_int_type="$ac_cv_sizeof_int"
3c6eaa2002-04-12Martin Stjernholm fi
6930181996-02-25Fredrik Hübinette (Hubbe) AC_TYPE_SIGNAL
5267b71995-08-09Fredrik Hübinette (Hubbe) 
dcad551996-08-03Fredrik Hübinette (Hubbe) dnl AC_CHECK_LIB(PW, alloca)
b04d5f1996-07-08Fredrik Hübinette (Hubbe) 
6accea2003-01-04Xavier Beaudouin dnl Checking if poll() call is in libpoll (in general in Darwin or BSD/OS) AC_CHECK_LIB(poll, poll)
5c8e891995-10-29Fredrik Hübinette (Hubbe) AC_CHECK_LIB(m, floor)
dc5da71997-11-03Henrik Grubbström (Grubba)  AC_CHECK_LIB(socket, socket)
a12f271998-01-10Fredrik Hübinette (Hubbe) 
08af092000-04-12Marcus Comstedt if test x"$pike_cv_sys_os" = xWindows_NT ; then
d87ab42000-08-17Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if we should use the 64 bit API) AC_CACHE_VAL(pike_cv_sys_win64, [
21ee4b2003-12-16Marek Habersack  AC_EGREP_CPP(oui, [
d87ab42000-08-17Henrik Grubbström (Grubba) #if defined(_WIN64) || defined(__WIN64__)
21ee4b2003-12-16Marek Habersack  oui
d87ab42000-08-17Henrik Grubbström (Grubba) #else no #endif ], [ pike_cv_sys_win64=yes ], [ pike_cv_sys_win64=no ]) ]) if test "x$pike_cv_sys_win64" = "xyes"; then AC_MSG_RESULT(yes)
e718852000-08-18Henrik Grubbström (Grubba)  # Apparently the libraries are stilled named *32... # LIBS="-lkernel64 -lws2_64 -ladvapi64 $LIBS"
bcb5382001-08-23Boyd Lynn Gerber  LIBS="-lshell32 -lkernel32 -lws2_32 -ladvapi32 $LIBS"
d87ab42000-08-17Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no)
bcb5382001-08-23Boyd Lynn Gerber  LIBS="-lshell32 -lkernel32 -lws2_32 -ladvapi32 $LIBS"
d87ab42000-08-17Henrik Grubbström (Grubba)  fi
a12f271998-01-10Fredrik Hübinette (Hubbe) fi
dc5da71997-11-03Henrik Grubbström (Grubba) AC_CHECK_LIB(nsl, gethostbyname)
dac6371999-10-17Mirar (Pontus Hagland) AC_CHECK_LIB(rt, nanosleep)
dc5da71997-11-03Henrik Grubbström (Grubba) 
ca74dd1996-10-08Fredrik Hübinette (Hubbe) AC_CHECK_LIB(dl, dlopen)
4238391998-07-09Francesco Chemolli AC_CHECK_LIB(dld, shl_load)
59bc1b1997-01-22Bernhard Fastenrath AC_CHECK_LIB(dld, dld_link)
07513e1996-10-04Fredrik Hübinette (Hubbe) 
d98e0d1997-01-15Fredrik Hübinette (Hubbe)  if test "${pike_cv_sys_os}" = "Linux"; then
7b39411997-02-06Fredrik Hübinette (Hubbe)  if test "${ac_cv_lib_m_floor}" = "no"; then
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN(I will compensate for this by adding -lc -lm.)
d98e0d1997-01-15Fredrik Hübinette (Hubbe)  LIBS="${LIBS} -lc -lm" fi
f8663d1997-09-16Henrik Grubbström (Grubba)  if test "$ac_cv_header_sched_h" = "yes"; then AC_MSG_CHECKING(if sched.h has a typo) AC_CACHE_VAL(pike_cv_broken_sched_h, [ AC_TRY_COMPILE([ #include <sched.h> ],[ ],[ pike_cv_broken_shed_h=no ], [ OLDCPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_P=__P" AC_TRY_COMPILE([ #include <sched.h> ],[ ],[ pike_cv_broken_sched_h=yes ],[ pike_cv_broken_sched_h="very broken" ]) CPPFLAGS="$OLDCPPFLAGS" ]) ]) AC_MSG_RESULT($pike_cv_broken_sched_h) if test "$pike_cv_broken_sched_h" = "yes"; then
0a86982003-11-07Martin Stjernholm  PIKE_MSG_WARN(Applying workaround for sched.h typo.)
f8663d1997-09-16Henrik Grubbström (Grubba)  CPPFLAGS="$CPPFLAGS -D_P=__P" fi fi
d10ed51995-11-15Fredrik Hübinette (Hubbe) fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
8f9f3d2007-12-26Henrik Grubbström (Grubba) PIKE_AC_DEBUG
e45ef22001-02-14Mirar (Pontus Hagland) using_threads="no (forced)"
eec1371996-11-02Fredrik Hübinette (Hubbe) if test x$with_threads = xyes ; then
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="no (no known threads found)"
50b0391997-01-27Henrik Grubbström (Grubba)  OLDLIBS="$LIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  OLDCFLAGS="$CFLAGS"
07513e1996-10-04Fredrik Hübinette (Hubbe) 
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) if test "x$pike_cv_sys_os" = "xWindows_NT" ; then # NT has threads... AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_UNIX_THREADS) AC_DEFINE(NT_THREADS)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (nt)"
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) 
40fb6d2003-01-05Henrik Grubbström (Grubba)  pike_cv_thread_t_type=integer
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) else
9ab4461998-11-06Honza Petrous  # Test for POSIX threads
6c74552004-03-15Henrik Grubbström (Grubba)  if test "x$with_thread_library" != "xno"; then AC_MSG_CHECKING([for thread library]) AC_MSG_RESULT([$with_thread_library (--with-thread-library)]) LIBS="${OLDLIBS} $with_thread_library" else
50b0391997-01-27Henrik Grubbström (Grubba)  case "x$pike_cv_sys_os" in
3724261999-08-25Henrik Grubbström (Grubba)  xOSF1*)
d4ac012000-03-29Fredrik Hübinette (Hubbe) # LIBS="${OLDLIBS} -lpthread -lmach -lexc -lc" LIBS="${OLDLIBS} -lpthread -lmach -lexc"
9ab4461998-11-06Honza Petrous  ;; xBSD/OS*) LIBS="${OLDLIBS}" ;;
bcb5382001-08-23Boyd Lynn Gerber  xUnixWare*|xOpenUNIX*)
9022241998-08-27Honza Petrous  if test "$GCC" = yes ; then
0d51112000-04-10Boyd Lynn Gerber  CFLAGS="${CFLAGS} -pthread"
9022241998-08-27Honza Petrous  else
9ab4461998-11-06Honza Petrous  CFLAGS="${CFLAGS} -Kthread"
9022241998-08-27Honza Petrous  fi
50b0391997-01-27Henrik Grubbström (Grubba)  ;;
0809711998-02-27Marcus Comstedt 
46d6302002-05-27Henrik Grubbström (Grubba)  xOpenBSD*) CFLAGS="${CFLAGS} -pthread" LDFLAGS="${LDFLAGS} -pthread" ;;
9ab4461998-11-06Honza Petrous  xFreeBSD*) # Threads on FreeBSD earlier than 1998-06-07 are broken. LIBS="${OLDLIBS}" AC_MSG_CHECKING(if this version of FreeBSD may have working threads) AC_CACHE_VAL(pike_cv_freebsd_threads, [ AC_TRY_RUN([
54905d1998-06-16Henrik Grubbström (Grubba) #include <osreldate.h> int main(int argc, char **argv) {
fc84cc1998-12-03Henrik Grubbström (Grubba)  /* FreeBSD before 228000 and 300000 - 300005 have broken threads.
8e48421998-06-17Henrik Grubbström (Grubba)  */
fc84cc1998-12-03Henrik Grubbström (Grubba)  if (__FreeBSD_version < 228000)
54905d1998-06-16Henrik Grubbström (Grubba)  return(1); if (__FreeBSD_version < 300000) return(0);
fc84cc1998-12-03Henrik Grubbström (Grubba)  if (__FreeBSD_version < 300006)
54905d1998-06-16Henrik Grubbström (Grubba)  return(1); return(0); }
9ab4461998-11-06Honza Petrous  ], pike_cv_freebsd_threads=yes, pike_cv_freebsd_threads=no, pike_cv_freebsd_threads=yes) ]) if test "x$pike_cv_freebsd_threads" = "xno"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes)
f369dd2000-03-26Fredrik Hübinette (Hubbe) 
46f0f02007-12-13Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if this version of FreeBSD might require use of pthread-config) AC_CACHE_VAL(pike_cv_freebsd_pthread_config, [ AC_TRY_RUN([ #include <osreldate.h> int main(int argc, char **argv) { /* pthread-config is a remnant of the GNU pth library, and should not * be used on more recent versions of FreeBSD. */ if (__FreeBSD_version < 500000) return(0); return(1); } ], pike_cv_freebsd_pthread_config=yes, pike_cv_freebsd_pthread_config=no, pike_cv_freebsd_pthread_config=yes) ]) if test "x$pike_cv_freebsd_pthread_config" = "xyes"; then AC_MSG_RESULT(yes) AC_PATH_PROG(PTHREAD_CONFIG,${ac_tool_prefix}pthread-config,no) else AC_MSG_RESULT(no) PTHREAD_CONFIG=no fi
95013b2000-03-27Dan Nelson  if test "x$PTHREAD_CONFIG" = xno ; then
46f0f02007-12-13Henrik Grubbström (Grubba)  # -pthread should work with all versions of FreeBSD, # but some custom compilers (ie tcc) may not support it. AC_SYS_COMPILER_FLAG(-pthread, pthread, CFLAGS, [ # FIXME: Might want to look at OS version: # 500000 <= version < 500016: -pthread # 500016 <= version < 502102: -lc_r # 502102 <= version : -lpthread # LIBS="$LIBS -lc_r" LDFLAGS="${LDFLAGS-} -lc_r" ], [ LDFLAGS="${LDFLAGS-} -pthread" ])
f369dd2000-03-26Fredrik Hübinette (Hubbe)  else
6c74552004-03-15Henrik Grubbström (Grubba)  CFLAGS="$CFLAGS `${PTHREAD_CONFIG} --cflags`" LIBS="${OLDLIBS} `${PTHREAD_CONFIG} --libs`" LDFLAGS="$CFLAGS `${PTHREAD_CONFIG} --ldflags`"
f369dd2000-03-26Fredrik Hübinette (Hubbe)  fi
9ab4461998-11-06Honza Petrous  fi ;;
c371d41998-06-07Simon Coggins 
9ab4461998-11-06Honza Petrous  xAIX*)
ea63a72000-12-19Henrik Grubbström (Grubba)  if test "`uname -v`" -gt 4 ; then LIBS="${OLDLIBS} -lpthread" else LIBS="${OLDLIBS} -lpthreads -lc_r" fi
9ab4461998-11-06Honza Petrous  ;;
b1335c1998-07-03Francesco Chemolli 
73ea7f2000-07-09Henrik Grubbström (Grubba)  xSolaris*) # Some versions of Solaris 2.5.1 require linking with -lthread too. LIBS="${OLDLIBS} -lpthread -lthread" ;;
66a3742000-10-02Jonas Wallden  xDarwin*) LIBS="${OLDLIBS}" ;;
9ab4461998-11-06Honza Petrous  *) LIBS="${OLDLIBS} -lpthread" ;; esac
6c74552004-03-15Henrik Grubbström (Grubba)  fi
50b0391997-01-27Henrik Grubbström (Grubba) 
8f9f3d2007-12-26Henrik Grubbström (Grubba)  PIKE_AC_DEBUG
6a04ad2009-01-26Henrik Grubbström (Grubba)  AC_CHECK_FUNCS(pthread_init pthread_mutexattr_init pthread_kill \
5eb1ac2009-04-20Jonas Wallden  pthread_cond_reltimedwait_np pthread_mach_thread_np)
8b14071997-10-03Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(posix threads)
b27ea31997-10-25Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_CACHE_VAL(pike_cv_posix_threads, [ AC_TRY_RUN([
aeafe11997-01-26Per Hedbor #define _REENTRANT #define _THREAD_SAFE
f147421997-03-12Fredrik Hübinette (Hubbe) #define _MIT_POSIX_THREADS 1
aeafe11997-01-26Per Hedbor 
07513e1996-10-04Fredrik Hübinette (Hubbe) #include <pthread.h>
eea7c21997-09-11Henrik Grubbström (Grubba) void *foo(void *bar) { pthread_exit(0); return 0; }
158e9f1997-03-10Henrik Grubbström (Grubba) pthread_mutexattr_t attr;
07513e1996-10-04Fredrik Hübinette (Hubbe) pthread_mutex_t tmp; pthread_t gazonk; int main() { void *sune;
8b14071997-10-03Henrik Grubbström (Grubba) #ifdef HAVE_PTHREAD_INIT pthread_init(); #endif /* HAVE_PTHREAD_INIT */
0809711998-02-27Marcus Comstedt #ifdef HAVE_PTHREAD_MUTEXATTR_INIT
158e9f1997-03-10Henrik Grubbström (Grubba)  pthread_mutexattr_init(&attr);
0809711998-02-27Marcus Comstedt #else memset(&attr, 0, sizeof(attr));
f601ac1998-03-06Francesco Chemolli #endif /* HAVE_PTHREAD_MUTEXATTR_INIT */
158e9f1997-03-10Henrik Grubbström (Grubba)  pthread_mutex_init(&tmp, &attr); pthread_mutex_lock(&tmp);
07513e1996-10-04Fredrik Hübinette (Hubbe)  pthread_create(&gazonk,0,foo,0); pthread_join(gazonk,&sune); exit(0); }
6b15b72001-01-19Henrik Grubbström (Grubba)  ], [ pike_cv_posix_threads=yes ], [ pike_cv_posix_threads=no ], [ AC_TRY_LINK([ #define _REENTRANT #define _THREAD_SAFE #define _MIT_POSIX_THREADS 1 #include <pthread.h> void *foo(void *bar) { pthread_exit(0); return 0; } pthread_mutexattr_t attr; pthread_mutex_t tmp; pthread_t gazonk; ], [ { void *sune; #ifdef HAVE_PTHREAD_INIT pthread_init(); #endif /* HAVE_PTHREAD_INIT */ #ifdef HAVE_PTHREAD_MUTEXATTR_INIT pthread_mutexattr_init(&attr); #else memset(&attr, 0, sizeof(attr)); #endif /* HAVE_PTHREAD_MUTEXATTR_INIT */ pthread_mutex_init(&tmp, &attr); pthread_mutex_lock(&tmp); pthread_create(&gazonk,0,foo,0); pthread_join(gazonk,&sune); exit(0); } ], [ pike_cv_posix_threads=yes ], [ pike_cv_posix_threads=no ]) ])
9ab4461998-11-06Honza Petrous  ])
07513e1996-10-04Fredrik Hübinette (Hubbe) 
9ab4461998-11-06Honza Petrous  if test $pike_cv_posix_threads = yes ; then AC_MSG_RESULT(yes) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_MIT_POSIX_THREADS,1)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (posix)"
9ab4461998-11-06Honza Petrous 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_attr_setstacksize) AC_CACHE_VAL(pike_cv_have_pthread_attr_setstacksize,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_attr_t*x) { pthread_attr_setstacksize(x, 1024*1024); } ],[],[ pike_cv_have_pthread_attr_setstacksize=yes ],[ pike_cv_have_pthread_attr_setstacksize=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_attr_setstacksize) if test x$pike_cv_have_pthread_attr_setstacksize = xyes ; then AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE) else : fi
8d4ce81997-04-10Fredrik Hübinette (Hubbe) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ########################################################################## AC_MSG_CHECKING(for pthread_atfork) AC_CACHE_VAL(pike_cv_have_pthread_atfork,[ AC_TRY_LINK([#include <pthread.h> void foo(void) { pthread_atfork(0,0,0); } ],[],[ pike_cv_have_pthread_atfork=yes ],[ pike_cv_have_pthread_atfork=no ]) ])
d201871999-08-30Fredrik Hübinette (Hubbe)  if test x$pike_cv_have_pthread_atfork = xyes ; then
71ac9e1999-08-29Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PTHREAD_ATFORK) else AC_MSG_RESULT([no - FreeBSD?]) fi ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_yield) AC_CACHE_VAL(pike_cv_have_pthread_yield,[ AC_TRY_LINK([#include <pthread.h> void foo(void) { pthread_yield(); } ],[],[ pike_cv_have_pthread_yield=yes ],[ pike_cv_have_pthread_yield=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_yield) if test x$pike_cv_have_pthread_yield = xyes ; then AC_DEFINE(HAVE_PTHREAD_YIELD) else : fi
8d4ce81997-04-10Fredrik Hübinette (Hubbe) 
32ccf92003-11-25Jonas Wallden ########################################################################## AC_MSG_CHECKING(for pthread_yield_np) AC_CACHE_VAL(pike_cv_have_pthread_yield_np,[ AC_TRY_LINK([#include <pthread.h> void foo(void) { pthread_yield_np(); } ],[],[ pike_cv_have_pthread_yield_np=yes ],[ pike_cv_have_pthread_yield_np=no ]) ]) AC_MSG_RESULT($pike_cv_have_pthread_yield_np) if test x$pike_cv_have_pthread_yield_np = xyes ; then AC_DEFINE(HAVE_PTHREAD_YIELD_NP) else : fi
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_cond_init) AC_CACHE_VAL(pike_cv_have_pthread_cond_init,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t*x, pthread_condattr_t*y) { pthread_cond_init(x,y); } ],[],[ pike_cv_have_pthread_cond_init=yes ],[ pike_cv_have_pthread_cond_init=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_cond_init) if test x$pike_cv_have_pthread_cond_init = xyes ; then AC_DEFINE(HAVE_PTHREAD_COND_INIT) else : fi
0a40e91997-04-10Fredrik Hübinette (Hubbe) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(if pthread_condattr_default is defined) AC_CACHE_VAL(pike_cv_have_pthread_condattr_default,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t *bar) { pthread_cond_init(bar, pthread_condattr_default); } ],[],[ pike_cv_have_pthread_condattr_default=yes ],[ pike_cv_have_pthread_condattr_default=no
5377b91997-02-01Henrik Grubbström (Grubba)  ])
9ab4461998-11-06Honza Petrous  ])
5377b91997-02-01Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_RESULT($pike_cv_have_pthread_condattr_default)
5377b91997-02-01Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  if test x$pike_cv_have_pthread_condattr_default = xyes ; then AC_DEFINE(HAVE_PTHREAD_CONDATTR_DEFAULT) else : fi
afbcda1998-08-31Henrik Grubbström (Grubba) 
752e101999-04-30Fredrik Hübinette (Hubbe) 
9ab4461998-11-06Honza Petrous  # # FreeBSD doesn't like the &, while AIX requires it... # AC_MSG_CHECKING(if pthread_condattr_default is needs an & (AIX)) AC_CACHE_VAL(pike_cv_have_pthread_condattr_default_aix,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t *bar) { pthread_cond_init(bar, &pthread_condattr_default); } ],[],[ pike_cv_have_pthread_condattr_default_aix=yes ],[ pike_cv_have_pthread_condattr_default_aix=no
afbcda1998-08-31Henrik Grubbström (Grubba)  ])
9ab4461998-11-06Honza Petrous  ])
afbcda1998-08-31Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_RESULT($pike_cv_have_pthread_condattr_default_aix)
afbcda1998-08-31Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  if test x$pike_cv_have_pthread_condattr_default_aix = xyes ; then AC_DEFINE(HAVE_PTHREAD_CONDATTR_DEFAULT_AIX) else : fi
afbcda1998-08-31Henrik Grubbström (Grubba) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
752e101999-04-30Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(for __pthread_initial_thread_bos) AC_CACHE_VAL(pike_cv_have_pthread_initial_thread_bos,[ AC_TRY_LINK([#include <pthread.h> char *foo(void) { extern char *__pthread_initial_thread_bos; return __pthread_initial_thread_bos; } ],[],[ pike_cv_have_pthread_initial_thread_bos=yes ],[ pike_cv_have_pthread_initial_thread_bos=no ]) ]) AC_MSG_RESULT($pike_cv_have_pthread_initial_thread_bos) if test x$pike_cv_have_pthread_initial_thread_bos = xyes ; then AC_DEFINE(HAVE_PTHREAD_INITIAL_THREAD_BOS) else : fi
d0cb8d2000-05-20Henrik Grubbström (Grubba) ########################################################################## # On Linux the threads don't inherit euid & egid from the main thread. # FIXME: Add a real test here!
d4d23e2005-11-30Marek Habersack  case "$pike_cv_sys_os" in Linux* | *kFreeBSD*) AC_DEFINE(HAVE_BROKEN_LINUX_THREAD_EUID) ;; esac
752e101999-04-30Fredrik Hübinette (Hubbe) 
40fb6d2003-01-05Henrik Grubbström (Grubba)  AC_MSG_CHECKING([behaviour of the pthread_t type]) AC_CACHE_VAL(pike_cv_thread_t_type, [ AC_TRY_COMPILE([ #include <sys/types.h> #ifdef STDC_HEADERS #include <stdlib.h> #include <stddef.h> #endif #include <pthread.h> extern pthread_t bar; ], [ void *foo = (void *)(ptrdiff_t)bar; return 0; ], [ pike_cv_thread_t_type=integer ], [ pike_cv_thread_t_type=pointer ]) ]) AC_MSG_RESULT($pike_cv_thread_t_type)
9ab4461998-11-06Honza Petrous  else AC_MSG_RESULT(no) LIBS="$OLDLIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  CFLAGS="$OLDCFLAGS"
9ab4461998-11-06Honza Petrous 
93a5212007-12-15Henrik Grubbström (Grubba)  echo "POSIX threads not working." >&AC_FD_CC ulimit -a >&AC_FD_CC 2>&AC_FD_CC echo >&AC_FD_CC
9ab4461998-11-06Honza Petrous  # No POSIX threads. # Try UNIX threads instead AC_MSG_CHECKING(unix threads) case "x$pike_cv_sys_os" in
bcb5382001-08-23Boyd Lynn Gerber  xUnixWare*|xOpenUNIX*)
9ab4461998-11-06Honza Petrous  if test "$GCC" = yes ; then
0d51112000-04-10Boyd Lynn Gerber  CFLAGS="${CFLAGS} -pthread"
9ab4461998-11-06Honza Petrous  else CFLAGS="${CFLAGS} -Kthread" fi CFLAGS="${CFLAGS} -D_UNIXWARE_THREADS_" ;; *) LIBS="${LIBS} -lthread" ;; esac AC_CACHE_VAL(pike_cv_unix_threads, [ AC_TRY_RUN([ #define _REENTRANT #define _THREAD_SAFE #define _MIT_POSIX_THREADS 1 #include <thread.h> #ifdef _UNIXWARE_THREADS_ #include <synch.h> #endif void *foo(void *bar) { thr_exit(0); return 0; } mutex_t tmp; thread_t gazonk; int main() { void *sune; mutex_lock(& tmp); thr_create(0,0,foo,0,0,&gazonk); thr_join(gazonk,0,&sune); exit(0); } ],pike_cv_unix_threads=yes,pike_cv_unix_threads=no,pike_cv_unix_threads=no) ]) if test x$pike_cv_unix_threads = xyes ; then AC_MSG_RESULT(yes) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_UNIX_THREADS)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (unix)"
50b0391997-01-27Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no) LIBS="$OLDLIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  CFLAGS="$OLDCFLAGS"
07513e1996-10-04Fredrik Hübinette (Hubbe) 
50b0391997-01-27Henrik Grubbström (Grubba)  # Now we've sunk really low -- test for proprietary threads # SGI old-style shared group processes
43032e1997-10-09Henrik Grubbström (Grubba)  # AC_CHECK_FUNCS(sproc oserror) # # AC_MSG_CHECKING(Fallback to sproc) # # if test x$ac_cv_func_sproc$ac_cv_func_oserror = xyesyes; then # AC_MSG_RESULT(yes) # AC_DEFINE(_REENTRANT) # AC_DEFINE(_THREAD_SAFE) # AC_DEFINE(_SGI_SPROC_THREADS) # AC_DEFINE(_SGI_MP_SOURCE)
e45ef22001-02-14Mirar (Pontus Hagland)  # using_threads="yes (sgi)"
43032e1997-10-09Henrik Grubbström (Grubba)  # else # AC_MSG_RESULT(no) # : # fi
9ab4461998-11-06Honza Petrous  fi # UNIX threads
40fb6d2003-01-05Henrik Grubbström (Grubba)  pike_cv_thread_t_type=integer
9ab4461998-11-06Honza Petrous  fi # POSIX threads
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) fi # NT
50b0391997-01-27Henrik Grubbström (Grubba) else # Without threads
40fb6d2003-01-05Henrik Grubbström (Grubba)  pike_cv_thread_t_type=integer
50b0391997-01-27Henrik Grubbström (Grubba)  :
eec1371996-11-02Fredrik Hübinette (Hubbe) fi
40fb6d2003-01-05Henrik Grubbström (Grubba) if test "x$pike_cv_thread_t_type" = "xpointer"; then AC_DEFINE(PIKE_THREAD_T_IS_POINTER) fi
91f3b02004-09-26Marcus Comstedt if test "x$pike_cv_sys_os" = "xWindows_NT" -o "x$pike_cv_sys_os" = "xAmigaOS"; then :; else
98b1e02007-04-25Martin Stjernholm  AC_MSG_CHECKING(initial stack limit)
6c74552004-03-15Henrik Grubbström (Grubba)  AC_CACHE_VAL(pike_cv_initial_stack_size,[
0685582007-06-09Martin Stjernholm  old_core_limit=`ulimit -c` ulimit -Sc 0
57c0cf2008-04-26Henrik Grubbström (Grubba)  rm -f confdefs.out.2 >/dev/null 2>&1 || :
6c74552004-03-15Henrik Grubbström (Grubba)  AC_TRY_RUN([ #include <stdio.h> static int depth=0; FILE *f; void save_depth(void); void use_stack(void *page) { void *X[8190]; X[0]=page; save_depth(); use_stack(&X); } void save_depth(void) { depth+=sizeof(void *)*8192; fprintf(f,"%d\n",depth); fflush(f); if(depth>0x80000000) exit(0); } int main(int argc) { f=fopen("confdefs.out.2", "w"); /* weird filename to circumvent configure weirdness */ save_depth(); use_stack(0); } ], [pike_cv_initial_stack_size=''], [
57c0cf2008-04-26Henrik Grubbström (Grubba)  pike_cv_initial_stack_size=32768
6c74552004-03-15Henrik Grubbström (Grubba)  while read x; do
57c0cf2008-04-26Henrik Grubbström (Grubba)  # Some paranoia in case fprintf outputs junk at and of stack...
65c57d2008-04-26Henrik Grubbström (Grubba)  if test "$pike_cv_initial_stack_size" -lt "$x"; then
57c0cf2008-04-26Henrik Grubbström (Grubba)  pike_cv_initial_stack_size="$x"; fi
6c74552004-03-15Henrik Grubbström (Grubba)  done <confdefs.out.2
e920982004-09-26Marcus Comstedt  ], [pike_cv_initial_stack_size=''])
0685582007-06-09Martin Stjernholm  ulimit -c $old_core_limit unset old_core_limit
b46d672005-11-22Henrik Grubbström (Grubba)  rm -f confdefs.out.2 >/dev/null 2>/dev/null || :
6c74552004-03-15Henrik Grubbström (Grubba)  ]) if test x$pike_cv_initial_stack_size = x ; then AC_MSG_RESULT(unlimited) else AC_MSG_RESULT($pike_cv_initial_stack_size) AC_DEFINE_UNQUOTED(Pike_INITIAL_STACK_SIZE,$pike_cv_initial_stack_size) fi fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) 
01185d2003-04-01Martin Stjernholm PIKE_CHECK_CONSTANTS(mutex error check flag, PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_ERRORCHECK_NP, [ #ifdef HAVE_PTHREAD_H #include <pthread.h> #elif defined (HAVE_THREAD_H) #include <thread.h> #endif ], PIKE_MUTEX_ERRORCHECK) ######################################################################## PIKE_CHECK_CONSTANTS(recursive mutex flag, PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP, [ #ifdef HAVE_PTHREAD_H #include <pthread.h> #elif defined (HAVE_THREAD_H) #include <thread.h> #endif ], PIKE_MUTEX_RECURSIVE) ########################################################################
a888ce2000-12-23Henrik Grubbström (Grubba) # NOTE: The following test is hardcoded to fail when crosscompiling # It also clobbers $LIBOBJS.
64356c2003-12-19Dan Nelson 
012fe72003-12-04Henrik Grubbström (Grubba) ifdef([m4_pattern_allow], [
64356c2003-12-19Dan Nelson  # Handle the latest autoconf incompatibility...
012fe72003-12-04Henrik Grubbström (Grubba)  m4_pattern_allow(LIBOBJS) ])
a888ce2000-12-23Henrik Grubbström (Grubba) OLD_LIBOBJS="${LIBOBJS}"
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_FUNC_MEMCMP
92c58b2005-08-28Jonas Wallden # Old Autoconf set memcmp_clean while newer define memcmp_working if test "x$ac_cv_func_memcmp_clean" = "xyes" -o \ "x$ac_cv_func_memcmp_working" = "xyes"; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_MEMCMP) fi LIBOBJS="${OLD_LIBOBJS}"
a888ce2000-12-23Henrik Grubbström (Grubba) ########################################################################
dcad551996-08-03Fredrik Hübinette (Hubbe) AC_FUNC_MMAP
6930181996-02-25Fredrik Hübinette (Hubbe) 
5444d32005-05-31Henrik Grubbström (Grubba) if test "x$ac_cv_func_mmap_fixed_mapped" = "xyes"; then
569a8b2005-05-30Henrik Grubbström (Grubba)  # Mac OS X has an mmap that fails with ENODEV if we try # to use it for mexec_alloc et al.
672ebb2005-05-30Henrik Grubbström (Grubba)  # # NB: mmap with MAP_ANON does however work.
569a8b2005-05-30Henrik Grubbström (Grubba)  AC_MSG_CHECKING([if mmap can be used to allocate PROT_EXEC]) AC_CACHE_VAL(pike_cv_mmap_PROT_EXEC, [ AC_TRY_RUN([ #include <stdio.h> #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> #endif #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif #include <errno.h>
672ebb2005-05-30Henrik Grubbström (Grubba) #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) #define MAP_ANONYMOUS MAP_ANON #endif /* !MAP_ANONYMOUS && MAP_ANON */
569a8b2005-05-30Henrik Grubbström (Grubba)  int main(int argc, char **argv) { void *ptr;
672ebb2005-05-30Henrik Grubbström (Grubba)  int dev_zero = -1; #ifndef MAP_ANONYMOUS /* Neither MAP_ANONYMOUS nor MAP_ANON. * Map some /dev/zero. */ dev_zero = open("/dev/zero", O_RDONLY);
569a8b2005-05-30Henrik Grubbström (Grubba)  if (dev_zero < 0) { fprintf(stderr, "open(\"/dev/zero\", O_RDONLY) failed. errno: %d\n", errno); return 1; }
672ebb2005-05-30Henrik Grubbström (Grubba) #define MAP_ANONYMOUS 0 #endif /* !MAP_ANONYMOUS */
569a8b2005-05-30Henrik Grubbström (Grubba)  if ((ptr = mmap(NULL, 8192, PROT_EXEC|PROT_READ|PROT_WRITE,
672ebb2005-05-30Henrik Grubbström (Grubba)  MAP_PRIVATE|MAP_ANONYMOUS, dev_zero, 0)) == MAP_FAILED) {
569a8b2005-05-30Henrik Grubbström (Grubba)  fprintf(stderr, "mmap(NULL, 8192, PROT_EXEC|PROT_READ|PROT_WRITE,\n"
672ebb2005-05-30Henrik Grubbström (Grubba)  "MAP_PRIVATE|MAP_ANONYMOUS, %d, 0) failed. errno: %d\n",
569a8b2005-05-30Henrik Grubbström (Grubba)  dev_zero, errno); return 2; } return 0; } ], [ pike_cv_mmap_PROT_EXEC="yes" ], [ pike_cv_mmap_PROT_EXEC="no" ], [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> #endif #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif #include <errno.h>
672ebb2005-05-30Henrik Grubbström (Grubba)  #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) #define MAP_ANONYMOUS MAP_ANON #endif /* !MAP_ANONYMOUS && MAP_ANON */ #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) #define MAP_ANONYMOUS MAP_ANON #endif /* !MAP_ANONYMOUS && MAP_ANON */
569a8b2005-05-30Henrik Grubbström (Grubba)  ], [ void *ptr;
672ebb2005-05-30Henrik Grubbström (Grubba)  int dev_zero = -1; #ifndef MAP_ANONYMOUS /* Neither MAP_ANONYMOUS nor MAP_ANON. * Map some /dev/zero. */ dev_zero = open("/dev/zero", O_RDONLY);
569a8b2005-05-30Henrik Grubbström (Grubba)  if (dev_zero < 0) return 1;
672ebb2005-05-30Henrik Grubbström (Grubba) #define MAP_ANONYMOUS 0 #endif /* !MAP_ANONYMOUS */
569a8b2005-05-30Henrik Grubbström (Grubba)  if ((ptr = mmap(NULL, 8192, PROT_EXEC|PROT_READ|PROT_WRITE,
672ebb2005-05-30Henrik Grubbström (Grubba)  MAP_PRIVATE|MAP_ANONYMOUS, dev_zero, 0)) == MAP_FAILED) {
569a8b2005-05-30Henrik Grubbström (Grubba)  return 2; } return 0; ], [ pike_cv_mmap_PROT_EXEC="yes" ], [ pike_cv_mmap_PROT_EXEC="no" ]) ]) ]) AC_MSG_RESULT($pike_cv_mmap_PROT_EXEC) if test "x$pike_cv_mmap_PROT_EXEC" = "xyes"; then AC_DEFINE(MEXEC_USES_MMAP) fi fi
75920f1997-12-28Fredrik Hübinette (Hubbe) AC_CHECK_FUNCS( \
744f542003-01-21Henrik Grubbström (Grubba)  _alldiv \
54d96f2003-08-22Tomas Nilsson  _aullshr \
cb22561995-10-11Fredrik Hübinette (Hubbe)  _crypt \
063fe31998-03-10Per Hedbor  poll \
cb22561995-10-11Fredrik Hübinette (Hubbe)  bcopy \ bzero \ clock \
ce017d2006-04-24Henrik Grubbström (Grubba)  closefrom \
cb22561995-10-11Fredrik Hübinette (Hubbe)  crypt \ fchmod \
ce017d2006-04-24Henrik Grubbström (Grubba)  fdwalk \
9548a81997-05-07Per Hedbor  gethrtime \ gethrvtime \
cb22561995-10-11Fredrik Hübinette (Hubbe)  getenv \ getrlimit \ getrusage \
067bc11996-06-21Fredrik Hübinette (Hubbe)  gettimeofday \
cb22561995-10-11Fredrik Hübinette (Hubbe)  index \
aec4a72009-05-28Henrik Grubbström (Grubba)  inet_ntop \
dcad551996-08-03Fredrik Hübinette (Hubbe)  localtime \
fe91501998-07-26Peter J. Holzer  gmtime \
5a8cdd2006-06-20Martin Stjernholm  gmtime_r \
1bf4192006-07-02Martin Stjernholm  gmtime_s \
16e0492012-03-08Henrik Grubbström (Grubba)  mallinfo \
cb22561995-10-11Fredrik Hübinette (Hubbe)  memchr \
565c361997-01-27Fredrik Hübinette (Hubbe)  mktime \
5539c51998-06-08Henrik Grubbström (Grubba)  perror \
b143542003-02-28Henrik Grubbström (Grubba)  ptrace \
6cbfe42009-03-17Henrik Grubbström (Grubba)  recvmsg \
cb22561995-10-11Fredrik Hübinette (Hubbe)  rindex \
6cbfe42009-03-17Henrik Grubbström (Grubba)  sendmsg \
d9c7172001-03-23Henrik Grubbström (Grubba)  setbuf \
cb22561995-10-11Fredrik Hübinette (Hubbe)  setlocale \ setrlimit \
3605b81998-09-18Peter J. Holzer  setresuid \
d9c7172001-03-23Henrik Grubbström (Grubba)  setvbuf \
d467cc2007-05-17Henrik Grubbström (Grubba)  signal \
93b8081995-11-02Fredrik Hübinette (Hubbe)  sigaction \
5740881998-01-01Fredrik Hübinette (Hubbe)  sigblock \ sigprocmask \
93b8081995-11-02Fredrik Hübinette (Hubbe)  sigvec \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strcasecmp \
9b15e02000-12-22Fredrik Hübinette (Hubbe)  strnlen \ strncmp \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strchr \ strcspn \
2b25831997-01-31Fredrik Hübinette (Hubbe)  strerror \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strtod \ strtol \
5740881998-01-01Fredrik Hübinette (Hubbe)  time \
cb22561995-10-11Fredrik Hübinette (Hubbe)  times \
2ea2112002-09-07Henrik Grubbström (Grubba)  tzset \
cb22561995-10-11Fredrik Hübinette (Hubbe)  vfprintf \ vsprintf \
1718fa2009-05-28Henrik Grubbström (Grubba)  _snprintf \
5a28a92003-08-04Martin Stjernholm  snprintf \
cd96811998-05-15Henrik Grubbström (Grubba)  vsnprintf \
6930181996-02-25Fredrik Hübinette (Hubbe)  wait3 \
65887d1995-11-15Fredrik Hübinette (Hubbe)  wait4 \ waitpid \
dcad551996-08-03Fredrik Hübinette (Hubbe)  munmap \
4238391998-07-09Francesco Chemolli  shl_load \
59bc1b1997-01-22Bernhard Fastenrath  dld_link \ dld_get_func \
3e84d61997-04-16Fredrik Hübinette (Hubbe)  pipe \
75920f1997-12-28Fredrik Hübinette (Hubbe)  strdup \ kill \ alarm \
85f59e1998-01-08Fredrik Hübinette (Hubbe)  fork1 \
d386e61998-03-20Fredrik Hübinette (Hubbe)  flock \
e6f98c1998-05-22David Hedbor  lockf \
0d52dd1998-01-16Fredrik Hübinette (Hubbe)  setuid getuid seteuid geteuid \ setgid getgid setegid getegid \
f087c41998-02-04Fredrik Hübinette (Hubbe)  getpwent getpwnam getpwuid \ getgrent getgrnam \
8f63852000-09-16Mirar (Pontus Hagland)  setsid setpgrp getpgrp setpgid getpgid \
d386e61998-03-20Fredrik Hübinette (Hubbe)  initgroups setgroups \
9c50201998-03-26Fredrik Hübinette (Hubbe)  socketpair \
5ff14f1998-05-25Marcus Comstedt  fpclass \ fp_class_d \ isinf \ isnan \ iszero \ finite \ signbit \
1b28b82001-05-28Marcus Comstedt  nan \
70c9c11998-05-05Fredrik Hübinette (Hubbe)  nice \
ea959d1999-02-01Per Hedbor  __priocntl \ sched_setscheduler \ setpriority \
dac6371999-10-17Mirar (Pontus Hagland)  usleep \ nanosleep \
8d92312009-03-13Martin Stjernholm  sched_yield \
a85ac52001-08-23Per Hedbor  thr_yield \
f663a02003-03-05Martin Stjernholm  prctl \
1b61702005-11-18Henrik Grubbström (Grubba)  SetFilePointerEx \
6d2c672005-06-23Henrik Grubbström (Grubba)  sync_instruction_memory \
d97bbf2005-08-27Jonas Wallden  MakeDataExecutable \
5a8cdd2006-06-20Martin Stjernholm  _get_timezone \ _get_daylight \
83b2872006-07-02Martin Stjernholm  localtime_s \
13ee8f2006-08-09Martin Stjernholm  sysconf \ getpagesize \ GetSystemInfo \
247f732007-06-10Martin Stjernholm  clock_getcpuclockid \
e2d33e2008-06-24Martin Stjernholm  backtrace \
8196fb2008-07-31Martin Stjernholm  SetErrorMode \
8dc5b42008-11-07Martin Stjernholm  thread_info \ host_get_clock_service \
cb22561995-10-11Fredrik Hübinette (Hubbe) )
5267b71995-08-09Fredrik Hübinette (Hubbe) 
87076a2003-02-24Henrik Grubbström (Grubba) # SunOS 4 realloc() returns NULL when reallocing NULL. AC_MSG_CHECKING([if realloc(NULL, SZ) works]) AC_CACHE_VAL(pike_cv_realloc_null_works, [ AC_TRY_RUN([ #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { void *foo = realloc(NULL, 16); return !foo; } ], [ pike_cv_realloc_null_works=yes ], [ pike_cv_realloc_null_works=no ], [ pike_cv_realloc_null_works=no
02b5552003-02-24Henrik Grubbström (Grubba)  ])
87076a2003-02-24Henrik Grubbström (Grubba) ]) if test "x$pike_cv_realloc_null_works" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_WORKING_REALLOC_NULL) else AC_MSG_RESULT(no) fi
6cefa12000-09-27Henrik Grubbström (Grubba) AC_MSG_CHECKING(for the type of the last argument to accept)
11ceb01998-08-07Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_accept_size_t, [
6cefa12000-09-27Henrik Grubbström (Grubba)  for t in socklen_t size_t int; do 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 */
12368a2003-04-30Henrik Grubbström (Grubba) #ifdef HAVE_WINSOCK2_H #include <WinSock2.h> #ifdef HAVE_WS2TCPIP_H /* Needed for IPv6 support. */ #include <WS2tcpip.h> #endif #elif defined(HAVE_WINSOCK_H)
6cefa12000-09-27Henrik Grubbström (Grubba) #include <winsock.h> #endif
a924142002-11-18Henrik Grubbström (Grubba) /* Here is the actual test: */
6cefa12000-09-27Henrik Grubbström (Grubba) int accept(int, struct sockaddr *, $t *); ], [ /* EMPTY */ ], [ pike_cv_accept_size_t=$t break ], [ AC_TRY_COMPILE([
11ceb01998-08-07Henrik Grubbström (Grubba) #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
3e82a71998-09-01Fredrik Hübinette (Hubbe) /* NT */
12368a2003-04-30Henrik Grubbström (Grubba) #ifdef HAVE_WINSOCK2_H #include <WinSock2.h> #ifdef HAVE_WS2TCPIP_H /* Needed for IPv6 support. */ #include <WS2tcpip.h> #endif #elif defined(HAVE_WINSOCK_H)
3e82a71998-09-01Fredrik Hübinette (Hubbe) #include <winsock.h> #endif
a924142002-11-18Henrik Grubbström (Grubba) /* Here is the actual test: */
6cefa12000-09-27Henrik Grubbström (Grubba) 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 *.
69bae82000-08-20Henrik Grubbström (Grubba)  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 */
12368a2003-04-30Henrik Grubbström (Grubba) #ifdef HAVE_WINSOCK2_H #include <WinSock2.h> #ifdef HAVE_WS2TCPIP_H /* Needed for IPv6 support. */ #include <WS2tcpip.h> #endif #elif defined(HAVE_WINSOCK_H)
69bae82000-08-20Henrik Grubbström (Grubba) #include <winsock.h> #endif
a924142002-11-18Henrik Grubbström (Grubba) /* Here is the actual test: */
6cefa12000-09-27Henrik Grubbström (Grubba) int accept(int, struct sockaddr *, Psocklen_t);
69bae82000-08-20Henrik Grubbström (Grubba)  ], [ /* EMPTY */
6cefa12000-09-27Henrik Grubbström (Grubba)  ], [ 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
11ceb01998-08-07Henrik Grubbström (Grubba) ])
6cefa12000-09-27Henrik Grubbström (Grubba) AC_MSG_RESULT($pike_cv_accept_size_t *)
11ceb01998-08-07Henrik Grubbström (Grubba) AC_DEFINE_UNQUOTED(ACCEPT_SIZE_T, $pike_cv_accept_size_t)
08af092000-04-12Marcus Comstedt if test x"$pike_cv_sys_os" = xWindows_NT ; then
9649491998-02-27Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_LOADLIBRARY) AC_DEFINE(HAVE_FREELIBRARY) AC_DEFINE(HAVE_GETPROCADDRESS) AC_DEFINE(DL_EXPORT, _dlspec(export)) else AC_DEFINE(DL_EXPORT, []) fi
e78abd1996-11-21Fredrik Hübinette (Hubbe) if test $ac_cv_func_crypt$ac_cv_func__crypt = nono ; then
905bb11998-01-31Fredrik Hübinette (Hubbe)  AC_CHECK_LIB(crypt,crypt,[LIBS="${LIBS} -lcrypt" ; AC_DEFINE(HAVE_CRYPT)], [ if test -f "$srcdir/crypt.c"; then AC_MSG_RESULT(Using crypt.c for BSD style crypt()) EXTRA_OBJS="${EXTRA_OBJS} crypt.o" AC_DEFINE(HAVE_CRYPT)
a680662000-08-20Henrik Grubbström (Grubba)  AC_DEFINE(USE_CRYPT_C)
905bb11998-01-31Fredrik Hübinette (Hubbe)  else : fi ])
e78abd1996-11-21Fredrik Hübinette (Hubbe) fi
1b28b82001-05-28Marcus Comstedt ############################################################################# MY_CHECK_FUNCTION(infnan, [ #include <errno.h> #include <math.h> ], [ double pinf = infnan(ERANGE); double ninf = infnan(-ERANGE); double nan = infnan(EDOM); exit(!(isinf(pinf)>0 && isinf(ninf)<0 && isnan(nan))); ])
5539c51998-06-08Henrik Grubbström (Grubba) #############################################################################
c3d1032001-06-12Henrik Grubbström (Grubba) MY_CHECK_FUNCTION(_isnan, [ #include <float.h> ], [ exit(_isnan(0.0)); ]) #############################################################################
5539c51998-06-08Henrik Grubbström (Grubba)  # FreeBSD 3.0 has broken F_SETFD when running with threads. AC_MSG_CHECKING(whether F_SETFD exists and works) AC_CACHE_VAL(pike_cv_broken_f_setfd, [ AC_TRY_RUN([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #include <sys/stat.h> #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif /* HAVE_FCNTL_H */ #include <stdio.h> #ifndef FD_CLOEXEC #define FD_CLOEXEC 1 #endif /* FD_CLOEXEC */ int main(int argc, char **argv) { int fd = 0; if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0) { exit(1); } if (fcntl(fd, F_GETFD) != FD_CLOEXEC) { exit(1); } exit(0); } ], pike_cv_broken_f_setfd=no, pike_cv_broken_f_setfd=yes,
56d1c02000-06-29Henrik Grubbström (Grubba)  pike_cv_broken_f_setfd=yes)
5539c51998-06-08Henrik Grubbström (Grubba) ]) if test "x$pike_cv_broken_f_setfd" = "xyes"; then AC_MSG_RESULT(no) AC_DEFINE(HAVE_BROKEN_F_SETFD) else AC_MSG_RESULT(yes) fi #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_STRUCT_TM
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(extern int timezone)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_has_external_timezone,[
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_TRY_LINK([ #include <time.h> ],[ int _tz; _tz=timezone;
a05f921998-05-05Fredrik Hübinette (Hubbe)  timezone=_tz;
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_has_external_timezone=yes,pike_cv_has_external_timezone=no)
067bc11996-06-21Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_has_external_timezone" = "yes"; then
067bc11996-06-21Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_EXTERNAL_TIMEZONE) fi
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_has_external_timezone)
dcad551996-08-03Fredrik Hübinette (Hubbe)  #############################################################################
e0b9561996-07-02Fredrik Hübinette (Hubbe) # No test for this yet... AC_DEFINE(HAVE_STRUCT_TIMEVAL)
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) 
486dbe2003-04-23Marcus Comstedt AC_MSG_CHECKING(struct sockaddr_in6) AC_CACHE_VAL(pike_cv_has_struct_sockaddr_in6,[ AC_TRY_LINK([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif /* HAVE_SYS_SOCKET_H */ #ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #endif /* HAVE_NETINET_IN_H */
12368a2003-04-30Henrik Grubbström (Grubba) #ifdef HAVE_WINSOCK2_H #include <WinSock2.h> #ifdef HAVE_WS2TCPIP_H #include <WS2tcpip.h> #endif #elif defined(HAVE_WINSOCK_H) #include <winsock.h> #endif
486dbe2003-04-23Marcus Comstedt ],[ struct sockaddr_in6 foo; ],pike_cv_has_struct_sockaddr_in6=yes,pike_cv_has_struct_sockaddr_in6=no) ]) if test "$pike_cv_has_struct_sockaddr_in6" = "yes"; then AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) fi AC_MSG_RESULT($pike_cv_has_struct_sockaddr_in6) #############################################################################
c676702006-08-09Martin Stjernholm if test $ac_cv_header_malloc_h = yes; then AC_MSG_CHECKING(struct mallinfo in malloc.h) AC_CACHE_VAL(pike_cv_struct_mallinfo, [ AC_TRY_LINK([ #ifdef HAVE_MALLOC_H #include <malloc.h> #endif ], [ struct mallinfo foo; ], pike_cv_struct_mallinfo=yes, pike_cv_struct_mallinfo=no) ]) if test $pike_cv_struct_mallinfo = yes; then AC_DEFINE(HAVE_STRUCT_MALLINFO, 1, [Defined if malloc.h contains a struct mallinfo.]) fi AC_MSG_RESULT($pike_cv_struct_mallinfo) fi #############################################################################
63a6e01998-05-29Henrik Grubbström (Grubba) if test "x$ac_cv_func_strtol" = "xyes"; then AC_MSG_CHECKING(if strtol works for large hexadecimal constants) AC_CACHE_VAL(pike_cv_func_strtol_works, [ AC_TRY_RUN([ #include <stdlib.h> int main(int argc, char **argv) {
a924142002-11-18Henrik Grubbström (Grubba)  /* On some OS:s strtol() rounds this to 0x7fffffff. */
63a6e01998-05-29Henrik Grubbström (Grubba)  return(strtol("0xffffffff", NULL, 0) != 0xffffffff); } ], pike_cv_func_strtol_works=yes, pike_cv_func_strtol_works=no, pike_cv_func_strtol_works=no) ]) AC_MSG_RESULT($pike_cv_func_strtol_works) if test "x$pike_cv_func_strtol_works" = "xyes"; then AC_DEFINE(HAVE_WORKING_STRTOL) else :; fi else :; fi #############################################################################
9aae7e2001-06-20Per Hedbor # if test "x$ac_cv_func_gethrtime" != "xyes"; then # AC_MSG_CHECKING(if we can make gethrtime by the RDTSC instruction) # AC_CACHE_VAL(pike_cv_own_gethrtime_rdtsc, [ # AC_TRY_RUN([ # #include <unistd.h> # #include <stdio.h> # #include <sys/time.h> # # static long long hrtime_rtsc_zero; # static long long hrtime_rtsc_last; # static long long hrtime_max; # static struct timeval hrtime_timeval_zero; # static long double hrtime_conv=0.0; # # #define GETTIMEOFDAY(PTR) gettimeofday(PTR,NULL) # # #define RTSC(x) \ # __asm__ __volatile__ ( "rdtsc" \ # :"=a" (((unsigned long*)&x)[0]), \ # "=d" (((unsigned long*)&x)[1])) # # void own_gethrtime_init() # { # GETTIMEOFDAY(&hrtime_timeval_zero); # RTSC(hrtime_rtsc_zero); # hrtime_rtsc_last=hrtime_rtsc_zero; # hrtime_max=0; # } # # int own_gethrtime_update(struct timeval *ptr) # { # long long td,t,now; # GETTIMEOFDAY(ptr); # RTSC(now); # td=((long long)ptr->tv_sec-hrtime_timeval_zero.tv_sec)*1000000000+ # ((long long)ptr->tv_usec-hrtime_timeval_zero.tv_usec)*1000; # # hrtime_rtsc_last=now; # t=now-hrtime_rtsc_zero; # if (t) hrtime_conv=((long double)td)/t; # # return 1; # } # # /* this is very sensitive to the compiler; keep all crap */ # # long long gethrtime() # { # long long now; # struct timeval tv; # # if (hrtime_conv==0.0) # { # if (!own_gethrtime_update(&tv)) /* not calibrated yet */ # { # return # hrtime_max= # ((long long)tv.tv_sec-hrtime_timeval_zero.tv_sec)*1000000000+ # ((long long)tv.tv_usec-hrtime_timeval_zero.tv_usec)*1000; # } # } # # RTSC(now); # # if (now-hrtime_rtsc_last > 2000000000) # { # own_gethrtime_update(&tv); # return gethrtime(); # } # # now = (long long) ( (long double)(now-hrtime_rtsc_zero) * hrtime_conv ); # # if (now<hrtime_max) now=hrtime_max; # return hrtime_max=now; # } # # #include <stdio.h> # # int main() # { # struct timeval tv1,tv2; # long long td,t1,t2; # own_gethrtime_init(); # # usleep(10); # own_gethrtime_update(&tv2); # # t1=gethrtime(); # # gettimeofday(&tv1,NULL); # for (;;) /* busy loop */ # { # GETTIMEOFDAY(&tv2); # td=((long long)tv2.tv_sec-tv1.tv_sec)*1000000000+ # ((long long)tv2.tv_usec-tv1.tv_usec)*1000; # if (td>1000000) break; # } # t2=gethrtime(); # # /* printf("t2-t1=%lld\n",t2-t1); */ # # if (t2==hrtime_rtsc_zero || # t2-t1>1100000 || # t2-t1<900000) return 1; # # return 0; # }], pike_cv_own_gethrtime_rdtsc=yes, # pike_cv_own_gethrtime_rdtsc=no, pike_cv_own_gethrtime_rdtsc=no) # ]) # if test "x$pike_cv_own_gethrtime_rdtsc" = "xyes"; then # AC_MSG_RESULT(yes) # AC_DEFINE(OWN_GETHRTIME) # AC_DEFINE(OWN_GETHRTIME_RDTSC) # AC_DEFINE(HAVE_GETHRTIME) # else # AC_MSG_RESULT([no]) # fi # fi #
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if struct tm has tm_gmtoff)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_struct_tm_has_gmtoff,[
658f1a1997-01-26Fredrik Hübinette (Hubbe) AC_TRY_COMPILE([
067bc11996-06-21Fredrik Hübinette (Hubbe) #ifdef TM_IN_SYS_TIME #include <sys/time.h> #else
a285921998-09-27Henrik Grubbström (Grubba) #include <time.h> #endif
067bc11996-06-21Fredrik Hübinette (Hubbe) ],[ int _tz; struct tm foo;
647f5d2001-12-03Xavier Beaudouin  _tz=foo.tm_gmtoff;
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_struct_tm_has_gmtoff=yes,pike_cv_struct_tm_has_gmtoff=no)
067bc11996-06-21Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_struct_tm_has_gmtoff" = "yes"; then
067bc11996-06-21Fredrik Hübinette (Hubbe)  AC_DEFINE(STRUCT_TM_HAS_GMTOFF) fi
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_struct_tm_has_gmtoff)
067bc11996-06-21Fredrik Hübinette (Hubbe) 
4b2ccc2002-03-21Henrik Grubbström (Grubba) AC_MSG_CHECKING(if struct tm has __tm_gmtoff) AC_CACHE_VAL(pike_cv_struct_tm_has___tm_gmtoff,[ AC_TRY_COMPILE([ #ifdef TM_IN_SYS_TIME #include <sys/time.h> #else #include <time.h> #endif ],[ int _tz; struct tm foo; _tz=foo.__tm_gmtoff; ],pike_cv_struct_tm_has___tm_gmtoff=yes,pike_cv_struct_tm_has___tm_gmtoff=no) ]) if test "$pike_cv_struct_tm_has___tm_gmtoff" = "yes"; then AC_DEFINE(STRUCT_TM_HAS___TM_GMTOFF) fi AC_MSG_RESULT($pike_cv_struct_tm_has___tm_gmtoff)
6cbfe42009-03-17Henrik Grubbström (Grubba) ############################################################################# # iovec AC_MSG_CHECKING(if struct iovec is defined) AC_CACHE_VAL(pike_cv_struct_iovec, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #include <unistd.h> #ifdef HAVE_SYS_UIO_H #include <sys/uio.h> #endif /* HAVE_SYS_UIO_H */ ],[ struct iovec iov; iov.iov_base = (void *)0; iov.iov_len = 0; ], [ pike_cv_struct_iovec=yes ], [ pike_cv_struct_iovec=no ]) ]) if test "$pike_cv_struct_iovec" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_STRUCT_IOVEC) else AC_MSG_RESULT(no) fi ############################################################################# # msghdr et al. AC_MSG_CHECKING(if struct msghdr is defined) AC_CACHE_VAL(pike_cv_struct_msghdr, [ AC_TRY_COMPILE([ /* Needed for <sys/socket.h> on FreeBSD 4.9. */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif ],[ struct msghdr msg; msg.msg_iov = (void *)0; msg.msg_iovlen = 0; ], [ pike_cv_struct_msghdr=yes ], [ pike_cv_struct_msghdr=no ]) ]) if test "$pike_cv_struct_msghdr" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_STRUCT_MSGHDR) AC_MSG_CHECKING(if struct msghdr has the member msg_control (XPG 4.2)) AC_CACHE_VAL(pike_cv_struct_msghdr_msg_control, [ AC_TRY_COMPILE([ /* Needed for <sys/socket.h> on FreeBSD 4.9. */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif ],[ struct msghdr msg; msg.msg_control = (void *)0; msg.msg_controllen = 0; ], [ pike_cv_struct_msghdr_msg_control=yes ], [ pike_cv_struct_msghdr_msg_control=no ]) ]) if test "$pike_cv_struct_msghdr_msg_control" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_STRUCT_MSGHDR_MSG_CONTROL) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(if struct msghdr has the member msg_accrights (old BSD)) AC_CACHE_VAL(pike_cv_struct_msghdr_msg_accrights, [ AC_TRY_COMPILE([ /* Needed for <sys/socket.h> on FreeBSD 4.9. */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif ],[ struct msghdr msg; msg.msg_accrights = (void *)0; msg.msg_accrightslen = 0; ], [ pike_cv_struct_msghdr_msg_accrights=yes ], [ pike_cv_struct_msghdr_msg_accrights=no ]) ]) if test "$pike_cv_struct_msghdr_msg_accrights" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS) else AC_MSG_RESULT(no) fi else AC_MSG_RESULT(no) fi
04343e2007-06-17Martin Stjernholm #############################################################################
c69eb51996-09-29Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for USHRT_MAX definition) AC_CACHE_VAL(pike_cv_ushrt_max_is_defined,[
21ee4b2003-12-16Marek Habersack AC_EGREP_CPP(oui,[
c69eb51996-09-29Fredrik Hübinette (Hubbe) #include <limits.h> #ifdef USHRT_MAX
21ee4b2003-12-16Marek Habersack oui
c69eb51996-09-29Fredrik Hübinette (Hubbe) #endif ],pike_cv_ushrt_max_is_defined=yes,pike_cv_ushrt_max_is_defined=no) ]) if test "$pike_cv_ushrt_max_is_defined" = "no" ; then AC_DEFINE(USHRT_MAX,65535) fi AC_MSG_RESULT($pike_cv_ushrt_max_is_defined)
067bc11996-06-21Fredrik Hübinette (Hubbe) 
5267b71995-08-09Fredrik Hübinette (Hubbe) define(MY_CHECK_HEADERS, [ AC_MSG_CHECKING(for $1 declaration)
06983f1996-09-22Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_decl_$1,
5267b71995-08-09Fredrik Hübinette (Hubbe)  [
9b62872002-10-03Henrik Grubbström (Grubba)  OLD_CPPFLAGS="$CPPFLAGS"
63a0f72003-01-27Martin Stjernholm  pike_cv_decl_$1=nonexistent
5267b71995-08-09Fredrik Hübinette (Hubbe)  for a in $2 do
63a0f72003-01-27Martin Stjernholm  AC_EGREP_HEADER($1,$a,[ pike_cv_decl_$1=existent; break ])
b933a62002-10-03Henrik Grubbström (Grubba)  # Kludge for MacOS X. Retry with the traditional cpp... CPPFLAGS="$CPPFLAGS -traditional-cpp"
63a0f72003-01-27Martin Stjernholm  AC_EGREP_HEADER($1,$a,[ pike_cv_decl_$1=existent; break ])
b933a62002-10-03Henrik Grubbström (Grubba)  CPPFLAGS="$OLD_CPPFLAGS"
5267b71995-08-09Fredrik Hübinette (Hubbe)  done
9b62872002-10-03Henrik Grubbström (Grubba)  CPPFLAGS="$OLD_CPPFLAGS"
5267b71995-08-09Fredrik Hübinette (Hubbe)  ])
06983f1996-09-22Fredrik Hübinette (Hubbe)  AC_MSG_RESULT($pike_cv_decl_$1)
63a0f72003-01-27Martin Stjernholm  if test "$pike_cv_decl_$1" = nonexistent -o "$pike_cv_decl_$1" = nonexistant; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_DEFINE(translit($1,[a-z],[A-Z])[]_DECL_MISSING) fi ]) MY_CHECK_HEADERS(strchr,string.h unistd.h stdlib.h) MY_CHECK_HEADERS(malloc,memory.h unistd.h stdlib.h)
12368a2003-04-30Henrik Grubbström (Grubba) MY_CHECK_HEADERS(getpeername,sys/socket.h sys/socketvar.h sys/socketio.h winsock.h winsock2.h ws2tcpip.h)
5267b71995-08-09Fredrik Hübinette (Hubbe) MY_CHECK_HEADERS(popen,stdio.h unistd.h) MY_CHECK_HEADERS(getenv,unistd.h stdlib.h)
12368a2003-04-30Henrik Grubbström (Grubba) MY_CHECK_HEADERS(gethostname,unistd.h netdb.h winsock.h winsock2.h ws2tcpip.h)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_ALLOCA
6930181996-02-25Fredrik Hübinette (Hubbe) AC_C_CONST AC_C_INLINE
5267b71995-08-09Fredrik Hübinette (Hubbe) 
9b372f1998-09-05Henrik Grubbström (Grubba) AC_CHECK_FUNCS(ualarm setitimer)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
9b372f1998-09-05Henrik Grubbström (Grubba) if test "x$ac_cv_func_ualarm" = "xyes"; then AC_MSG_CHECKING(no of arguments to ualarm) AC_CACHE_VAL(pike_cv_ualarm_takes_two_args, [ AC_TRY_COMPILE([ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ ],[
e16ff51996-12-05Fredrik Hübinette (Hubbe)  ualarm(0,0);
9b372f1998-09-05Henrik Grubbström (Grubba)  ],pike_cv_ualarm_takes_two_args=yes,pike_cv_ualarm_takes_two_args=no) ]) if test "$pike_cv_ualarm_takes_two_args" = yes; then AC_MSG_RESULT(2) AC_DEFINE(UALARM_TAKES_TWO_ARGS) else AC_MSG_RESULT(1) fi fi
5267b71995-08-09Fredrik Hübinette (Hubbe) 
4499d52003-03-06Henrik Grubbström (Grubba) if test "x$ac_cv_func_ptrace" = "xyes"; then AC_MSG_CHECKING(no of arguments to ptrace) AC_CACHE_VAL(pike_cv_ptrace_takes_four_args, [ AC_TRY_COMPILE([ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #ifdef HAVE_SYS_PTRACE_H #include <sys/ptrace.h> #endif /* HAVE_SYS_PTRACE_H */ ],[
d574b82003-03-27Henrik Grubbström (Grubba)  ptrace(0,0,0,0);
4499d52003-03-06Henrik Grubbström (Grubba)  ],pike_cv_ptrace_takes_four_args=yes,pike_cv_ptrace_takes_four_args=no) ]) if test "$pike_cv_ptrace_takes_four_args" = yes; then AC_MSG_RESULT(4) AC_DEFINE(PTRACE_TAKES_FOUR_ARGS) else AC_MSG_RESULT(5) fi
d574b82003-03-27Henrik Grubbström (Grubba)  AC_MSG_CHECKING([type of argument 3 (addr) to ptrace]) AC_CACHE_VAL(pike_cv_ptrace_addr_type, [ AC_TRY_COMPILE([ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #ifdef HAVE_SYS_PTRACE_H #include <sys/ptrace.h> #endif /* HAVE_SYS_PTRACE_H */ ],[ #ifdef PTRACE_TAKES_FOUR_ARGS ptrace(0,0,(void *)0,0); #else ptrace(0,0,(void *)0,0,0); #endif ],pike_cv_ptrace_addr_type=pointer,pike_cv_ptrace_addr_type=integer) ]) if test "$pike_cv_ptrace_addr_type" = pointer; then AC_MSG_RESULT(pointer) AC_DEFINE(PTRACE_ADDR_TYPE_IS_POINTER) else AC_MSG_RESULT([integer (SVID)]) fi
4499d52003-03-06Henrik Grubbström (Grubba) fi
d7be5b1997-01-28Fredrik Hübinette (Hubbe) ########################################################################
2ee6691999-01-07Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(stack direction) AC_CACHE_VAL(pike_cv_hardware_stack_direction, [
6b15b72001-01-19Henrik Grubbström (Grubba)  AC_TRY_RUN([
46d5c52000-02-03Henrik Grubbström (Grubba) #include <stdio.h>
637eb22005-06-01Henrik Grubbström (Grubba) static int find_stack_direction(void *foo, int cnt)
2ee6691999-01-07Fredrik Hübinette (Hubbe) {
637eb22005-06-01Henrik Grubbström (Grubba)  if (cnt) return 1*find_stack_direction(foo, cnt>>1);
2ee6691999-01-07Fredrik Hübinette (Hubbe)  if (((void *)&foo) > foo) { return 1; } else { return -1; } }
637eb22005-06-01Henrik Grubbström (Grubba) int main() { void *bar; exit( find_stack_direction(&bar, 0x10) > 0); }
6b15b72001-01-19Henrik Grubbström (Grubba)  ], [ pike_cv_hardware_stack_direction=down ], [ pike_cv_hardware_stack_direction=up ], [
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Defaulting to down.])
6b15b72001-01-19Henrik Grubbström (Grubba)  pike_cv_hardware_stack_direction=down ])
2ee6691999-01-07Fredrik Hübinette (Hubbe) ]) AC_MSG_RESULT($pike_cv_hardware_stack_direction) if grep STACK_DIRECTION confdefs.h >/dev/null 2>&1; then :
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "x$pike_cv_hardware_stack_direction" = "xup" ; then AC_DEFINE(STACK_DIRECTION, 1)
2ee6691999-01-07Fredrik Hübinette (Hubbe) else
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_DEFINE(STACK_DIRECTION, -1)
2ee6691999-01-07Fredrik Hübinette (Hubbe) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(byteorder)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_hardware_byteorder,
5267b71995-08-09Fredrik Hübinette (Hubbe) [
c6f4a82002-01-27Martin Stjernholm if test "x$enable_binary" = "xno"; then pike_cv_hardware_byteorder=0 else
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_TRY_RUN([ #include <stdio.h> int main() {
5c8e891995-10-29Fredrik Hübinette (Hubbe) #if SIZEOF_INT == 4
5267b71995-08-09Fredrik Hübinette (Hubbe) #define T int #else #define T long #endif FILE *f; T a; int e; for(e=0;e<sizeof(T);e++) ((char *)&a)[e]=(e+1) % 10; f=fopen("conftest.out.2","w"); for(e=0;e<sizeof(T);e++) { fprintf(f,"%d",(int)(a & 255)); a>>=8; } fprintf(f,"\n"); fclose(f); return 0; }],
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_hardware_byteorder=`cat conftest.out.2`
5267b71995-08-09Fredrik Hübinette (Hubbe) ,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_hardware_byteorder=0
75920f1997-12-28Fredrik Hübinette (Hubbe) , pike_cv_hardware_byteorder=0
c6f4a82002-01-27Martin Stjernholm ) fi ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_hardware_byteorder)
71f3a21998-11-22Fredrik Hübinette (Hubbe) AC_DEFINE_UNQUOTED(PIKE_BYTEORDER,$pike_cv_hardware_byteorder)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
6a36472000-12-19Marcus Comstedt ########################################################################
b2d7f32003-10-30Henrik Grubbström (Grubba) AC_MSG_CHECKING(pointer alignment)
6a36472000-12-19Marcus Comstedt AC_CACHE_VAL(pike_cv_hardware_alignment, [
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x$enable_binary" = "xno"; then pike_cv_hardware_alignment=4 else AC_TRY_RUN([
6a36472000-12-19Marcus Comstedt #include <stdio.h>
b2d7f32003-10-30Henrik Grubbström (Grubba) struct x { char a; void *b; };
6a36472000-12-19Marcus Comstedt 
b2d7f32003-10-30Henrik Grubbström (Grubba) struct y { void *a; char b; };
6a36472000-12-19Marcus Comstedt  int main(int argc, char *argv[]) {
b2d7f32003-10-30Henrik Grubbström (Grubba)  FILE *f; int align = (int)&(((struct x *)0)->b); if (align > sizeof(struct y)-sizeof(void *)) align = sizeof(struct y) - sizeof(void *);
6a36472000-12-19Marcus Comstedt  if(!(f=fopen("conftest.out.2","w"))) return 1;
b2d7f32003-10-30Henrik Grubbström (Grubba)  fprintf(f, "%d\n", align);
6a36472000-12-19Marcus Comstedt  fclose(f); return 0;
0c4c482010-01-18Henrik Grubbström (Grubba) } ], pike_cv_hardware_alignment=`cat conftest.out.2`, pike_cv_hardware_alignment=4, pike_cv_hardware_alignment=4 ) fi
c6f4a82002-01-27Martin Stjernholm ])
6a36472000-12-19Marcus Comstedt  AC_MSG_RESULT($pike_cv_hardware_alignment)
b2d7f32003-10-30Henrik Grubbström (Grubba) AC_DEFINE_UNQUOTED(PIKE_POINTER_ALIGNMENT,$pike_cv_hardware_alignment)
6a36472000-12-19Marcus Comstedt 
ef6d662002-04-07Martin Stjernholm ############################################################################# ## Check if we should default to --with-machine-code ############################################################################# if test "$with_machine_code" = "no"; then :; else AC_MSG_CHECKING(machine code architecture) AC_CACHE_VAL(pike_cv_machine_code_arch, [ pike_cv_machine_code_arch=unknown AC_TRY_COMPILE([
cfef2d2003-07-28Martin Stjernholm #if defined(__GNUC__)
ef6d662002-04-07Martin Stjernholm #if !defined(__i386__) && !defined(__i386) #error Not ia32 architecture
cfef2d2003-07-28Martin Stjernholm #endif #elif defined(_MSC_VER) #if !defined(_M_IX86) #error Not ia32 architecture #endif #else #error Unsupported compiler
ef6d662002-04-07Martin Stjernholm #endif
cdc01a2005-06-09Henrik Grubbström (Grubba)  ], [], [ pike_cv_machine_code_arch=ia32 ], [])
ef6d662002-04-07Martin Stjernholm  AC_TRY_COMPILE([
cfef2d2003-07-28Martin Stjernholm #if defined(__GNUC__)
52cf3b2011-05-11Henrik Grubbström (Grubba) #if !defined(__x86_64__) && !defined(__x86_64) && !defined(__amd64) && !defined(__amd64__) #error Not amd64 architecture #endif #elif defined(_MSC_VER) #if !defined(_M_X64) #error Not amd64 architecture #endif #error Unsupported ABI. #else #error Unsupported compiler #endif ], [], [ pike_cv_machine_code_arch=amd64 ], []) AC_TRY_COMPILE([ #if defined(__GNUC__)
ef6d662002-04-07Martin Stjernholm #if !defined(sparc) && !defined(__sparc__) && !defined(__sparc) #error Not sparc architecture
cfef2d2003-07-28Martin Stjernholm #endif #else #error Unsupported compiler
ef6d662002-04-07Martin Stjernholm #endif
cdc01a2005-06-09Henrik Grubbström (Grubba)  ], [], [ pike_cv_machine_code_arch=sparc ], [])
ef6d662002-04-07Martin Stjernholm  AC_TRY_COMPILE([
cfef2d2003-07-28Martin Stjernholm #if defined(__GNUC__)
3205832002-04-08Marcus Comstedt #if !defined(__ppc__) && !defined(__powerpc__) && !defined(_POWER)
ef6d662002-04-07Martin Stjernholm #error Not ppc32 architecture
cfef2d2003-07-28Martin Stjernholm #endif #else #error Unsupported compiler
ef6d662002-04-07Martin Stjernholm #endif
cdc01a2005-06-09Henrik Grubbström (Grubba)  ], [], [ pike_cv_machine_code_arch=ppc32 ], [])
a00f6f2007-04-01Marcus Comstedt  AC_TRY_COMPILE([ #if defined(__GNUC__) #if !defined(__PPC64__) && !defined(__powerpc64__) #error Not ppc64 architecture #endif #else #error Unsupported compiler #endif ], [], [ pike_cv_machine_code_arch=ppc64 ], [])
ef6d662002-04-07Martin Stjernholm  ]) AC_MSG_RESULT($pike_cv_machine_code_arch) if test "x$pike_cv_machine_code_arch" = xunknown ; then with_machine_code="no" else with_machine_code="yes" AC_DEFINE(PIKE_USE_MACHINE_CODE)
cdc01a2005-06-09Henrik Grubbström (Grubba)  case "x$pike_cv_machine_code_arch" in xia32) # Force gmp to build for ia32 and not for x86_64.
f135ff2005-09-01Henrik Grubbström (Grubba)  BUNDLE_FLAGS="$BUNDLE_FLAGS --build=i486"
cdc01a2005-06-09Henrik Grubbström (Grubba)  ;; esac
ef6d662002-04-07Martin Stjernholm  fi fi
7a64042001-08-15Marcus Comstedt ######################################################################## if test yes = "$with_machine_code"; then
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_MSG_CHECKING(register name convention) AC_CACHE_VAL(pike_cv_cpu_reg_prefix, [ for pike_cv_cpu_reg_prefix in "default" "" "r" "%%" "%%r" "unknown"; do AC_TRY_COMPILE([
7a64042001-08-15Marcus Comstedt #define REGPREFIX "$pike_cv_cpu_reg_prefix"
0c4c482010-01-18Henrik Grubbström (Grubba)  ], [
3205832002-04-08Marcus Comstedt #if defined(__ppc__) || defined(__powerpc__) || defined(_POWER)
7a64042001-08-15Marcus Comstedt  __asm__ __volatile__(" li "REGPREFIX"11,1"); #else
a924142002-11-18Henrik Grubbström (Grubba)  ; /* Do not need to find out */
7a64042001-08-15Marcus Comstedt #endif ],[break])
0c4c482010-01-18Henrik Grubbström (Grubba)  done ]) case "$pike_cv_cpu_reg_prefix" in default|unknown) AC_MSG_RESULT($pike_cv_cpu_reg_prefix);; *) AC_MSG_RESULT(${pike_cv_cpu_reg_prefix}0) AC_DEFINE_UNQUOTED(PIKE_CPU_REG_PREFIX,"$pike_cv_cpu_reg_prefix");; esac
7a64042001-08-15Marcus Comstedt else :; fi
2cf5272010-10-17Artur Skawina ######################################################################## AC_MSG_CHECKING([for the RDTSC instruction (x86)]) AC_CACHE_VAL(pike_cv_have_rdtsc, [ AC_TRY_RUN([ static long long rdtsc() { unsigned long l, h;
6d41792010-10-30Martin Stjernholm #if defined (_M_IX86) || defined (_M_X64) __asm { rdtsc mov l, eax mov h, edx } #else
2cf5272010-10-17Artur Skawina  __asm__ __volatile__ ("rdtsc" :"=a" (l), "=d" (h));
6d41792010-10-30Martin Stjernholm #endif
2cf5272010-10-17Artur Skawina  return (((long long)h)<<32)|l; } int main() { if (rdtsc()!=rdtsc()) return 0; return 1; } ],[pike_cv_have_rdtsc=yes],[pike_cv_have_rdtsc=no],[pike_cv_have_rdtsc="possibly not"])]) AC_MSG_RESULT($pike_cv_have_rdtsc) if test "$pike_cv_have_rdtsc" = yes; then AC_DEFINE(HAVE_RDTSC) fi
05030b1998-11-18Marcus Comstedt ######################################################################## MY_CHECK_FUNCTION(fork, [ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
05030b1998-11-18Marcus Comstedt  exit(fork()==-1);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
a3c9a72000-10-13Fredrik Hübinette (Hubbe) 
4bcc441998-07-22Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(fpsetmask, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
4bcc441998-07-22Fredrik Hübinette (Hubbe)  fpsetmask(0); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
b36a452000-03-28Henrik Grubbström (Grubba) MY_CHECK_FUNCTION(fpsetround, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif #ifndef FP_RN #define FP_RN 0 #endif /* FP_RN */
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
b36a452000-03-28Henrik Grubbström (Grubba)  fpsetround(FP_RN); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
b36a452000-03-28Henrik Grubbström (Grubba) ########################################################################
e1184f2001-01-24Marcus Comstedt MY_CHECK_FUNCTION(isless, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif ], [ int t = isless(0.0, 0.0); exit(0); ]) ########################################################################
5d4cf62004-01-12Marcus Comstedt MY_CHECK_FUNCTION(isunordered, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif ], [ int t = isunordered(0.0, 0.0); exit(0); ]) ########################################################################
de16081997-06-03Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(dlopen, [ #include <dlfcn.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
de16081997-06-03Fredrik Hübinette (Hubbe)  dlopen(0, 0); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
4bcc441998-07-22Fredrik Hübinette (Hubbe) ########################################################################
de16081997-06-03Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(ldexp, [ #include <math.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  double x; int p; for(x=0.0;x<2.0;x+=1.0/64.0) for(p=-6;p<7;p++) if(ldexp(x,p) != x*pow(2.0, (double)p)) exit(1); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
22c21e1999-06-19Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(rint, [ #include <math.h>
b36a452000-03-28Henrik Grubbström (Grubba) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif /* HAVE_IEEEFP_H */
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
b36a452000-03-28Henrik Grubbström (Grubba) #ifdef HAVE_FPSETROUND /* Round to nearest */ #ifndef FP_RN #define FP_RN 0 #endif /* FP_RN */ fpsetround(FP_RN); #endif /* HAVE_FPSETROUND */
22c21e1999-06-19Fredrik Hübinette (Hubbe)  if(rint(0.1) != 0.0 || rint(0.6) != 1.0) exit(1); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
22c21e1999-06-19Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(frexp, [ #include <math.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  double x,y;
1a631e1997-04-22Fredrik Hübinette (Hubbe)  int p,e;
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
1a631e1997-04-22Fredrik Hübinette (Hubbe)  x=frexp(1.0, &e);
3b7ea31998-07-22Fredrik Hübinette (Hubbe)  if(x * pow(2.0,(double)e) != 1.0) exit(3);
1a631e1997-04-22Fredrik Hübinette (Hubbe)  p=-7;
c411dc1997-04-21Fredrik Hübinette (Hubbe)  for(x=3.0/4.0*pow(2.0,(double)p);x<50000.0;x*=2.0,p++) { if(frexp(x, &e)!=3.0/4.0) exit(1);
1a631e1997-04-22Fredrik Hübinette (Hubbe)  if(e!=p) exit(2);
c411dc1997-04-21Fredrik Hübinette (Hubbe)  } exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
9649491998-02-27Fredrik Hübinette (Hubbe) ############################################################################# MY_CHECK_FUNCTION(GetSystemTimeAsFileTime, [
25e4742002-10-13Xavier Beaudouin #ifdef HAVE_WINDOWS_H
9649491998-02-27Fredrik Hübinette (Hubbe) #include <windows.h>
25e4742002-10-13Xavier Beaudouin #endif #ifdef HAVE_WINBASE_H
9649491998-02-27Fredrik Hübinette (Hubbe) #include <winbase.h>
25e4742002-10-13Xavier Beaudouin #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  FILETIME f; GetSystemTimeAsFileTime(&f); exit(0); ]) ############################################################################# MY_CHECK_FUNCTION(gethostname, [ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif
f1a4ce2003-04-30Henrik Grubbström (Grubba) #ifdef HAVE_WINSOCK2_H #include <winsock2.h> #elif defined(HAVE_WINSOCK_H)
9649491998-02-27Fredrik Hübinette (Hubbe) #include <winsock.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  char buffer[10000]; char *x=gethostname(buffer,sizeof(buffer)); exit(0); ]) ############################################################################# MY_CHECK_FUNCTION(strcoll, [ #include <string.h> #include <locale.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  setlocale(LC_CTYPE, "ISO-8859-1"); exit(strcoll("abc", "def") >= 0 || strcoll("ABC", "DEF") >= 0 || strcoll("ABC", "ABCD") >= 0 || strcoll("ABCD", "ABC") <= 0 || strcoll("*^#", "*^#") != 0 || strcoll("123", "456") >= 0); ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(memmem,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ #include <string.h> char *a="foo bar gazonk"; char *b="foo"; char *c="bar"; char *d="gazonk";
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c463961998-09-27Henrik Grubbström (Grubba)  if(((char *)memmem(b,strlen(b),a,strlen(a)))!=a || ((char *)memmem(c,strlen(c),a,strlen(a)))!=(a+4) || ((char *)memmem(d,strlen(d),a,strlen(a)))!=(a+8) || ((char *)memmem(d,0,a,strlen(a)))!=a ||
5267b71995-08-09Fredrik Hübinette (Hubbe)  memmem(d,strlen(d)+1,a,strlen(a))!=0) exit(1); exit(0);
c411dc1997-04-21Fredrik Hübinette (Hubbe) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) 
7a5e471999-11-22Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(memcpy, [ #include <string.h> char *a="foo bar gazonk"; char foo[23];
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
7a5e471999-11-22Fredrik Hübinette (Hubbe)  memcpy(foo, a, strlen(a)+1); memcpy(foo, a+4, 3); if(strcmp(foo,"bar bar gazonk")) exit(1); exit(0); ]) ######################################################################## MY_CHECK_FUNCTION(memset, [
c4dc222000-11-25Henrik Grubbström (Grubba) #ifdef HAVE_STDDEF_H #include <stddef.h> #endif /* HAVE_STDDEF_H */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */
5a469f2001-04-20Henrik Grubbström (Grubba) #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif /* HAVE_STDLIB_H */
c4dc222000-11-25Henrik Grubbström (Grubba) #include <stdio.h>
7a5e471999-11-22Fredrik Hübinette (Hubbe) #include <string.h> char foo[23];
0e85fb2000-08-28Henrik Grubbström (Grubba)  struct pike_string { int refs; int size_shift; ptrdiff_t len; size_t hval; struct pike_string *next; char str[1]; }; struct pike_string *begin_shared_string(int len) {
1bc8c32001-04-17Henrik Grubbström (Grubba)  return (struct pike_string *)malloc(sizeof(struct pike_string) + len);
0e85fb2000-08-28Henrik Grubbström (Grubba) }
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
5341702000-08-28Henrik Grubbström (Grubba)  int i;
0e85fb2000-08-28Henrik Grubbström (Grubba)  struct pike_string *str;
c4dc222000-11-25Henrik Grubbström (Grubba)  ptrdiff_t len;
0e85fb2000-08-28Henrik Grubbström (Grubba) 
7a5e471999-11-22Fredrik Hübinette (Hubbe)  memset(foo, 0, 11); memset(foo, 'a', 10); memset(foo, 'b', 5);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "1\n");
c4dc222000-11-25Henrik Grubbström (Grubba)  if(strcmp(foo,"bbbbbaaaaa")) { exit(1); }
5341702000-08-28Henrik Grubbström (Grubba)  memset(foo, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "2\n");
5341702000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i]) { exit(1); }
5341702000-08-28Henrik Grubbström (Grubba)  }
08d51f2000-08-28Henrik Grubbström (Grubba)  memset(foo+1, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "3\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+1] != 1) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  } memset(foo+2, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "4\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+2]) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  } memset(foo+3, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "5\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+3] != 1) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  }
d21a452000-08-28Henrik Grubbström (Grubba)  memset(foo+4, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "6\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+4]) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+5, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "7\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+5] != 1) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+6, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "8\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+6]) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+7, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "9\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+7] != 1) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  }
0e85fb2000-08-28Henrik Grubbström (Grubba)  len = 6; str = begin_shared_string(len);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "string start\n");
0e85fb2000-08-28Henrik Grubbström (Grubba)  if (!str) exit(1); for (i=len; i--;) { str->str[i] = ~0; }
c4dc222000-11-25Henrik Grubbström (Grubba)  memset(str->str, 0, len);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "string end\n");
0e85fb2000-08-28Henrik Grubbström (Grubba)  for (i = len; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (str->str[i]) { exit(1); }
0e85fb2000-08-28Henrik Grubbström (Grubba)  } free(str);
7a5e471999-11-22Fredrik Hübinette (Hubbe)  exit(0); ]) ########################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(memmove,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ #include <string.h> char buf[100];
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
5267b71995-08-09Fredrik Hübinette (Hubbe)  strcpy(buf,"foo bar gazonk elefantsnabel."); if(strcmp(buf,"foo bar gazonk elefantsnabel.")) exit(1);
cb22561995-10-11Fredrik Hübinette (Hubbe)  memmove(buf,buf+1,7);
5267b71995-08-09Fredrik Hübinette (Hubbe)  if(strcmp(buf,"oo bar gazonk elefantsnabel.")) exit(1); memmove(buf+1,buf+1,9); if(strcmp(buf,"oo bar gazonk elefantsnabel.")) exit(1); memmove(buf+1,buf,11); if(strcmp(buf,"ooo bar gaznk elefantsnabel.")) exit(1); exit(0);
c411dc1997-04-21Fredrik Hübinette (Hubbe) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(isspace, [ #include <ctype.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  if(isspace(' ')) exit(0); exit(1); ]) #############################################################################
85f59e1998-01-08Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if we can declare environ) AC_CACHE_VAL(pike_cv_declare_environ,[ AC_TRY_COMPILE([ #include <stdlib.h> ],[ extern char **environ; exit(0); ],pike_cv_declare_environ=yes,pike_cv_declare_environ=no,pike_cv_declare_environ=yes) ]) AC_MSG_RESULT($pike_cv_declare_environ) if test "x$pike_cv_declare_environ" = xyes ; then AC_DEFINE(DECLARE_ENVIRON) fi #############################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
9dd2201998-05-17Henrik Grubbström (Grubba) AC_MSG_CHECKING([for union wait (old BSD convention)]) AC_CACHE_VAL(pike_cv_union_wait, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h>
d6980f1998-05-17Henrik Grubbström (Grubba) #endif /* HAVE_SYS_WAIT_H */
9dd2201998-05-17Henrik Grubbström (Grubba) ], [ union wait status; exit(0); ], pike_cv_union_wait=yes, pike_cv_union_wait=no) ]) AC_MSG_RESULT($pike_cv_union_wait) if test "x$pike_cv_union_wait" = "xyes" ; then
f376171998-05-22Henrik Grubbström (Grubba)  AC_MSG_CHECKING([whether union wait is really needed]) AC_CACHE_VAL(pike_cv_union_wait_needed, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h> #endif /* HAVE_SYS_WAIT_H */ ], [ int status; return WIFEXITED(status) || 0; ], pike_cv_union_wait_needed=no, pike_cv_union_wait_needed=yes) ])
efad7a1998-10-28Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_union_wait_needed)
f376171998-05-22Henrik Grubbström (Grubba)  if test "x$pike_cv_union_wait_needed" = "xyes" ; then AC_DEFINE(HAVE_UNION_WAIT) else :; fi else :; fi
9dd2201998-05-17Henrik Grubbström (Grubba)  #############################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how to extract an unsigned char)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_method_extract_uchar,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
5267b71995-08-09Fredrik Hübinette (Hubbe) { char i,*p; i=-10; p=&i; if(*(unsigned char *)(p)!= 0x100 - 10) exit(1); exit(0); }
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_method_extract_uchar=by_cast,
75920f1997-12-28Fredrik Hübinette (Hubbe) pike_cv_method_extract_uchar=not_by_cast,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_method_extract_uchar=not_by_cast)])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_method_extract_uchar" = by_cast; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_UCHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how to extract a signed char)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_method_extract_char,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
5267b71995-08-09Fredrik Hübinette (Hubbe) { char i,*p; i=-10; p=&i; if(*(signed char *)(p)!= -10) exit(1); exit(0); }
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_method_extract_char=by_cast,
75920f1997-12-28Fredrik Hübinette (Hubbe) pike_cv_method_extract_char=not_by_cast,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_method_extract_char=not_by_cast)])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_method_extract_char" = by_cast; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_CHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi
9debfa1999-08-11Fredrik Hübinette (Hubbe) #############################################################################
514bbc2009-09-19Henrik Grubbström (Grubba) AC_ARG_WITH(mmx, MY_DESCR([--without-mmx], [disable MMX usage]), [], [with_mmx=])
4d036d2002-12-11Mirar (Pontus Hagland) 
ec29312001-03-19Mirar (Pontus Hagland) mmx_reason=' (no mmx.h found)'
4d036d2002-12-11Mirar (Pontus Hagland) if test "x$with_mmx" = xno; then mmx_reason=' (--without-mmx)' unset pike_cv_sys_has_working_mmx
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "x$ac_cv_header_mmx_h" = xyes -o "x$ac_cv_header_asm_mmx_h" = xyes; then
27da5c1999-09-23Fredrik Noring  AC_MSG_CHECKING(for working MMX)
ec29312001-03-19Mirar (Pontus Hagland)  mmx_reason=' (mmx.h found, but mmx operations failed)'
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
c724c41999-08-12Henrik Grubbström (Grubba)  AC_CACHE_VAL(pike_cv_sys_has_working_mmx, [ AC_TRY_LINK([
ec29312001-03-19Mirar (Pontus Hagland) #ifdef HAVE_MMX_H
9debfa1999-08-11Fredrik Hübinette (Hubbe) #include <mmx.h>
895ced2003-10-25Martin Nilsson #endif #ifdef HAVE_ASM_MMX_H #include <asm/mmx.h>
ec29312001-03-19Mirar (Pontus Hagland) #endif
c724c41999-08-12Henrik Grubbström (Grubba)  ],[ {
27da5c1999-09-23Fredrik Noring  int try_use_mmx;
dd50741999-10-25Per Hedbor  char a[8]; movq_m2r( *a, mm0 ); paddb_r2r( mm0, mm0 ); movq_r2m( mm0, *a );
27da5c1999-09-23Fredrik Noring  try_use_mmx=mmx_ok();
c724c41999-08-12Henrik Grubbström (Grubba)  }
ec29312001-03-19Mirar (Pontus Hagland)  ],pike_cv_sys_has_working_mmx=yes,pike_cv_sys_has_working_mmx=no)
c724c41999-08-12Henrik Grubbström (Grubba)  ])
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
c724c41999-08-12Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_sys_has_working_mmx)
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
e8f42f1999-08-12Henrik Grubbström (Grubba)  if test "x$pike_cv_sys_has_working_mmx" = xyes ; then AC_DEFINE(TRY_USE_MMX)
ec29312001-03-19Mirar (Pontus Hagland)  mmx_reason=''
e8f42f1999-08-12Henrik Grubbström (Grubba)  else :; fi
4d036d2002-12-11Mirar (Pontus Hagland)  if test "x$with_copt" = "xno"; then PIKE_MSG_WARN([--without-mmx is advisable when using --without-copt.]) fi
e8f42f1999-08-12Henrik Grubbström (Grubba) else :; fi
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
d300821998-02-27Marcus Comstedt #############################################################################
71b44e1998-06-05Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if float conversion can cause SIGFPE) AC_CACHE_VAL(pike_cv_sys_idiot_sigfpe, [ AC_TRY_RUN([ #include <math.h>
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FPSETMASK fpsetmask(0); #endif
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_idiot_sigfpe=no,pike_cv_sys_idiot_sigfpe=yes, pike_cv_sys_idiot_sigfpe=yes)
71b44e1998-06-05Fredrik Hübinette (Hubbe) ]) if test $pike_cv_sys_idiot_sigfpe = yes ; then AC_MSG_RESULT(yes)
c371d41998-06-07Simon Coggins  IEEE_FLAG=no if test "x${GCC-}" = xyes ; then
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-mieee, mieee, CFLAGS,[],IEEE_FLAG=yes)
c371d41998-06-07Simon Coggins  else
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-ieee, ieee, CFLAGS,[],IEEE_FLAG=yes)
c371d41998-06-07Simon Coggins  fi TEST_IGNORE_SIGFPE=yes
71b44e1998-06-05Fredrik Hübinette (Hubbe) 
c371d41998-06-07Simon Coggins  if test $IEEE_FLAG = yes; then AC_MSG_CHECKING(if float conversion is still broken) AC_CACHE_VAL(pike_cv_sys_idiot_sigfpe_with_ieee,
71b44e1998-06-05Fredrik Hübinette (Hubbe) [
8aa31a1998-06-07Henrik Grubbström (Grubba)  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $OPTIMIZE"
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_TRY_RUN([ #include <math.h>
c371d41998-06-07Simon Coggins 
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FPSETMASK fpsetmask(0); #endif
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_idiot_sigfpe_with_ieee=no,pike_cv_sys_idiot_sigfpe_with_ieee=yes, pike_cv_sys_idiot_sigfpe_with_ieee=yes)
8aa31a1998-06-07Henrik Grubbström (Grubba)  CFLAGS="$OLD_CFLAGS"
71b44e1998-06-05Fredrik Hübinette (Hubbe) ])
c371d41998-06-07Simon Coggins  if test $pike_cv_sys_idiot_sigfpe_with_ieee = yes ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) TEST_IGNORE_SIGFPE=no fi
71b44e1998-06-05Fredrik Hübinette (Hubbe) fi # IEEE_FLAG if test $TEST_IGNORE_SIGFPE = yes; then AC_MSG_CHECKING(if ignoring SIGFPE helps) AC_CACHE_VAL(pike_cv_sys_ignore_sigfpe, [
8aa31a1998-06-07Henrik Grubbström (Grubba)  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $OPTIMIZE"
71b44e1998-06-05Fredrik Hübinette (Hubbe) AC_TRY_RUN([
8aa31a1998-06-07Henrik Grubbström (Grubba) #include <signal.h>
71b44e1998-06-05Fredrik Hübinette (Hubbe) #include <math.h> int counter=0; RETSIGTYPE func(void) { if(counter++>10) exit(7); signal(SIGFPE,func); }
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe)  signal(SIGFPE,func);
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_ignore_sigfpe=yes,pike_cv_sys_ignore_sigfpe=no, pike_cv_sys_ignore_sigfpe=yes)
8aa31a1998-06-07Henrik Grubbström (Grubba)  CFLAGS="$OLD_CFLAGS"
71b44e1998-06-05Fredrik Hübinette (Hubbe) ]) if test "$pike_cv_sys_ignore_sigfpe" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(IGNORE_SIGFPE) else AC_MSG_RESULT(no) fi fi # TEST_IGNORE_SIGFPE else AC_MSG_RESULT(no) fi # pike_cv_sys_idiot_sigfpe #############################################################################
5ff14f1998-05-25Marcus Comstedt define(float_check, [[ #include <math.h> #define TY $1 #define TEST_$1 #define TEST_$2 #define EXPECTED_SIZE_float 4 #define EXPECTED_SIZE_double 8 void check(TY n, char *pf, char *pd) { int i; char *p, *p2 = (char*)&n; #ifdef TEST_float p = pf; #else p = pd; #endif for(i=0; i<sizeof(TY); i++) #ifdef TEST_BIG if(p[i] != p2[i]) exit(1); #else if(p[i] != p2[sizeof(TY)-i-1]) exit(1); #endif } int main() { if(sizeof(TY)!=EXPECTED_SIZE_$1) exit(1); check((TY)0.0, "\000\000\000\000", "\000\000\000\000\000\000\000\000"); check((TY)1.0, "\077\200\000\000", "\077\360\000\000\000\000\000\000"); check((TY)-1.0, "\277\200\000\000", "\277\360\000\000\000\000\000\000"); check((TY)2.0, "\100\000\000\000", "\100\000\000\000\000\000\000\000"); check((TY)1.5, "\077\300\000\000", "\077\370\000\000\000\000\000\000"); check((TY)0.032999999821186065673828125, "\075\007\053\002", "\077\240\345\140\100\000\000\000"); exit(0); } ]]) AC_MSG_CHECKING(for type of float)
32cf262000-08-20Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_float_type, [ AC_TRY_RUN(float_check(float,BIG), pike_cv_float_type=ieee_big, [ AC_TRY_RUN(float_check(float,LITTLE), pike_cv_float_type=ieee_little, pike_cv_float_type=not_ieee, pike_cv_float_type=not_ieee) ], [
1f958f2000-08-21Henrik Grubbström (Grubba)  echo $ac_n "crosscompiling... $ac_c" 1>&6
32cf262000-08-20Henrik Grubbström (Grubba)  # Use some magical constants... cat > conftest.$ac_ext <<EOF dnl This sometimes fails to find confdefs.h, for some reason. dnl [#]line __oline__ "[$]0" [#]line __oline__ "configure" #include "confdefs.h" #include <stdio.h> float float_info[[]] = { 0.0, 14914788644012054221422592.0, 16305677175569252352.0, 0.0 }; EOF if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then if strings "conftest.$ac_objext" | grep "iEeE_bIg" >/dev/null; then pike_cv_float_type=ieee_big
0c4c482010-01-18Henrik Grubbström (Grubba)  elif strings "conftest.$ac_objext" | grep "EeEigIb_" >/dev/null; then pike_cv_float_type=ieee_little else pike_cv_float_type=not_ieee
32cf262000-08-20Henrik Grubbström (Grubba)  fi else
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Object file not found - using default.])
32cf262000-08-20Henrik Grubbström (Grubba)  pike_cv_float_type=not_ieee fi else pike_cv_float_type=not_ieee fi
fdb6982000-08-20Henrik Grubbström (Grubba)  rm -rf conftest*
32cf262000-08-20Henrik Grubbström (Grubba)  ]) ])
5ff14f1998-05-25Marcus Comstedt if test "$pike_cv_float_type" = ieee_big; then AC_MSG_RESULT(IEEE big endian) AC_DEFINE(FLOAT_IS_IEEE_BIG)
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "$pike_cv_float_type" = ieee_little; then AC_MSG_RESULT(IEEE little endian) AC_DEFINE(FLOAT_IS_IEEE_LITTLE)
5ff14f1998-05-25Marcus Comstedt else
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_MSG_RESULT(not IEEE)
5ff14f1998-05-25Marcus Comstedt fi AC_MSG_CHECKING(for type of double)
32cf262000-08-20Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_double_type, [ AC_TRY_RUN(float_check(double,BIG), pike_cv_double_type=ieee_big, [ AC_TRY_RUN(float_check(double,LITTLE), pike_cv_double_type=ieee_little, pike_cv_double_type=not_ieee, pike_cv_double_type=not_ieee) ], [
1f958f2000-08-21Henrik Grubbström (Grubba)  echo $ac_n "crosscompiling... $ac_c" 1>&6
32cf262000-08-20Henrik Grubbström (Grubba)  # Use some magical constants... cat > conftest.$ac_ext <<EOF dnl This sometimes fails to find confdefs.h, for some reason. dnl [#]line __oline__ "[$]0" [#]line __oline__ "configure" #include "confdefs.h" #include <stdio.h> double double_info[[]] = { 0.0, 12794738495187527498222028847205909954314554441725728393516969126669975252147490126864122090122288822751876426313291683594796075946303753742007913302630260537160845833197547903208108732031187791380480.0, 0.0 }; EOF if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then if strings "conftest.$ac_objext" | grep "iEeE_bIg" >/dev/null; then pike_cv_double_type=ieee_big
0c4c482010-01-18Henrik Grubbström (Grubba)  elif strings "conftest.$ac_objext" | grep "gIb_EeEi" >/dev/null; then pike_cv_double_type=ieee_little else pike_cv_double_type=not_ieee
32cf262000-08-20Henrik Grubbström (Grubba)  fi else
0a86982003-11-07Martin Stjernholm  AC_MSG_WARN([Object file not found - using default.])
32cf262000-08-20Henrik Grubbström (Grubba)  pike_cv_float_type=not_ieee fi else pike_cv_float_type=not_ieee fi
fdb6982000-08-20Henrik Grubbström (Grubba)  rm -rf conftest*
32cf262000-08-20Henrik Grubbström (Grubba)  ]) ])
5ff14f1998-05-25Marcus Comstedt if test "$pike_cv_double_type" = ieee_big; then AC_MSG_RESULT(IEEE big endian) AC_DEFINE(DOUBLE_IS_IEEE_BIG)
0c4c482010-01-18Henrik Grubbström (Grubba) elif test "$pike_cv_double_type" = ieee_little; then AC_MSG_RESULT(IEEE little endian) AC_DEFINE(DOUBLE_IS_IEEE_LITTLE)
5ff14f1998-05-25Marcus Comstedt else
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_MSG_RESULT(not IEEE)
5ff14f1998-05-25Marcus Comstedt fi #############################################################################
d300821998-02-27Marcus Comstedt AC_MSG_CHECKING(for volatile) AC_CACHE_VAL(pike_cv_volatile, [ AC_TRY_COMPILE([],[ volatile int foo=1;], pike_cv_volatile=yes,pike_cv_volatile=no) ]) if test "$pike_cv_volatile" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(VOLATILE,volatile) else AC_MSG_RESULT(no) AC_DEFINE(VOLATILE,) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
93b8081995-11-02Fredrik Hübinette (Hubbe) 
61d3cf1998-02-27Marcus Comstedt AC_MSG_CHECKING(for sig_atomic_t) AC_CACHE_VAL(ac_cv_type_sig_atomic_t, [ AC_EGREP_CPP(sig_atomic_t, [ #ifdef HAVE_SIGNAL_H #include <signal.h> #endif
9c9bf22000-08-04Henrik Grubbström (Grubba) #ifdef HAVE_CRT_SIGNAL_H #include <crt/signal.h> #endif
61d3cf1998-02-27Marcus Comstedt #include <sys/types.h> #if STDC_HEADERS #include <stdlib.h> #include <stddef.h>
0c4c482010-01-18Henrik Grubbström (Grubba) #endif ], ac_cv_type_sig_atomic_t=yes, ac_cv_type_sig_atomic_t=no) ])
61d3cf1998-02-27Marcus Comstedt AC_MSG_RESULT($ac_cv_type_sig_atomic_t) if test x"$ac_cv_type_sig_atomic_t" = xno; then AC_DEFINE(sig_atomic_t, int) else : fi
c8a4ce1995-11-20Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if signal handlers reset automatically)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_sys_signal_oneshot,
93b8081995-11-02Fredrik Hübinette (Hubbe) [
0c4c482010-01-18Henrik Grubbström (Grubba)  AC_TRY_RUN([
61d3cf1998-02-27Marcus Comstedt #ifdef HAVE_SIGNAL_H
93b8081995-11-02Fredrik Hübinette (Hubbe) #include <signal.h>
61d3cf1998-02-27Marcus Comstedt #endif #include <sys/types.h> #if STDC_HEADERS #include <stdlib.h> #include <stddef.h> #endif
3a86f22005-12-06Adam Montague #ifdef HAVE_POLL_H #include <poll.h> #endif
450e9d2001-05-08Henrik Grubbström (Grubba) VOLATILE sig_atomic_t sigrun[2]= { 0, 0 };
6077101999-05-15Henrik Grubbström (Grubba) RETSIGTYPE func(int sig) { write(2, "func called\n", sizeof("func called\n") - sizeof(""));
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0] = -1;
6077101999-05-15Henrik Grubbström (Grubba) }
93b8081995-11-02Fredrik Hübinette (Hubbe)  int main() { #define sig SIGSEGV #ifdef HAVE_SIGACTION {
fb140c2002-04-07Marcus Comstedt  static struct sigaction action;
93b8081995-11-02Fredrik Hübinette (Hubbe)  action.sa_handler= func; sigfillset(&action.sa_mask); #ifdef SA_INTERRUPT action.sa_flags=SA_INTERRUPT; #endif sigaction(sig,&action,0); } #else #ifdef HAVE_SIGVEC {
fb140c2002-04-07Marcus Comstedt  static struct sigvec action;
93b8081995-11-02Fredrik Hübinette (Hubbe)  action.sv_handler= func; action.sv_mask=-1; #ifdef SV_INTERRUPT action.sv_flags=SV_INTERRUPT; #endif sigvec(sig,&action,0); } #else signal(sig, func); #endif #endif kill(getpid(), sig);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #ifdef HAVE_POLL
3ce0912003-10-10Henrik Grubbström (Grubba)  struct pollfd sentinel; while(!strlen((char *)sigrun)) poll(&sentinel,0,100);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #else
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) sleep(1);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #endif
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0]=0;
93b8081995-11-02Fredrik Hübinette (Hubbe)  kill(getpid(), sig);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #ifdef HAVE_POLL
3ce0912003-10-10Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) poll(&sentinel,0,100);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #else
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) sleep(1);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #endif
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0]=0;
93b8081995-11-02Fredrik Hübinette (Hubbe)  exit(0); }
0c4c482010-01-18Henrik Grubbström (Grubba)  ],pike_cv_sys_signal_oneshot=no,pike_cv_sys_signal_oneshot=yes,pike_cv_sys_signal_oneshot=yes) ])
93b8081995-11-02Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_sys_signal_oneshot" = yes; then
93b8081995-11-02Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(yes) AC_DEFINE(SIGNAL_ONESHOT) else AC_MSG_RESULT(no) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
93b8081995-11-02Fredrik Hübinette (Hubbe) 
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(available file descriptors)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_max_open_fd,
5267b71995-08-09Fredrik Hübinette (Hubbe) [
0c4c482010-01-18Henrik Grubbström (Grubba)  if test "x$enable_binary" = "xno"; then pike_cv_max_open_fd=256 else AC_TRY_RUN([
5267b71995-08-09Fredrik Hübinette (Hubbe) #include <stdio.h> #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif #ifdef HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif
7014402010-10-26Jonas Wallden #ifdef HAVE_LIMITS_H #include <limits.h> #endif
5267b71995-08-09Fredrik Hübinette (Hubbe)  #ifndef MAX_FD
c0d65d2000-05-20Per Hedbor #define MAX_FD 65536
5267b71995-08-09Fredrik Hübinette (Hubbe) #endif int main() { FILE *f;
f90e541995-08-17Fredrik Hübinette (Hubbe)  long limit;
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
2a50961995-08-23Fredrik Hübinette (Hubbe) #if !defined(RLIMIT_NOFILE) && defined(RLIMIT_OFILE)
f90e541995-08-17Fredrik Hübinette (Hubbe) #define RLIMIT_NOFILE RLIMIT_OFILE #endif
5c8e891995-10-29Fredrik Hübinette (Hubbe)