aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog53
-rw-r--r--libjava/Makefile.am93
-rw-r--r--libjava/Makefile.in164
-rwxr-xr-xlibjava/configure89
-rw-r--r--libjava/configure.ac38
-rw-r--r--libjava/configure.host3
-rw-r--r--libjava/include/solaris-signal.h (renamed from libjava/include/sparc-signal.h)0
-rw-r--r--libjava/libgcj.ver10
8 files changed, 363 insertions, 87 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index f90cd353ea0..7d01621d390 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,56 @@
+2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (*-*-solaris2.8): Use alternate thread library.
+ Add libthread.
+ (*-*-solaris2.9): Use libthread.
+ * configure: Regenerate.
+
+2010-07-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * include/sparc-signal.h: Renamed to ...
+ * include/solaris-signal.h: ... this.
+ * configure.ac: Use it on any *-*-solaris2* target.
+ * configure: Regenerate.
+ * configure.host (i?86-*-solaris2*): Set can_unwind_signal=yes.
+ * Makefile.am (prims.lo): Add -fno-omit-frame-pointer to AM_CXXFLAGS.
+ * Makefile.in: Regenerate.
+
+2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (ANONVERSCRIPT): Handle sun style.
+ Define ANONVERSCRIPT_GNU, ANONVERSCRIPT_SUN automake conditionals.
+ * configure: Regenerate.
+
+ * Makefile.am [ANONVERSCRIPT]: Protect GNU section with
+ ANONVERSCRIPT_GNU.
+ Introduce per-library $(lib)_la_version_arg, $(lib)_la_version_dep
+ variables.
+ [ANONVERSCRIPT_GNU] (version_arg): Default ld arg for version map.
+ (version_dep): Likewise for dependency.
+ Use them to set the per-library variables.
+ [!ANONVERSCRIPT]: Provide them vor the unversioned case.
+ [ANONVERSCRIPT_SUN]: Handle Sun symbol versioning.
+ (libgcj_la_DEPENDENCIES): Unconditionally use
+ $(libgcj_la_version_dep).
+ (libgcj_la_LINK): Add $(libgcj_la_version_arg).
+ (libgcj_noncore_la_DEPENDENCIES): Unconditionally use
+ $(libgcj_la_version_dep).
+ (libgcj_tools_la_LIBADD): Move -lm ...
+ (libgcj_tools_la_LDFLAGS): ... here.
+ (libgcj_tools_la_DEPENDENCIES): Add
+ $(libgcj_tools_la_version_dep).
+ (libgcj_tools_la_LINK): Add $(libgcj_tools_la_version_arg).
+ (lib_gnu_awt_xlib_la_DEPENDENCIES): Add
+ $(lib_gnu_awt_xlib_la_version_dep).
+ (lib_gnu_awt_xlib_la_LINK): Add
+ $(lib_gnu_awt_xlib_la_version_arg).
+ (libgcj_bc_la_DEPENDENCIES): Add $(libgcj_bc_la_version_dep).
+ (libgcj_bc_la_LINK): $(libgcj_bc_la_version_arg).
+ [ANONVERSCRIPT && ANONVERSCRIPT_SUN] (%.ver-sun): New pattern rule.
+ * Makefile.in: Regenerate.
+
+ * libgcj.ver: Reformat.
+
2010-06-10 Peter O'Gorman <peter@pogma.com>
* configure.ac: Set SYSTEMSPEC so that -allow_stack_execute is not
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 190c686e65e..7b67ed0e1e7 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -291,7 +291,45 @@ extra_ldflags_libjava = @extra_ldflags_libjava@
extra_ldflags = @extra_ldflags@
if ANONVERSCRIPT
-extra_ldflags_libjava += -Wl,--version-script=$(srcdir)/libgcj.ver
+if ANONVERSCRIPT_GNU
+version_arg = -Wl,--version-script=$(srcdir)/libgcj.ver
+libgcj_la_version_arg = $(version_arg)
+libgcj_tools_la_version_arg = $(version_arg)
+lib_gnu_awt_xlib_la_version_arg = $(version_arg)
+libgcj_bc_la_version_arg = $(version_arg)
+
+version_dep = $(srcdir)/libgcj.ver
+libgcj_la_version_dep = $(version_dep)
+libgcj_tools_la_version_dep = $(version_dep)
+lib_gnu_awt_xlib_la_version_dep = $(version_dep)
+libgcj_bc_la_version_dep = $(version_dep)
+endif
+if ANONVERSCRIPT_SUN
+libgcj_la_version_arg = -Wl,-M,libgcj.ver-sun
+libgcj_tools_la_version_arg = -Wl,-M,libgcj_tools.ver-sun
+lib_gnu_awt_xlib_la_version_arg = -Wl,-M,lib_gnu_awt_xlib.ver-sun
+libgcj_bc_la_version_arg = -Wl,-M,libgcj_bc.ver-sun
+
+libgcj_la_version_dep = libgcj.ver-sun
+libgcj_tools_la_version_dep = libgcj_tools.ver-sun
+lib_gnu_awt_xlib_la_version_dep = lib_gnu_awt_xlib.ver-sun
+libgcj_bc_la_version_dep = libgcj_bc.ver-sun
+
+# The pattern rule necessary to build the *.ver-sun mapfiles is at the end
+# of the file, see below.
+endif
+else
+version_arg =
+libgcj_la_version_arg = $(version_arg)
+libgcj_tools_la_version_arg = $(version_arg)
+lib_gnu_awt_xlib_la_version_arg = $(version_arg)
+libgcj_bc_la_version_arg = $(version_arg)
+
+version_dep =
+libgcj_la_version_dep = $(version_dep)
+libgcj_tools_la_version_dep = $(version_dep)
+lib_gnu_awt_xlib_la_version_dep = $(version_dep)
+libgcj_bc_la_version_dep = $(version_dep)
endif
LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
@@ -406,6 +444,8 @@ libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc \
## We need to compile at least the interpreter this way.
interpret.lo: AM_CXXFLAGS += -fwrapv
+## Necessary so EH works on 64-bit Solaris 2.
+prims.lo: AM_CXXFLAGS += -fno-omit-frame-pointer
if USING_BOEHMGC
libgcj_la_SOURCES += boehm.cc
@@ -463,11 +503,9 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
java/process-$(PLATFORM).lo \
$(ALL_PACKAGE_SOURCE_FILES_LO) \
$(LIBLTDL) $(libgcj_la_LIBADD) \
- $(LIBJAVA_CORE_EXTRA)
-if ANONVERSCRIPT
-libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver
-endif
-libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
+ $(LIBJAVA_CORE_EXTRA) \
+ $(libgcj_la_version_dep)
+libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) $(libgcj_la_version_arg)
## A hack to make sure the various gcj-related macros, like
## LTGCJCOMPILE, are defined by automake. This is never actually
@@ -490,10 +528,7 @@ libgcj_noncore_la_SOURCES =
libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS)
libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la
libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \
- $(libgcj_noncore_la_LIBADD) libgcj.la
-if ANONVERSCRIPT
-libgcj_noncore_la_DEPENDENCIES += $(srcdir)/libgcj.ver
-endif
+ $(libgcj_noncore_la_LIBADD) libgcj.la $(libgcj_la_version_dep)
libgcj_noncore_la_LINK = $(libgcj_la_LINK)
endif # BUILD_SUBLIBS
@@ -509,13 +544,15 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
-fsource-filename=$(here)/classpath/tools/all-classes.lst
libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
-libgcj_tools_la_LIBADD = libgcj.la -lm
-libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) -lm
+libgcj_tools_la_LIBADD = libgcj.la
+libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+ $(libgcj_tools_la_version_dep)
if BUILD_SUBLIBS
libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la
endif
-libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)
+libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \
+ $(libgcj_tools_la_version_arg)
## libjvm.so
libjvm_la_SOURCES = jni-libjvm.cc
@@ -543,6 +580,7 @@ lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files)
lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
libgcj.la libgcj.spec \
+ $(lib_gnu_awt_xlib_la_version_dep) \
$(lib_gnu_awt_xlib_la_LIBADD)
if BUILD_SUBLIBS
lib_gnu_awt_xlib_la_DEPENDENCIES += libgcj-noncore.la
@@ -558,7 +596,8 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
-lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
+lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \
+ $(lib_gnu_awt_xlib_la_version_arg)
## Support for libgcj_bc: dummy shared library.
##
@@ -567,8 +606,9 @@ lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
libgcj_bc_la_SOURCES = libgcj_bc.c
libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
-libgcj_bc_la_DEPENDENCIES = libgcj.la
-libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
+libgcj_bc_la_DEPENDENCIES = libgcj.la $(libgcj_bc_la_version_dep)
+libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) \
+ $(libgcj_bc_la_version_arg)
## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
## USE_LIBGCJ_BC shouldn't be set on other targets.
libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
@@ -1574,3 +1614,22 @@ distclean-multi:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
maintainer-clean-multi:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
+
+if ANONVERSCRIPT
+if ANONVERSCRIPT_SUN
+# This must be at the end of the Makefile, otherwise .SECONDEXPANSION
+# causes expansion of filenames with $ in their names, which breaks the build.
+# .SECONDEXPANSION is necessary to allow the use of automatic variables ($@
+# in this case) in the requisites of pattern rules.
+.SECONDEXPANSION:
+
+%.ver-sun : $(srcdir)/libgcj.ver \
+ $(top_srcdir)/../contrib/make_sunver.pl \
+ $$($$(basename $$@)_la_OBJECTS) $$($$(basename $$@)_la_LIBADD)
+ perl $(top_srcdir)/../contrib/make_sunver.pl \
+ $(srcdir)/libgcj.ver \
+ `echo $($(basename $@)_la_OBJECTS) $($(basename $@)_la_LIBADD) | \
+ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
+ > $@ || (rm -f $@ ; exit 1)
+endif
+endif
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index d53b4f395a0..9daa03e9486 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -49,22 +49,19 @@ target_triplet = @target@
@INSTALL_BINARIES_FALSE@@NATIVE_TRUE@am__append_7 = $(bin_programs)
@INSTALL_AOT_RPM_TRUE@am__append_8 = contrib/aot-compile-rpm
@BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT)
-@ANONVERSCRIPT_TRUE@am__append_9 = -Wl,--version-script=$(srcdir)/libgcj.ver
-@USING_GCC_TRUE@am__append_10 = $(WARNINGS)
-@BUILD_SUBLIBS_TRUE@am__append_11 = libgcj-noncore.la
-@USING_BOEHMGC_TRUE@am__append_12 = boehm.cc
-@USING_NOGC_TRUE@am__append_13 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_14 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_15 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_16 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_17 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_18 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_19 = no-threads.cc
-@ANONVERSCRIPT_TRUE@am__append_20 = $(srcdir)/libgcj.ver
-@ANONVERSCRIPT_TRUE@@BUILD_SUBLIBS_TRUE@am__append_21 = $(srcdir)/libgcj.ver
-@BUILD_SUBLIBS_TRUE@am__append_22 = libgcj-noncore.la
-@BUILD_SUBLIBS_TRUE@am__append_23 = libgcj-noncore.la
-@BUILD_SUBLIBS_TRUE@am__append_24 = libgcj-noncore.la
+@USING_GCC_TRUE@am__append_9 = $(WARNINGS)
+@BUILD_SUBLIBS_TRUE@am__append_10 = libgcj-noncore.la
+@USING_BOEHMGC_TRUE@am__append_11 = boehm.cc
+@USING_NOGC_TRUE@am__append_12 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_13 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_14 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_15 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_16 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_17 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_18 = no-threads.cc
+@BUILD_SUBLIBS_TRUE@am__append_19 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_20 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_21 = libgcj-noncore.la
DIST_COMMON = $(srcdir)/sources.am NEWS README ChangeLog THANKS \
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
@@ -80,14 +77,14 @@ DIST_COMMON = $(srcdir)/sources.am NEWS README ChangeLog THANKS \
$(top_srcdir)/gnu/java/nio/natVMPipe${PLATFORM}.cc \
$(top_srcdir)/gnu/java/nio/natVMSelector${PLATFORM}.cc \
$(srcdir)/../depcomp
-@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_25 = gen-from-JIS
-@BUILD_SUBLIBS_TRUE@am__append_26 = libgcj-noncore.la
-@BUILD_SUBLIBS_TRUE@am__append_27 = libgcj-noncore.la
-@BUILD_SUBLIBS_TRUE@am__append_28 = libgcj-noncore.la
-@BUILD_SUBLIBS_TRUE@@NATIVE_TRUE@am__append_29 = libgcj-noncore.la
-@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_30 = libgcj_bc.la
-@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_31 = libgcj.la
-@XLIB_AWT_TRUE@am__append_32 = $(xlib_nat_headers)
+@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_22 = gen-from-JIS
+@BUILD_SUBLIBS_TRUE@am__append_23 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_24 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_25 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@@NATIVE_TRUE@am__append_26 = libgcj-noncore.la
+@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_27 = libgcj_bc.la
+@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_28 = libgcj.la
+@XLIB_AWT_TRUE@am__append_29 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
@@ -704,7 +701,7 @@ docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
extra_ldflags = @extra_ldflags@
-extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_9)
+extra_ldflags_libjava = @extra_ldflags_libjava@
gcc_suffix = @gcc_suffix@
gcjsubdir = @gcjsubdir@
gxx_include_dir = @gxx_include_dir@
@@ -952,6 +949,37 @@ db_pathtail = $(gcjsubdir)/$(db_name)
bin_SCRIPTS = contrib/rebuild-gcj-db contrib/aot-compile \
$(am__append_8)
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
+
+# The pattern rule necessary to build the *.ver-sun mapfiles is at the end
+# of the file, see below.
+@ANONVERSCRIPT_FALSE@version_arg =
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@version_arg = -Wl,--version-script=$(srcdir)/libgcj.ver
+@ANONVERSCRIPT_FALSE@libgcj_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_arg = -Wl,-M,libgcj.ver-sun
+@ANONVERSCRIPT_FALSE@libgcj_tools_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_arg = -Wl,-M,libgcj_tools.ver-sun
+@ANONVERSCRIPT_FALSE@lib_gnu_awt_xlib_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_arg = -Wl,-M,lib_gnu_awt_xlib.ver-sun
+@ANONVERSCRIPT_FALSE@libgcj_bc_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_arg = $(version_arg)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_arg = -Wl,-M,libgcj_bc.ver-sun
+@ANONVERSCRIPT_FALSE@version_dep =
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@version_dep = $(srcdir)/libgcj.ver
+@ANONVERSCRIPT_FALSE@libgcj_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_dep = libgcj.ver-sun
+@ANONVERSCRIPT_FALSE@libgcj_tools_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_dep = libgcj_tools.ver-sun
+@ANONVERSCRIPT_FALSE@lib_gnu_awt_xlib_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_dep = lib_gnu_awt_xlib.ver-sun
+@ANONVERSCRIPT_FALSE@libgcj_bc_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_dep = $(version_dep)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_dep = libgcj_bc.ver-sun
LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
GCJLINK = $(LIBTOOL) --tag=GCJ $(LIBTOOLFLAGS) --mode=link $(GCJ) -L$(here) \
$(JC1FLAGS) $(LTLDFLAGS) -o $@
@@ -992,7 +1020,7 @@ AM_GCJFLAGS = \
--encoding=UTF-8 \
-Wno-deprecated -fbootstrap-classes
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_10)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_9)
@SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
@SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS =
@BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS =
@@ -1010,7 +1038,7 @@ AM_CPPFLAGS = -I$(top_srcdir) \
BOOTCLASSPATH = $(srcdir)/classpath/lib
libgij_la_SOURCES = gij.cc
-libgij_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_11)
+libgij_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_10)
libgij_la_LIBADD = -L$(here)/.libs libgcj.la
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
@@ -1020,9 +1048,9 @@ libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)
@INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc
libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
defineclass.cc verify.cc $(libgcj_interpret_source_files) \
- $(nat_source_files) $(am__append_12) $(am__append_13) \
- $(am__append_14) $(am__append_15) $(am__append_16) \
- $(am__append_17) $(am__append_18) $(am__append_19)
+ $(nat_source_files) $(am__append_11) $(am__append_12) \
+ $(am__append_13) $(am__append_14) $(am__append_15) \
+ $(am__append_16) $(am__append_17) $(am__append_18)
nat_files = $(nat_source_files:.cc=.lo)
xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
@@ -1041,20 +1069,24 @@ libgcj_la_LIBADD = \
$(libgcj_la_LIBADD_SUBOBJECTS) \
$(LIBFFI) $(ZLIBS) $(GCLIBS)
-libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \
- java/lang/Class.lo java/process-$(PLATFORM).lo \
- $(ALL_PACKAGE_SOURCE_FILES_LO) $(LIBLTDL) $(libgcj_la_LIBADD) \
- $(LIBJAVA_CORE_EXTRA) $(am__append_20)
-libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
+libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
+ java/lang/Object.lo \
+ java/lang/Class.lo \
+ java/process-$(PLATFORM).lo \
+ $(ALL_PACKAGE_SOURCE_FILES_LO) \
+ $(LIBLTDL) $(libgcj_la_LIBADD) \
+ $(LIBJAVA_CORE_EXTRA) \
+ $(libgcj_la_version_dep)
+
+libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) $(libgcj_la_version_arg)
EXTRA_libgcj_la_SOURCES = java/lang/Object.java
@BUILD_SUBLIBS_TRUE@DLL_VERSION = `expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\``
@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_SOURCES =
@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS)
@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la
-@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_DEPENDENCIES = \
-@BUILD_SUBLIBS_TRUE@ libgcj-$(gcc_version).jar $(LIBLTDL) \
-@BUILD_SUBLIBS_TRUE@ $(libgcj_noncore_la_LIBADD) libgcj.la \
-@BUILD_SUBLIBS_TRUE@ $(am__append_21)
+@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \
+@BUILD_SUBLIBS_TRUE@ $(libgcj_noncore_la_LIBADD) libgcj.la $(libgcj_la_version_dep)
+
@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LINK = $(libgcj_la_LINK)
# We compile libgcj_tools with -findirect-dispatch so that they can
@@ -1069,13 +1101,16 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) -lm
+
+libgcj_tools_la_LIBADD = libgcj.la
+libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+ $(libgcj_tools_la_version_dep) $(am__append_19)
+libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \
+ $(libgcj_tools_la_version_arg)
-libgcj_tools_la_LIBADD = libgcj.la -lm
-libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_22)
-libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)
libjvm_la_SOURCES = jni-libjvm.cc
-libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_23)
+libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_20)
libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \
$(LIBJAVA_LDFLAGS_NOUNDEF)
@@ -1084,7 +1119,8 @@ libjvm_la_LINK = $(CXXLINK) $(libjvm_la_LDFLAGS)
lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files)
lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar libgcj.la \
- libgcj.spec $(lib_gnu_awt_xlib_la_LIBADD) $(am__append_24)
+ libgcj.spec $(lib_gnu_awt_xlib_la_version_dep) \
+ $(lib_gnu_awt_xlib_la_LIBADD) $(am__append_21)
lib_gnu_awt_xlib_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I../libstdc++-v3/include \
@@ -1096,13 +1132,17 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
-lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
+lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \
+ $(lib_gnu_awt_xlib_la_version_arg)
+
libgcj_bc_la_SOURCES = libgcj_bc.c
libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
-libgcj_bc_la_DEPENDENCIES = libgcj.la
-libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
+libgcj_bc_la_DEPENDENCIES = libgcj.la $(libgcj_bc_la_version_dep)
+libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) \
+ $(libgcj_bc_la_version_arg)
+
libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
-fPIC -nostdlib
@@ -8362,7 +8402,7 @@ jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS)
jv_convert_LDADD = -L$(here)/.libs libgcj.la
-jv_convert_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_26)
+jv_convert_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_23)
gcj_dbtool_SOURCES = \
gnu/gcj/tools/gcj_dbtool/natMain.cc
@@ -8372,7 +8412,7 @@ gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS)
gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la
gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la \
- libgcj.spec $(am__append_27)
+ libgcj.spec $(am__append_24)
gc_analyze_SOURCES =
gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8380,7 +8420,7 @@ gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS)
gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec \
- $(am__append_28)
+ $(am__append_25)
gij_SOURCES =
gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
-shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8399,10 +8439,10 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
@NATIVE_FALSE@ecjx_LDADD =
@NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \
-@NATIVE_TRUE@ $(am__append_31)
+@NATIVE_TRUE@ $(am__append_28)
@NATIVE_FALSE@ecjx_DEPENDENCIES =
@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
-@NATIVE_TRUE@ $(am__append_29) $(am__append_30)
+@NATIVE_TRUE@ $(am__append_26) $(am__append_27)
gappletviewer_SOURCES =
gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8619,7 +8659,7 @@ gnu/gcj/xlib/natXImage.cc \
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_32)
+headers_to_make = $(nat_headers) $(am__append_29)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
@@ -10495,6 +10535,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
interpret.lo: AM_CXXFLAGS += -fwrapv
+prims.lo: AM_CXXFLAGS += -fno-omit-frame-pointer
@BUILD_SUBLIBS_TRUE@libgcj-noncore-dummy.dll.a : $(srcdir)/libgcj-noncore-dummy.def
@BUILD_SUBLIBS_TRUE@ $(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll
@@ -12681,6 +12722,21 @@ distclean-multi:
maintainer-clean-multi:
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
+# This must be at the end of the Makefile, otherwise .SECONDEXPANSION
+# causes expansion of filenames with $ in their names, which breaks the build.
+# .SECONDEXPANSION is necessary to allow the use of automatic variables ($@
+# in this case) in the requisites of pattern rules.
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@.SECONDEXPANSION:
+
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@%.ver-sun : $(srcdir)/libgcj.ver \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $(top_srcdir)/../contrib/make_sunver.pl \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $$($$(basename $$@)_la_OBJECTS) $$($$(basename $$@)_la_LIBADD)
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $(srcdir)/libgcj.ver \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ `echo $($(basename $@)_la_OBJECTS) $($(basename $@)_la_LIBADD) | \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
+@ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ > $@ || (rm -f $@ ; exit 1)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/libjava/configure b/libjava/configure
index 7ca3dcfb5b3..8ccfa24cc12 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -632,6 +632,10 @@ python_mod_dir
here
LD_FINISH_STATIC_SPEC
LD_START_STATIC_SPEC
+ANONVERSCRIPT_SUN_FALSE
+ANONVERSCRIPT_SUN_TRUE
+ANONVERSCRIPT_GNU_FALSE
+ANONVERSCRIPT_GNU_TRUE
ANONVERSCRIPT_FALSE
ANONVERSCRIPT_TRUE
SYSDEP_SOURCES
@@ -13345,7 +13349,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 13348 "configure"
+#line 13352 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13451,7 +13455,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 13454 "configure"
+#line 13458 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -19430,7 +19434,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then :
enableval=$enable_sjlj_exceptions; :
else
cat > conftest.$ac_ext << EOF
-#line 19433 "configure"
+#line 19437 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -20708,6 +20712,19 @@ 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'
+ ;;
*)
THREADLIBS=-lpthread
THREADSPEC=-lpthread
@@ -24156,8 +24173,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
@@ -24380,7 +24397,7 @@ rm -f core conftest.err conftest.$ac_objext \
CFLAGS="$chktls_save_CFLAGS"
if test "X$thread_CFLAGS" != Xfailed; then
CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
- if test "$cross_compiling" = yes; then :
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error "cannot run test program while cross compiling
@@ -24488,7 +24505,8 @@ if test "${libjava_cv_anon_version_script+set}" = set; then :
else
save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
libjava_cv_anon_version_script=no
- CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
+ CFLAGS="$CFLAGS -fPIC";
+ LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
echo '{ global: globalsymb*; local: *; };' > conftest.map
if test x$gcc_no_link = xyes; then
as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
@@ -24505,16 +24523,45 @@ main ()
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- libjava_cv_anon_version_script=yes
+ libjava_cv_anon_version_script=gnu
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
+ 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
+ if test x$gcc_no_link = xyes; then
+ as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+void globalsymbol (void) {} void localsymbol (void) {}
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ libjava_cv_anon_version_script=sun
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ;;
+ esac
+ fi
CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libjava_cv_anon_version_script" >&5
$as_echo "$libjava_cv_anon_version_script" >&6; }
- if test "$libjava_cv_anon_version_script" = yes; then
+ if test "$libjava_cv_anon_version_script" != no; then
ANONVERSCRIPT_TRUE=
ANONVERSCRIPT_FALSE='#'
else
@@ -24522,6 +24569,22 @@ else
ANONVERSCRIPT_FALSE=
fi
+ if test "$libjava_cv_anon_version_script" = gnu; then
+ ANONVERSCRIPT_GNU_TRUE=
+ ANONVERSCRIPT_GNU_FALSE='#'
+else
+ ANONVERSCRIPT_GNU_TRUE='#'
+ ANONVERSCRIPT_GNU_FALSE=
+fi
+
+ if test "$libjava_cv_anon_version_script" = sun; then
+ ANONVERSCRIPT_SUN_TRUE=
+ ANONVERSCRIPT_SUN_FALSE='#'
+else
+ ANONVERSCRIPT_SUN_TRUE='#'
+ ANONVERSCRIPT_SUN_FALSE=
+fi
+
# Check if linker supports static linking on a per library basis
LD_START_STATIC_SPEC=
@@ -25061,6 +25124,14 @@ if test -z "${ANONVERSCRIPT_TRUE}" && test -z "${ANONVERSCRIPT_FALSE}"; then
as_fn_error "conditional \"ANONVERSCRIPT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${ANONVERSCRIPT_GNU_TRUE}" && test -z "${ANONVERSCRIPT_GNU_FALSE}"; then
+ as_fn_error "conditional \"ANONVERSCRIPT_GNU\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ANONVERSCRIPT_SUN_TRUE}" && test -z "${ANONVERSCRIPT_SUN_FALSE}"; then
+ as_fn_error "conditional \"ANONVERSCRIPT_SUN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${INSTALL_AOT_RPM_TRUE}" && test -z "${INSTALL_AOT_RPM_FALSE}"; then
as_fn_error "conditional \"INSTALL_AOT_RPM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/libjava/configure.ac b/libjava/configure.ac
index f21ae91d18a..125e9ce9b46 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -1064,6 +1064,19 @@ 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'
+ ;;
*)
THREADLIBS=-lpthread
THREADSPEC=-lpthread
@@ -1680,8 +1693,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
@@ -1767,13 +1780,28 @@ 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"
+ 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], [])
+ [libjava_cv_anon_version_script=gnu], [])
+ 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"
])
-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=
diff --git a/libjava/configure.host b/libjava/configure.host
index 460ef2fab07..665fbe3c6a0 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -318,6 +318,9 @@ EOF
DIVIDESPEC=-fuse-divide-subroutine
CHECKREFSPEC=-fcheck-references
;;
+ i?86-*-solaris2*)
+ can_unwind_signal=yes
+ ;;
*-*-freebsd*)
slow_pthread_self=
;;
diff --git a/libjava/include/sparc-signal.h b/libjava/include/solaris-signal.h
index a936afe067f..a936afe067f 100644
--- a/libjava/include/sparc-signal.h
+++ b/libjava/include/solaris-signal.h
diff --git a/libjava/libgcj.ver b/libjava/libgcj.ver
index d2d189b5249..4e90d9d1f8e 100644
--- a/libjava/libgcj.ver
+++ b/libjava/libgcj.ver
@@ -2,6 +2,12 @@
# symbols in libgcj.so.
{
- global: Jv*; _Jv_*; __gcj_personality_v0; __gcj_personality_sj0; _Z*;
- local: *;
+ global:
+ Jv*;
+ _Jv_*;
+ __gcj_personality_v0;
+ __gcj_personality_sj0;
+ _Z*;
+ local:
+ *;
};