X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libjava%2Fconfigure.ac;h=4cbff945f86d0ec4057671e60ccf7aeca9385759;hb=8154e1e3b6b90344808d1e1fc03203c0e692b662;hp=f21ae91d18a99ceffb8cf25adafaf4b147eac8c0;hpb=9f635d9918d822c45652b2b79ca1a2d4567e1691;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libjava/configure.ac b/libjava/configure.ac index f21ae91d18a..4cbff945f86 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -166,7 +166,7 @@ AC_PATH_PROG([UNZIP], [unzip], unzip) # 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 + echo $srcdir/configure.ac | $JAR -cf@ config-test.jar >/dev/null 2>&1 if test -f config-test.jar; then rm -f config-test.jar else @@ -214,6 +214,16 @@ if test -z "$libgcj_ld_symbolic"; then libgcj_ld_symbolic=$SYMBOLIC_LDFLAGS fi +# for windows native targets enforce export of all symbols for shared libgcj. +libgcj_ld_export_all= +case "$host" in + *mingw*) + libgcj_ld_export_all=-Wl,--export-all-symbols + ;; + *) + ;; +esac + LIBGCJ_CFLAGS="${libgcj_cflags}" LIBGCJ_CXXFLAGS="${libgcj_cxxflags}" LIBGCJ_JAVAFLAGS="${libgcj_javaflags}" @@ -221,6 +231,7 @@ LIBGCJ_SUBLIB_LTFLAGS="${libgcj_sublib_ltflags}" LIBGCJ_SUBLIB_CORE_EXTRA_DEPS="${libgcj_sublib_core_extra_deps}" LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}" LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}" +LIBGCJ_LD_EXPORT_ALL="${libgcj_ld_export_all}" AC_SUBST(LIBGCJ_CFLAGS) AC_SUBST(LIBGCJ_CXXFLAGS) AC_SUBST(LIBGCJ_JAVAFLAGS) @@ -228,6 +239,7 @@ AC_SUBST(LIBGCJ_SUBLIB_LTFLAGS) AC_SUBST(LIBGCJ_SUBLIB_CORE_EXTRA_DEPS) AC_SUBST(LIBGCJ_LD_SYMBOLIC) AC_SUBST(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) +AC_SUBST(LIBGCJ_LD_EXPORT_ALL) # Only use libltdl for non-newlib builds. if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then @@ -394,7 +406,8 @@ NATIVE=yes # Which gcj and host gcj (for ecjx) do we use? which_gcj=default host_exeext=${ac_exeext} -GCJ_FOR_ECJX= +GCJ_FOR_ECJX='$(GCJ)' +GCC_FOR_ECJX='$(CXX)' 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 @@ -402,6 +415,7 @@ if test -n "${with_cross_host}"; then NATIVE=no cross_host_exeext= GCJ_FOR_ECJX="${with_cross_host}-gcj" + GCC_FOR_ECJX="${with_cross_host}-gcc" case "${with_cross_host}" in *mingw* | *cygwin*) cross_host_exeext=.exe @@ -467,6 +481,7 @@ JAVAC="$GCJ -C" export JAVAC AC_SUBST(GCJ_FOR_ECJX) +AC_SUBST(GCC_FOR_ECJX) AC_SUBST(GCJH) AC_SUBST(host_exeext) @@ -544,6 +559,7 @@ AC_SUBST(INCLTDL) AC_SUBST(LIBLTDL) AC_SUBST(DIRLTDL) AC_PROG_LIBTOOL +ACX_LT_HOST_FLAGS AM_PROG_GCJ AM_PROG_CC_C_O @@ -926,6 +942,19 @@ arm*linux*eabi) *-*-cygwin) extra_ldflags_libjava=-liconv ;; +*-*-mingw*) + extra_ldflags_libjava=-lws2_32 + ;; +esac + +LIBMATHSPEC= +# extra LD Flags which are required for targets +case "${host}" in +*-*-darwin*) + ;; +*) + LIBMATHSPEC=-lm + ;; esac # Check for --no-merge-exidx-entries, an ARM-specific linker option. @@ -953,6 +982,7 @@ fi AC_SUBST(extra_ldflags_libjava) AC_SUBST(extra_ldflags) AC_SUBST(LIBSTDCXXSPEC) +AC_SUBST(LIBMATHSPEC) AC_SUBST(LIBGCJTESTSPEC) @@ -1018,7 +1048,7 @@ case "$THREADS" in ;; win32) ;; - decosf1 | irix | mach | os2 | solaris | dce | vxworks) + decosf1 | irix | mach | os2 | dce | vxworks) AC_MSG_ERROR(thread package $THREADS not yet supported) ;; *) @@ -1064,6 +1094,23 @@ case "$THREADS" in THREADLIBS='-lpthread -lrt' THREADSPEC='-lpthread -lrt' ;; + *-*-solaris2.8) + # Always use alternate thread library on Solaris 8. Need libthread + # for TLS support. + # Need -Wl,-R to get it through libtool ... + THREADLIBS='-L/usr/lib/lwp$(MULTISUBDIR) -Wl,-R -Wl,/usr/lib/lwp$(MULTISUBDIR) -lpthread -lthread' + # ... while ld only accepts -R. + THREADSPEC='-L/usr/lib/lwp%{m64:/64} -R/usr/lib/lwp%{m64:/64} -lpthread -lthread' + ;; + *-*-solaris2.9) + # As on Solaris 8, need libthread for TLS support. + THREADLIBS='-lpthread -lthread' + THREADSPEC='-lpthread -lthread' + ;; + *-*-darwin*) + # Don't set THREADLIBS or THREADSPEC as Darwin already + # provides pthread via libSystem. + ;; *) THREADLIBS=-lpthread THREADSPEC=-lpthread @@ -1208,6 +1255,8 @@ else AM_ICONV AM_LC_MESSAGES AC_STRUCT_TIMEZONE + LDLIBICONV=`echo " $LIBICONV " | sed "s/${acl_cv_wl--Wl,}/ /g; s/,/ /g"` + AC_SUBST([LDLIBICONV]) AC_CHECK_FUNCS(gethostbyname_r, [ AC_DEFINE(HAVE_GETHOSTBYNAME_R, 1, @@ -1428,13 +1477,14 @@ else if test "$GC" = boehm; then 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}" - ;; + # While IRIX 6 has libdl for the O32 and N32 ABIs, the N64 one is + # missing. It's unnecessary anyway since dlopen lives in libc. + ;; + *-*-darwin*) + ;; *) AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl") - ;; + ;; esac fi fi @@ -1680,8 +1730,8 @@ case "${host}" in i?86-*-linux*) SIGNAL_HANDLER=include/i386-signal.h ;; - sparc*-sun-solaris*) - SIGNAL_HANDLER=include/sparc-signal.h + *-*-solaris2*) + SIGNAL_HANDLER=include/solaris-signal.h ;; # ia64-*) # SYSDEP_SOURCES=sysdep/ia64.c @@ -1765,15 +1815,42 @@ 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" + [AC_ARG_ENABLE(symvers, + AS_HELP_STRING([--disable-symvers], + [disable symbol versioning for libjava]), + [case "$enableval" in + yes) libjava_cv_anon_version_script=yes ;; + no) libjava_cv_anon_version_script=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]);; + esac], + [libjava_cv_anon_version_script=yes] + ) + if test x$libjava_cv_anon_version_script = xyes; then + save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS" + 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=gnu], + [libjava_cv_anon_version_script=no]) + if test x$libjava_cv_anon_version_script = xno; then + case "$target_os" in + solaris2*) + LDFLAGS="$save_LDFLAGS" + LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map" + # Sun ld doesn't understand wildcards here. + echo '{ global: globalsymbol; local: *; };' > conftest.map + AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},, + [libjava_cv_anon_version_script=sun], []) + ;; + esac + fi + CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS" + fi ]) -AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" = yes) +AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" != no) +AM_CONDITIONAL(ANONVERSCRIPT_GNU, test "$libjava_cv_anon_version_script" = gnu) +AM_CONDITIONAL(ANONVERSCRIPT_SUN, test "$libjava_cv_anon_version_script" = sun) # Check if linker supports static linking on a per library basis LD_START_STATIC_SPEC= @@ -1793,21 +1870,18 @@ AC_SUBST(here) # We get this from the environment. AC_SUBST(GCJFLAGS) +default_python_dir="/share/gcc-`cat ${srcdir}/../gcc/BASE-VER`/python/libjava" AC_ARG_WITH([python-dir], AS_HELP_STRING([--with-python-dir], [the location to install Python modules. This path should NOT include the prefix.]), - [with_python_dir=$withval], [with_python_dir=""]) + [with_python_dir=$withval], [with_python_dir="${default_python_dir}"]) + +# Needed for installing Python modules during make install. +python_mod_dir="\${prefix}${with_python_dir}" + +# Needed for substituting into aot-compile* +python_mod_dir_expanded="${expanded_prefix}${with_python_dir}" -if test "x${with_python_dir}" = "x" -then - # Needed for installing Python modules during make install. - python_mod_dir="\${prefix}/share/python" - # Needed for substituting into aot-compile* - python_mod_dir_expanded="${expanded_prefix}/share/python" -else - python_mod_dir="\${prefix}${with_python_dir}" - python_mod_dir_expanded="${expanded_prefix}${with_python_dir}" -fi AC_MSG_RESULT(Python modules dir: ${python_mod_dir_expanded}); AC_SUBST(python_mod_dir) AC_SUBST(python_mod_dir_expanded)