aboutsummaryrefslogtreecommitdiff
path: root/libjava/configure.ac
diff options
context:
space:
mode:
authorDave Korn <dave.korn.cygwin@gmail.com>2009-09-22 18:58:13 +0000
committerDave Korn <davek@gcc.gnu.org>2009-09-22 18:58:13 +0000
commit6a92b6c7aae7311777f8faafbc52a71104a78a68 (patch)
tree89fb7aceeab12051629b5e047d3df2ddf3ab2894 /libjava/configure.ac
parent502a1e45907d04b3feeec2b3e5e5b80a10e9350f (diff)
downloadgcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.zip
gcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.tar.gz
gcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.tar.bz2
cygming.h (TARGET_USE_JCR_SECTION): Enable.
gcc/ChangeLog * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable. * config/i386/cygwin.h (LIBGCJ_SONAME): Define. * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. libjava/ChangeLog * configure.host (enable_libgcj_sublibs_default): New variable, set for Cygwin and MinGW. * configure.ac (--enable-libgcj-sublibs): New command-line switch. (BUILD_SUBLIBS): New AM_CONDITIONAL relating to it. (libgcj_spec_lgcj_override): New variable, define if building sublibs. (libgcj_spec_lgcj_bc_override): Likewise for when USE_LIBGCJ_BC. (LIBGCJ_SPEC_LGCJ): New variable to abstract "-lgcj" from specs. (LIBGCJ_SPEC_LGCJ_BC): Likewise for when USE_LIBGCJ_BC. (LIBGCJ_SPEC): Use them. * configure: Regenerate. * Makefile.am (LOWER_PACKAGE_FILES_LO): New variable. (ALL_PACKAGE_SOURCE_FILES_LO): Likewise. (NONCORE_PACKAGE_SOURCE_FILES_LO): Likewise. (CORE_PACKAGE_SOURCE_FILES_LO): Likewise. (toolexeclib_LTLIBRARIES): Add libgcj-noncore.la if building sublibs. (libgcj_noncore_la_LIBADD_SUBOBJECTS): New variable. (libgcj_la_LIBADD_SUBOBJECTS): Likewise. (libgcj_la_LDFLAGS_NOUNDEF): Likewise. (libgij_la_LDFLAGS): Add DLL-related options. (libgcj_la_LDFLAGS): Use libgcj_la_LDFLAGS_NOUNDEF and libgcj_la_LIBADD_SUBOBJECTS. (libgcj_la_DEPENDENCIES): Adjust to match. (libgcj_noncore_la_SOURCES, libgcj_noncore_la_LDFLAGS, libgcj_noncore_la_LIBADD, libgcj_noncore_la_DEPENDENCIES, libgcj_noncore_la_LINK): New automake variables for sublibrary. (libgcj_tools_la_LDFLAGS): Add DLL-related flags. (libgcj_tools_la_LIBADD): New variable. (libjvm_la_LDFLAGS): Add DLL-related flags. (lib_gnu_awt_xlib_la_LDFLAGS): Likewise. (libgcj_bc_la_LDFLAGS): Likewise. (libgij_la_DEPENDENCIES): Add dependency on libgcj-noncore.la when building sublibs. (libgcj_tools_la_DEPENDENCIES, libjvm_la_DEPENDENCIES, lib_gnu_awt_xlib_la_DEPENDENCIES, jv_convert_DEPENDENCIES, gcj_dbtool_DEPENDENCIES, gc_analyze_DEPENDENCIES, ecjx_DEPENDENCIES): Likewise. * Makefile.in: Regenerate. * sysdep/i386/backtrace.h (MAIN_FUNC): New #define for main function, set appropriately for Cygwin on that platform or to "main" elsewhere. (fallback_backtrace): Use it to limit stack unwind. libjava/libltdl/ChangeLog: * ltdl.h (LT_SCOPE): Change conditional to avoid breaking auto-export during libgcj DLL linking. * Makefile.am (libltdl_la_LDFLAGS): Remove -bindir switch. * Makefile.in: Regenerate. From-SVN: r152041
Diffstat (limited to 'libjava/configure.ac')
-rw-r--r--libjava/configure.ac36
1 files changed, 34 insertions, 2 deletions
diff --git a/libjava/configure.ac b/libjava/configure.ac
index c6bcbf4..c2418dc 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -206,6 +206,7 @@ AC_EXEEXT
# libgcj_cflags - host specific C compiler flags
# libgcj_cxxflags - host specific C++ compiler flags
# libgcj_javaflags - host specific Java compiler flags
+# and a number of others; see the list at the start of the file.
libgcj_cflags=
libgcj_cxxflags=
@@ -237,6 +238,26 @@ fi
AC_CONFIG_HEADERS([include/config.h gcj/libgcj-config.h])
+# Possibly build libgcj as many sub-libraries.
+AC_ARG_ENABLE(libgcj-sublibs,
+ AS_HELP_STRING([--enable-libgcj-sublibs],
+ [build libgcj as many sub-libraries]))
+
+if test -z "$enable_libgcj_sublibs"; then
+ enable_libgcj_sublibs=$enable_libgcj_sublibs_default
+fi
+AM_CONDITIONAL(BUILD_SUBLIBS, test "$enable_libgcj_sublibs" = yes)
+if test "$enable_libgcj_sublibs" = yes ; then
+ # In theory we could make do with only one override and simply
+ # tag "_bc" onto the end of it when we use it to generate the
+ # spec, but that's an ugly thing to do when there are multiple
+ # words in the string and you're relying on the ordering to
+ # append the correct one.
+ libgcj_spec_lgcj_override="-lgcj-noncore -lgcj"
+ libgcj_spec_lgcj_bc_override="-lgcj-noncore -lgcj_bc"
+fi
+
+
# See if the user has requested runtime debugging.
LIBGCJDEBUG="disable"
AC_SUBST(LIBGCJDEBUG)
@@ -897,6 +918,9 @@ arm*linux*eabi)
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++"
;;
+*-*-cygwin)
+ extra_ldflags_libjava=-liconv
+ ;;
esac
AC_SUBST(extra_ldflags_libjava)
AC_SUBST(extra_gij_ldflags)
@@ -1075,9 +1099,17 @@ 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"
+LIBGCJ_SPEC_LGCJ=-lgcj
+LIBGCJ_SPEC_LGCJ_BC=-lgcj_bc
+if test x"$libgcj_spec_lgcj_override" != x ; then
+ LIBGCJ_SPEC_LGCJ=$libgcj_spec_lgcj_override
+fi
+if test x"$libgcj_spec_lgcj_bc_override" != x ; then
+ LIBGCJ_SPEC_LGCJ_BC=$libgcj_spec_lgcj_bc_override
+fi
+LIBGCJ_SPEC="%{s-bc-abi:} $LIBGCJ_SPEC_LGCJ"
if test "$use_libgcj_bc" = yes; then
- LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
+ LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:$LIBGCJ_SPEC_LGCJ;:$LIBGCJ_SPEC_LGCJ_BC}"
LIBGCJ_BC_SPEC="%{findirect-dispatch:-fPIC}"
fi
AC_SUBST(LIBGCJ_SPEC)