diff options
Diffstat (limited to '')
-rw-r--r-- | gc/configure.in | 169 |
1 files changed, 142 insertions, 27 deletions
diff --git a/gc/configure.in b/gc/configure.in index aef5ebe..515dae1 100644 --- a/gc/configure.in +++ b/gc/configure.in @@ -13,28 +13,46 @@ dnl Process this file with autoconf to produce configure. -AC_INIT(gcj_mlc.c) +AC_INIT(gc, 6.1, Hans_Boehm@hp.com) + +AM_INIT_AUTOMAKE(gc, 6.1, no-define) + +AC_CONFIG_SRCDIR(gcj_mlc.c) dnl Can't be done in GC_CONFIGURE because that confuses automake. -AC_CONFIG_AUX_DIR(.) +dnl AC_CONFIG_AUX_DIR(.) -AC_CANONICAL_SYSTEM +AC_CANONICAL_HOST -GC_CONFIGURE(.) +AC_PROG_CC +AC_PROG_CXX -AM_PROG_LIBTOOL +AM_PROG_AS +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) -dnl We use these options to decide which functions to include. -AC_ARG_WITH(target-subdir, -[ --with-target-subdir=SUBDIR - configuring with a cross compiler]) -AC_ARG_WITH(cross-host, -[ --with-cross-host=HOST configuring with a cross compiler]) +AC_PROG_INSTALL AM_MAINTAINER_MODE -# automake wants to see AC_EXEEXT. But we don't need it. And having -# it is actually a problem, because the compiler we're passed can't -# necessarily do a full link. So we fool automake here. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "." -a -n "[$]{with_target_subdir}"; then + gc_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + gc_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + gc_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(gc_basedir) + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. if false; then # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands # to nothing, so nothing would remain between `then' and `fi' if it @@ -43,7 +61,11 @@ if false; then AC_EXEEXT fi -AC_MSG_CHECKING([for threads package to use]) +. [$]{srcdir}/configure.host + +GC_CFLAGS=${gc_cflags} +AC_SUBST(GC_CFLAGS) + AC_ARG_ENABLE(threads, [ --enable-threads=TYPE choose threading package], THREADS=$enableval, [ AC_MSG_CHECKING([for thread model used by GCC]) @@ -75,7 +97,7 @@ case "$THREADS" in x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux*) AC_DEFINE(GC_LINUX_THREADS) AC_DEFINE(_REENTRANT) - if test "${enable_parallel_mark}"; then + if test "${enable_parallel_mark}" = yes; then AC_DEFINE(PARALLEL_MARK) fi AC_DEFINE(THREAD_LOCAL_ALLOC) @@ -107,9 +129,30 @@ case "$THREADS" in *-*-irix*) AC_DEFINE(GC_IRIX_THREADS) ;; + *-*-cygwin*) + AC_DEFINE(GC_WIN32_THREADS) + ;; esac ;; - decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks) + win32) + AC_DEFINE(GC_WIN32_THREADS) + dnl Wine getenv may not return NULL for missing entry + AC_DEFINE(NO_GETENV) + ;; + dgux386) + THREADS=dgux386 + # Use pthread GCC switch + THREADLIBS=-pthread + if test "${enable_parallel_mark}" = yes; then + AC_DEFINE(PARALLEL_MARK) + fi + AC_DEFINE(THREAD_LOCAL_ALLOC) + AC_DEFINE(GC_DGUX386_THREADS) + AC_DEFINE(DGUX_THREADS) + # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread + INCLUDES="-pthread $INCLUDES" + ;; + decosf1 | irix | mach | os2 | solaris | dce | vxworks) AC_MSG_ERROR(thread package $THREADS not yet supported) ;; *) @@ -151,21 +194,29 @@ AC_SUBST(INCLUDES) AC_SUBST(CXXINCLUDES) machdep= + case "$host" in -# alpha_mach_dep.s assumes that pointers are not saved in fp registers. -# Gcc on a 21264 can spill pointers to fp registers. Oops. -# alpha*-*-*) -# machdep="alpha_mach_dep.lo" -# ;; - i?86-*-solaris2.[[89]]*) - AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED) - ;; alpha-*-openbsd*) + AC_DISABLE_SHARED + ;; + *) + AC_ENABLE_SHARED + ;; +esac + +case "$host" in + alpha-*-openbsd*) + machdep="alpha_mach_dep.lo" if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled) - AM_DISABLE_SHARED fi ;; + alpha*-*-*) + machdep="alpha_mach_dep.lo" + ;; + i?86-*-solaris2.[[89]]*) + AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED) + ;; mipstx39-*-elf*) machdep="mips_ultrix_mach_dep.lo" AC_DEFINE(STACKBASE, __stackbase) @@ -174,13 +225,22 @@ case "$host" in mips-dec-ultrix*) machdep="mips_ultrix_mach-dep.lo" ;; + mips-nec-sysv*|mips-unknown-sysv*) + ;; mips-*-*) machdep="mips_sgi_mach_dep.lo" AC_DEFINE(NO_EXECUTE_PERMISSION) ;; + sparc-*-netbsd*) + machdep="sparc_netbsd_mach_dep.lo" + ;; sparc-sun-solaris2.3*) + machdep="sparc_mach_dep.lo" AC_DEFINE(SUNOS53_SHARED_LIB) ;; + sparc-sun-solaris2.*) + machdep="sparc_mach_dep.lo" + ;; ia64-*-*) machdep="mach_dep.lo ia64_save_regs_in_stack.lo" ;; @@ -191,6 +251,47 @@ fi addobjs="$addobjs $machdep" AC_SUBST(addobjs) +AC_PROG_LIBTOOL + +dnl checks for AViiON Machines running DGUX +AC_MSG_CHECKING(if host is AViiON running DGUX) +ac_is_dgux=no +AC_CHECK_HEADER(sys/dg_sys_info.h, +[ac_is_dgux=yes;]) + +if test $ac_is_dgux = yes; then + if test "$enable_full_debug" = "yes"; then + CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" + CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" + else + CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" + CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" + fi + AC_SUBST(CFLAGS) + AC_SUBST(CXXFLAGS) +fi + +dnl We use these options to decide which functions to include. +AC_ARG_WITH(target-subdir, +[ --with-target-subdir=SUBDIR + configuring with a cross compiler]) +AC_ARG_WITH(cross-host, +[ --with-cross-host=HOST configuring with a cross compiler]) + +AM_MAINTAINER_MODE +# automake wants to see AC_EXEEXT. But we don't need it. And having +# it is actually a problem, because the compiler we're passed can't +# necessarily do a full link. So we fool automake here. +if false; then + # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands + # to nothing, so nothing would remain between `then' and `fi' if it + # were not for the `:' below. + : + AC_EXEEXT +fi + +AC_MSG_CHECKING([for threads package to use]) + dnl As of 4.13a2, the collector will not properly work on Solaris when dnl built with gcc and -O. So we remove -O in the appropriate case. case "$host" in @@ -252,9 +353,24 @@ AC_ARG_ENABLE(full-debug, AC_MSG_WARN("Client must not use -fomit-frame-pointer.") AC_DEFINE(SAVE_CALL_COUNT, 8) ;; + i[3456]86-*-dgux*) + AC_DEFINE(MAKE_BACK_GRAPH) + ;; esac ] fi) +AC_ARG_ENABLE(redirect-malloc, +[ --enable-redirect-malloc redirect malloc and friends to GC routines]) + +if test "${enable_redirect_malloc}" = yes; then + if test "${enable_full_debug}" = yes; then + AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement) + AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement) + else + AC_DEFINE(REDIRECT_MALLOC, GC_malloc) + fi +fi + AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host") if test "${multilib}" = "yes"; then @@ -266,7 +382,6 @@ fi AC_OUTPUT(Makefile,, srcdir=${srcdir} host=${host} -target=${target} with_multisubdir=${with_multisubdir} ac_configure_args="${multilib_arg} ${ac_configure_args}" CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} |