X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libjava%2Fconfigure.ac;h=2ef3b7245b0a58d13a1b2ec66c11ec09f0f1959d;hb=323e4f4328194541c37b62c094e366863a96304a;hp=cc53350cd79cdfb03b4ca818b645a17c7588b28d;hpb=ffde862e033a0825e1e9972a89c0f1f80b261a8e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libjava/configure.ac b/libjava/configure.ac index cc53350cd79..2ef3b7245b0 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -15,27 +15,8 @@ AC_ARG_WITH(target-subdir, # We may get other options which we don't document: # --with-target-subdir, --with-multisrctop, --with-multisubdir -# When building with srcdir == objdir, links to the source files will -# be created in directories within the target_subdir. We have to -# adjust toplevel_srcdir accordingly, so that configure finds -# install-sh and other auxiliary files that live in the top-level -# source directory. -if test "${srcdir}" = "."; then - if test -z "${with_target_subdir}"; then - toprel=".." - else - if test "${with_target_subdir}" != "."; then - toprel="${with_multisrctop}../.." - else - toprel="${with_multisrctop}.." - fi - fi -else - toprel=".." -fi - -libgcj_basedir=$srcdir/$toprel/./libjava -AC_SUBST(libgcj_basedir) +# Find the rest of the source tree framework. +AM_ENABLE_MULTILIB(, ..) AC_CANONICAL_SYSTEM _GCC_TOPLEV_NONCANONICAL_BUILD @@ -74,16 +55,6 @@ AC_ARG_ENABLE(version-specific-runtime-libs, [version_specific_libs=no] ) -# Default to --enable-multilib -AC_ARG_ENABLE(multilib, - AS_HELP_STRING([--enable-multilib], - [build many library versions (default)]), -[case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; - esac], [multilib=yes])dnl - AC_ARG_ENABLE(plugin, AS_HELP_STRING([--enable-plugin], [build gcjwebplugin web browser plugin]), @@ -106,6 +77,11 @@ AC_ARG_ENABLE(gconf-peer, [gconf_enabled=no] ) +AC_ARG_ENABLE(java-maintainer-mode, + AS_HELP_STRING([--enable-java-maintainer-mode], + [allow rebuilding of .class and .h files])) +AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes) + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX. GCC_NO_EXECUTABLES @@ -119,7 +95,6 @@ GCC_NO_EXECUTABLES # (5) For libstdc++-v3, -fno-builtin must be present here so that a # non-conflicting form of std::exit can be guessed by AC_PROG_CXX, and # used in later tests. This may not be necessary in libjava; I don't know. -m4_define([ac_cv_prog_CXX],[glibcxx_cv_prog_CXX]) m4_rename([_AC_ARG_VAR_PRECIOUS],[glibcxx_PRECIOUS]) m4_define([_AC_ARG_VAR_PRECIOUS],[]) save_CXXFLAGS="$CXXFLAGS" @@ -139,17 +114,29 @@ AC_CHECK_TOOL(LD, ld) AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_PROG_AWK -AC_CHECK_PROGS([JAR], [jar fastjar], no) +AC_CHECK_PROGS([JAR], [jar fastjar gjar], no) AC_PATH_PROG([ZIP], [zip], no) AC_PATH_PROG([UNZIP], [unzip], unzip) -AM_CONDITIONAL(BASH_JAR, test "$JAR" = no) -if test "$ZIP" = no; then - if test "$JAR" = no; then + +# We need a jar that supports -@. This is a GNU extension. +if test "$JAR" != no; then + rm -f config-test.jar + echo $srcdir/configure.ac | $JAR -cf@ config-test.jar + if test -f config-test.jar; then + rm -f config-test.jar + else + JAR=no + fi +fi + +# Prefer the jar we found, but fall back to our jar script. +if test "$JAR" = no; then + if test "$ZIP" = no; then AC_MSG_ERROR([cannot find neither zip nor jar, cannot continue]) + else + # InfoZIP available, use the 'guaranteed' Bourne-shell JAR to build libjava + JAR=`pwd`/scripts/jar fi -else - # InfoZIP available, use the 'guaranteed' Bourne-shell JAR to build libjava - JAR=`pwd`/scripts/jar fi AC_PROG_INSTALL @@ -169,14 +156,22 @@ libgcj_javaflags= . ${srcdir}/configure.host +ACX_PROG_LD_GNU_SYMBOLIC +libgcj_ld_symbolic_functions=$SYMBOLIC_LDFLAGS +if test -z "$libgcj_ld_symbolic"; then + libgcj_ld_symbolic=$SYMBOLIC_LDFLAGS +fi + LIBGCJ_CFLAGS="${libgcj_cflags}" LIBGCJ_CXXFLAGS="${libgcj_cxxflags}" LIBGCJ_JAVAFLAGS="${libgcj_javaflags}" LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}" +LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}" AC_SUBST(LIBGCJ_CFLAGS) AC_SUBST(LIBGCJ_CXXFLAGS) AC_SUBST(LIBGCJ_JAVAFLAGS) AC_SUBST(LIBGCJ_LD_SYMBOLIC) +AC_SUBST(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) # Only use libltdl for non-newlib builds. if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then @@ -196,6 +191,24 @@ AC_ARG_ENABLE(libgcj-debug, LIBGCJDEBUG="enable" fi]) +AC_ARG_WITH([escher], + AS_HELP_STRING([--with-escher=ABS.PATH], + [specify path to escher dir or JAR for X peers])) +case "$with_escher" in +"") + use_escher=false + ;; +"no") + use_escher=false + ;; +"yes") + AC_MSG_ERROR([Please supply an absolute path to Escher library]) + ;; +*) + use_escher=true + ;; +esac + # Determine which AWT peer libraries to build AC_ARG_ENABLE(java-awt, AS_HELP_STRING([--enable-java-awt], @@ -205,6 +218,7 @@ peerlibs="`echo ${enable_java_awt} | tr ',' ' '`" use_xlib_awt="" use_gtk_awt="" use_qt_awt="" +use_x_awt="" # The default toolkit to use is the first one specified. TOOLKIT= AC_SUBST(TOOLKIT) @@ -245,10 +259,17 @@ for peer in $peerlibs ; do fi fi ;; + x) + use_x_awt=yes + if test -z "$TOOLKIT"; then + TOOLKIT=gnu.java.awt.peer.x.XToolkit + fi + ;; no) use_xlib_awt= use_gtk_awt= use_qt_awt= + use_x_awt= break ;; *) @@ -258,6 +279,11 @@ for peer in $peerlibs ; do done AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes) +AM_CONDITIONAL(X_AWT, test "$use_x_awt" = yes) + +AC_DEFINE_UNQUOTED(AWT_TOOLKIT, "$TOOLKIT", [Name of default AWT toolkit]) + +AC_DEFINE_UNQUOTED(LIBGCJ_PREFIX, "$prefix", [Installation prefix]) # Create standard.omit based on decisions we just made. cp $srcdir/standard.omit.in standard.omit @@ -265,6 +291,16 @@ if test "$use_xlib_awt" != yes; then echo gnu/awt/xlib >> standard.omit echo gnu/gcj/xlib >> standard.omit fi +if test "$use_x_awt" != yes; then + echo gnu/java/awt/peer/x >> standard.omit +fi + +# Tools that need to be compiled against classpath's tools classes +: > vm-tools-packages +for package in gnu/gcj/tools/gc_analyze ; do + echo $package >> standard.omit + echo $package >> vm-tools-packages +done if test -z "${with_multisubdir}"; then builddotdot=. @@ -274,19 +310,23 @@ fi NATIVE=yes -# Which gcj do we use? +# Which gcj and host gcj (for ecjx) do we use? which_gcj=default +host_exeext=${ac_exeext} +GCJ_FOR_ECJX= built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" if test -n "${with_cross_host}"; then # We are being configured with a cross compiler. We can't # use ac_exeext, because that is for the target platform. NATIVE=no cross_host_exeext= + GCJ_FOR_ECJX="${with_cross_host}-gcj" case "${with_cross_host}" in *mingw* | *cygwin*) cross_host_exeext=.exe ;; esac + host_exeext=${cross_host_exeext} if test -x "${built_gcc_dir}/gcj${cross_host_exeext}"; then if test x"$build_noncanonical" = x"$with_cross_host"; then # Ordinary cross (host!=target and host=build) @@ -333,7 +373,9 @@ case "${which_gcj}" in ;; esac +AC_SUBST(GCJ_FOR_ECJX) AC_SUBST(GCJH) +AC_SUBST(host_exeext) # Create it, so that compile/link tests don't fail test -f libgcj.spec || touch libgcj.spec @@ -343,7 +385,8 @@ test -f libgcj.spec || touch libgcj.spec # Set up to configure Classpath. # FIXME: no supported way to pass args in autoconf. ac_configure_args="$ac_configure_args --with-fastjar=$JAR" -ac_configure_args="$ac_configure_args --enable-tool-wrappers" +# Disable tool wrappers to avoid ltdl.h configure check. +ac_configure_args="$ac_configure_args --disable-tool-wrappers" ac_configure_args="$ac_configure_args --disable-load-library" ac_configure_args="$ac_configure_args --${LIBGCJDEBUG}-debug" ac_configure_args="$ac_configure_args --enable-default-toolkit=$TOOLKIT" @@ -362,7 +405,7 @@ if test "$gconf_enabled" != yes; then ac_configure_args="$ac_configure_args --enable-default-preferences-peer=gnu.java.util.prefs.FileBasedFactory" fi if test "$use_gtk_awt" != yes; then - ac_configure_args="$ac_configure_args --disable-gtk-peer" + ac_configure_args="$ac_configure_args --disable-gtk-peer --disable-plugin" fi if test "$use_qt_awt" != yes; then ac_configure_args="$ac_configure_args --disable-qt-peer" @@ -370,6 +413,18 @@ else # We need this as qt is disabled by default in classpath. ac_configure_args="$ac_configure_args --enable-qt-peer" fi +if test "$use_x_awt" != yes; then + ac_configure_args="$ac_configure_args --without-escher" +else + # We need this as escher is disabled by default in classpath. + if test "$use_escher" != true; then + AC_MSG_ERROR([Please supply an absolute path to the Escher library]) + else + ac_configure_args="$ac_configure_args --with-escher=$with_escher" + fi +fi +# -Werror causes unavoidable problems in code using alsa. +ac_configure_args="$ac_configure_args --disable-Werror" dnl --with-gcj=$GCJ dnl --with-javah=$GCJH dnl gjdoc? @@ -435,6 +490,23 @@ if test -z "$enable_hash_synchronization"; then enable_hash_synchronization=$enable_hash_synchronization_default fi + +install_ecj_jar=no +ECJ_BUILD_JAR= +ECJ_JAR= +AC_ARG_WITH(ecj-jar, + AS_HELP_STRING([--with-ecj-jar=FILE], [use preinstalled ecj jar]), + [ECJ_JAR=$withval], + [if test -f $multi_basedir/ecj.jar; then + ECJ_BUILD_JAR=$multi_basedir/ecj.jar + ECJ_JAR='$(jardir)/ecj.jar' + install_ecj_jar=yes + fi]) +AC_SUBST(ECJ_BUILD_JAR) +AC_SUBST(ECJ_JAR) +AM_CONDITIONAL(BUILD_ECJ1, test "$ECJ_JAR" != "") +AM_CONDITIONAL(INSTALL_ECJ_JAR, test $install_ecj_jar = yes) + AC_ARG_WITH(java-home, AS_HELP_STRING([--with-java-home=DIRECTORY], [value of java.home system property]), @@ -442,6 +514,15 @@ AC_ARG_WITH(java-home, AM_CONDITIONAL(JAVA_HOME_SET, test ! -z "$JAVA_HOME") AC_SUBST(JAVA_HOME) +suppress_libgcj_bc=no +AC_ARG_ENABLE(libgcj-bc, + AS_HELP_STRING([--enable-libgcj-bc], + [enable(default) or disable BC ABI for portions of libgcj]), + [if test "$enable_libgcj_bc" = "no"; then + suppress_libgcj_bc=yes + fi]) +AM_CONDITIONAL(SUPPRESS_LIBGCJ_BC, test "$suppress_libgcj_bc" = "yes") + # What is the native OS API for MinGW? AC_ARG_WITH(win32-nlsapi, AS_HELP_STRING([--with-win32-nlsapi=ansi or unicows or unicode], @@ -492,6 +573,7 @@ if test "$libgcj_interpreter" = yes; then fi INTERPRETER="$libgcj_interpreter" AC_SUBST(INTERPRETER) +AM_CONDITIONAL(INTERPRETER, test "$libgcj_interpreter" = yes) AC_MSG_CHECKING([for exception model to use]) AC_LANG_PUSH(C++) @@ -599,7 +681,6 @@ AC_ARG_WITH(ecos, TARGET_ECOS="$with_ecos" ) -PLATFORM_INNER_NAT_HDRS= case "$TARGET_ECOS" in no) case "$host" in *mingw*) @@ -612,7 +693,6 @@ case "$TARGET_ECOS" in PLATFORM=Posix PLATFORMNET=Posix PLATFORMH=posix.h - PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h' ;; esac ;; @@ -623,7 +703,7 @@ case "$TARGET_ECOS" in PLATFORMH=posix.h ;; esac -AC_SUBST(PLATFORM_INNER_NAT_HDRS) +AC_SUBST(PLATFORM) AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH) AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, @@ -644,10 +724,8 @@ case "$host" in esac AM_CONDITIONAL(USING_DARWIN_CRT, $DARWIN_CRT) -# These may not be defined in a non-ANS conformant embedded system. +# This may not be defined in a non-ANS conformant embedded system. # FIXME: Should these case a runtime exception in that case? -AC_EGREP_HEADER(mktime, time.h, AC_DEFINE(HAVE_MKTIME, 1, - [Define is you have 'mktime' in ])) AC_EGREP_HEADER(localtime, time.h, AC_DEFINE(HAVE_LOCALTIME, 1, [Define is you have 'localtime' in ])) @@ -658,14 +736,13 @@ test -d java/io || mkdir java/io test -d gnu || mkdir gnu AC_CONFIG_LINKS(java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc) -# Likewise for ConcreteProcess.java and natConcreteProcess.cc. +# Likewise for natConcreteProcess.cc. test -d java/lang || mkdir java/lang -AC_CONFIG_LINKS(java/lang/ConcreteProcess.java:java/lang/${PLATFORM}Process.java) AC_CONFIG_LINKS(java/lang/natConcreteProcess.cc:java/lang/nat${PLATFORM}Process.cc) -# Likewise for natInetAddress.cc and natVMNetworkInterface.cc. +# Likewise for natVMInetAddress.cc and natVMNetworkInterface.cc. test -d java/net || mkdir java/net -AC_CONFIG_LINKS(java/net/natInetAddress.cc:java/net/natInetAddress${PLATFORMNET}.cc) +AC_CONFIG_LINKS(java/net/natVMInetAddress.cc:java/net/natVMInetAddress${PLATFORMNET}.cc) AC_CONFIG_LINKS(java/net/natVMNetworkInterface.cc:java/net/natVMNetworkInterface${PLATFORMNET}.cc) # Likewise for natPlainSocketImpl.cc and natPlainDatagramSocketImpl.cc. @@ -674,10 +751,12 @@ test -d gnu/java/net || mkdir gnu/java/net AC_CONFIG_LINKS(gnu/java/net/natPlainSocketImpl.cc:gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc) AC_CONFIG_LINKS(gnu/java/net/natPlainDatagramSocketImpl.cc:gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc) -# Likewise for natPipeImpl.cc and natSelectorImpl.cc. +# Likewise for natVMPipe.cc and natVMSelector.cc. test -d gnu/java/nio || mkdir gnu/java/nio -AC_CONFIG_LINKS(gnu/java/nio/natPipeImpl.cc:gnu/java/nio/natPipeImpl${PLATFORM}.cc) -AC_CONFIG_LINKS(gnu/java/nio/natSelectorImpl.cc:gnu/java/nio/natSelectorImpl${PLATFORM}.cc) +AC_CONFIG_LINKS(gnu/java/nio/natVMPipe.cc:gnu/java/nio/natVMPipe${PLATFORM}.cc) +AC_CONFIG_LINKS(gnu/java/nio/natVMSelector.cc:gnu/java/nio/natVMSelector${PLATFORM}.cc) + +# Likewise for natFileChannelImpl.cc test -d gnu/java/nio/channels || mkdir gnu/java/nio/channels AC_CONFIG_LINKS(gnu/java/nio/channels/natFileChannelImpl.cc:gnu/java/nio/channels/natFileChannel${FILE-${PLATFORM}}.cc) @@ -694,9 +773,6 @@ case "${host}" in esac AC_SUBST(SYSTEMSPEC) -LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs" -AC_SUBST(LIBGCJTESTSPEC) - AC_ARG_WITH(system-zlib, AS_HELP_STRING([--with-system-zlib], [use installed libz])) @@ -710,6 +786,9 @@ AC_PATH_XTRA # FIXME: this should be _libs on some hosts. libsubdir=.libs +LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs" + +LIBSTDCXXSPEC= # extra LD Flags which are required for targets case "${host}" in *-*-darwin[[0-7]].*) @@ -718,8 +797,24 @@ case "${host}" in # on Darwin -single_module speeds up loading of the dynamic libraries. extra_ldflags_libjava=-Wl,-single_module ;; +*-*-darwin[[9]]*) + extra_gij_ldflags=-Wl,-allow_stack_execute + ;; +arm*linux*eabi) + # Some of the ARM unwinder code is actually in libstdc++. We + # could in principle replicate it in libgcj, but it's better to + # have a dependency on libstdc++. + extra_ldflags='-L$(here)/../libstdc++-v3/src/.libs -lstdc++' + LIBSTDCXXSPEC=-lstdc++ + LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++" + ;; esac AC_SUBST(extra_ldflags_libjava) +AC_SUBST(extra_gij_ldflags) +AC_SUBST(extra_ldflags) +AC_SUBST(LIBSTDCXXSPEC) + +AC_SUBST(LIBGCJTESTSPEC) # Allow the GC to be disabled. Can be useful when debugging. AC_MSG_CHECKING([for garbage collector to use]) @@ -881,12 +976,19 @@ AC_SUBST(THREADCXXFLAGS) AM_CONDITIONAL(USING_POSIX_THREADS, test "$THREADS" = posix) AM_CONDITIONAL(USING_WIN32_THREADS, test "$THREADS" = win32) AM_CONDITIONAL(USING_NO_THREADS, test "$THREADS" = none) +AM_CONDITIONAL(USE_LIBGCJ_BC, test "$use_libgcj_bc" = yes) if test -d sysdep; then true; else mkdir sysdep; fi AC_CONFIG_LINKS(sysdep/locks.h:sysdep/$sysdeps_dir/locks.h) AC_CONFIG_LINKS(sysdep/backtrace.h:$fallback_backtrace_h) AC_CONFIG_LINKS(sysdep/descriptor.h:$descriptor_h) +LIBGCJ_SPEC="%{s-bc-abi:} -lgcj" +if test "$use_libgcj_bc" = yes; then + LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}" +fi +AC_SUBST(LIBGCJ_SPEC) + HASH_SYNC_SPEC= # Hash synchronization is only useful with posix threads right now. if test "$enable_hash_synchronization" = yes && test "$THREADS" != "none"; then @@ -898,7 +1000,7 @@ AC_SUBST(HASH_SYNC_SPEC) AM_CONDITIONAL(USING_GCC, test "$GCC" = yes) # We're in the tree with gcc, and need to include some of its headers. -GCC_UNWIND_INCLUDE='-I$(libgcj_basedir)/../gcc' +GCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../gcc' if test "x${with_newlib}" = "xyes"; then # We are being configured with a cross compiler. AC_REPLACE_FUNCS @@ -909,42 +1011,43 @@ if test "x${with_newlib}" = "xyes"; then # we'll have. AC_DEFINE(HAVE_MEMMOVE, 1, [Define if you have memmove.]) AC_DEFINE(HAVE_MEMCPY, 1, [Define if you have memcpy.]) - AC_DEFINE(HAVE_STRERROR, 1, [Define if you have strerror.]) AC_DEFINE(HAVE_TIME, 1, [Define if you have time.]) AC_DEFINE(HAVE_GMTIME_R, 1, [Define if you have the 'gmtime_r' function]) AC_DEFINE(HAVE_LOCALTIME_R, 1, [Define if you have the 'localtime_r' function.]) AC_DEFINE(HAVE_USLEEP_DECL, 1, [Define if usleep is declared in .]) # This is only for POSIX threads. AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT, 1, [Define if using POSIX threads that have the mutexattr functions.]) - # We also assume we are using gcc, which provides alloca. - AC_DEFINE(HAVE_ALLOCA) # Assume we do not have getuid and friends. AC_DEFINE(NO_GETUID, 1, [Define if getuid() and friends are missing.]) PLATFORMNET=NoNet else - AC_CHECK_FUNCS([strerror ioctl select fstat open fsync sleep opendir \ - gmtime_r localtime_r readdir_r getpwuid_r getcwd \ + AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \ + localtime_r getpwuid_r getcwd \ access stat lstat mkdir rename rmdir unlink utime chmod readlink \ nl_langinfo setlocale \ inet_pton uname inet_ntoa \ - fork execvp pipe sigaction ftruncate mmap \ + getrlimit sigaction ftruncate mmap \ getifaddrs]) AC_CHECK_FUNCS(inet_aton inet_addr, break) - AC_CHECK_HEADERS(execinfo.h unistd.h dlfcn.h) + AC_CHECK_HEADERS(unistd.h dlfcn.h sys/resource.h) # Do an additional check on dld, HP-UX for example has dladdr in libdld.sl AC_CHECK_LIB(dl, dladdr, [ AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()])], [ AC_CHECK_LIB(dld, dladdr, [ AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()])])]) - if test x"$build" = x"$host"; then + if test x"$cross_compiling" = x"no"; then AC_CHECK_FILES(/proc/self/exe, [ AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])]) + AC_CHECK_FILES(/proc/self/maps, [ + AC_DEFINE(HAVE_PROC_SELF_MAPS, 1, + [Define if you have /proc/self/maps])]) else case $host in *-linux*) AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe]) + AC_DEFINE(HAVE_PROC_SELF_MAPS, 1, [Define if you have /proc/self/maps]) ;; esac fi @@ -1035,9 +1138,6 @@ else if test "$THREADS" = posix; then save_LIBS="$LIBS" LIBS="$LIBS $THREADLIBS" - # Some POSIX thread systems don't have pthread_mutexattr_settype. - # E.g., Solaris. - AC_CHECK_FUNCS(pthread_mutexattr_settype pthread_mutexattr_setkind_np) # Look for sched_yield. Up to Solaris 2.6, it is in libposix4, since # Solaris 7 the name librt is preferred. @@ -1173,7 +1273,16 @@ else # On Solaris, and maybe other architectures, the Boehm collector # requires -ldl. if test "$GC" = boehm; then - AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl") + case "${host}" in + mips-sgi-irix6*) + # IRIX 6 lacks a N64 libdl.so, but only the N32 (default multilib) + # libgcj.spec is used, so override here + SYSTEMSPEC="$SYSTEMSPEC %{!mabi=64:-ldl}" + ;; + *) + AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl") + ;; + esac fi fi @@ -1203,6 +1312,7 @@ if test ! -f gnu/classpath/Configuration.java; then -e "s,@default_toolkit@,$TOOLKIT," \ -e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \ -e "s,@GTK_CAIRO_ENABLED@,false," \ + -e "s,@ECJ_JAR@,," \ < $srcdir/classpath/gnu/classpath/Configuration.java.in \ > gnu/classpath/Configuration.java # We do not want to redirect the output of the grep below to /dev/null, @@ -1246,6 +1356,7 @@ AC_SUBST(BACKTRACESPEC) AC_SUBST(IEEESPEC) AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes) +AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = yes) AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes) AC_SUBST(GCC_UNWIND_INCLUDE) @@ -1282,29 +1393,29 @@ AC_SUBST(toolexecdir) AC_SUBST(toolexecmainlibdir) AC_SUBST(toolexeclibdir) +# Determine gcj and libgcj version number. +gcjversion=`cat "$srcdir/../gcc/BASE-VER"` +libgcj_soversion=`awk -F: '/^[[^#]].*:/ { print $1 }' $srcdir/libtool-version` +GCJVERSION=$gcjversion +AC_SUBST(GCJVERSION) +AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID]) + # Determine where the standard .db file and GNU Classpath JNI # libraries are found. +gcjsubdir=gcj-$gcjversion-$libgcj_soversion multi_os_directory=`$CC -print-multi-os-directory` case $multi_os_directory in .) - dbexecdir='$(libdir)/gcj-$(gcc_version)' # Avoid /. - ac_configure_args="$ac_configure_args --with-native-libdir=\$\(libdir\)/gcj-`cat $srcdir/../gcc/BASE-VER`" + dbexecdir='$(libdir)/'$gcjsubdir # Avoid /. ;; *) - dbexecdir='$(libdir)/'$multi_os_directory'/gcj-$(gcc_version)' - ac_configure_args="$ac_configure_args --with-native-libdir=\$\(libdir\)/$multi_os_directory/gcj-`cat $srcdir/../gcc/BASE-VER`" + dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir ;; esac AC_SUBST(dbexecdir) -# Determine gcj version number. -gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([[^ ]]*\).*$/\1/p'` -GCJVERSION=$gcjversion -AC_SUBST(GCJVERSION) -AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID]) - -AC_DEFINE(JV_VERSION, "1.4.2", [Compatibility version string]) -AC_DEFINE(JV_API_VERSION, "1.4", [API compatibility version string]) +AC_DEFINE(JV_VERSION, "1.5.0", [Compatibility version string]) +AC_DEFINE(JV_API_VERSION, "1.5", [API compatibility version string]) TL_AC_GXX_INCLUDE_DIR @@ -1317,14 +1428,18 @@ AC_CHECK_HEADERS([unistd.h bstring.h sys/time.h sys/types.h fcntl.h \ sys/ioctl.h sys/filio.h sys/stat.h sys/select.h \ sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h \ pwd.h sys/config.h stdint.h langinfo.h locale.h \ - dirent.h sys/rw_lock.h ifaddrs.h]) + dirent.h sys/rw_lock.h magic.h ifaddrs.h]) AC_CHECK_HEADERS(inttypes.h, [ AC_DEFINE(HAVE_INTTYPES_H, 1, [Define if is available]) AC_DEFINE(JV_HAVE_INTTYPES_H, 1, [Define if is available]) ]) -AC_HEADER_SYS_WAIT AC_CHECK_TYPE([ssize_t], [int]) +AC_CHECK_TYPE([magic_t], [ + AC_DEFINE(HAVE_MAGIC_T, 1, [Define if magic.h declares magic_t])], [], [ +#ifdef HAVE_MAGIC_H +#include +#endif]) AC_MSG_CHECKING([for in_addr_t]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include @@ -1391,8 +1506,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm tim; tim.t AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])]) -AC_FUNC_ALLOCA - AC_CHECK_PROGS(PERL, perl, false) SYSDEP_SOURCES= @@ -1443,7 +1556,10 @@ case "${host}" in mips*-*-linux*) SIGNAL_HANDLER=include/mips-signal.h ;; - *-*-darwin*) + m68*-*-linux*) + SIGNAL_HANDLER=include/dwarf2-signal.h + ;; + powerpc*-*-darwin* | i?86-*-darwin9* | x86_64-*-darwin9*) SIGNAL_HANDLER=include/darwin-signal.h ;; *) @@ -1475,6 +1591,22 @@ fi # See if we support thread-local storage. GCC_CHECK_TLS +# For _Unwind_GetIPInfo. +GCC_CHECK_UNWIND_GETIPINFO + +# See if linker supports anonymous version scripts. +AC_CACHE_CHECK([whether ld supports anonymous version scripts], + [libjava_cv_anon_version_script], + [save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS" + libjava_cv_anon_version_script=no + CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map" + echo '{ global: globalsymb*; local: *; };' > conftest.map + AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},, + [libjava_cv_anon_version_script=yes], []) + CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS" + ]) +AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" = yes) + # Check if linker supports static linking on a per library basis LD_START_STATIC_SPEC= LD_FINISH_STATIC_SPEC= @@ -1503,33 +1635,11 @@ include/Makefile testsuite/Makefile ]) -AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar]) - -AC_CONFIG_COMMANDS([default], -[# Only add multilib support code if we just rebuilt top-level Makefile. -case " $CONFIG_FILES " in - *" Makefile "*) - LD="${ORIGINAL_LD_FOR_MULTILIBS}" - ac_file=Makefile . ${libgcj_basedir}/../config-ml.in - ;; -esac -for ac_multi_file in $CONFIG_FILES; do - case $ac_multi_file in - */Makefile) - grep "^MULTI[[^ ]]* =" Makefile >> "$ac_multi_file" ;; - esac -done -], -srcdir=${srcdir} -host=${host} -target=${target} -with_multisubdir=${with_multisubdir} -ac_configure_args="${multilib_arg} ${ac_configure_args}" -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -libgcj_basedir=${libgcj_basedir} -CC="${CC}" -CXX="${CXX}" -ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}" -) +if test ${multilib} = yes; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi +AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar]) AC_OUTPUT