Message ID | mvmhaai86bw.fsf@hawking.suse.de |
---|---|
State | New |
Headers | show |
On Mon, Dec 9, 2013 at 3:08 PM, Andreas Schwab <schwab@suse.de> wrote: > The rules to install the dummy libgcc_bc library have never worked as > intented, probably due to the fact that the fedora gcc package installs > it by hand, ignoring all damage that has been done. The target that > creates libgcj_bc.la for the testsuite is mucking around with internal > details that will confuse libtool when it tries to install it, the > effect of which can't be undone by install-exec-hook. We need to create > a clean second copy that is actually installed. Ok if nobody objects in the next 24h. Thanks, Richard. > Andreas. > > * Makefile.am (toolexeclib_LTLIBRARIES) [USE_LIBGCJ_BC]: Use > install/libgcj_bc.la instead of libgcj_bc.la. > (noinst_LTLIBRARIES) [USE_LIBGCJ_BC]: Define. > (install_libgcj_bc_la_SOURCES): Define. > (install/libgcj_bc.la): New rule. > * Makefile.in: Regenerate. > > diff --git a/libjava/Makefile.am b/libjava/Makefile.am > index dce1bb0..5af58fa 100644 > --- a/libjava/Makefile.am > +++ b/libjava/Makefile.am > @@ -212,7 +212,8 @@ LIBJAVA_CORE_EXTRA = > endif > > if USE_LIBGCJ_BC > -toolexeclib_LTLIBRARIES += libgcj_bc.la > +toolexeclib_LTLIBRARIES += install/libgcj_bc.la > +noinst_LTLIBRARIES = libgcj_bc.la > endif > > if XLIB_AWT > @@ -606,6 +607,7 @@ lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \ > ## This lets us have one soname in BC objects and another in C++ ABI objects. > ## This library is not linked against libgcj. > libgcj_bc_la_SOURCES = libgcj_bc.c > +install_libgcj_bc_la_SOURCES = $(libgcj_bc_la_SOURCES) > 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_version_dep) > @@ -628,6 +630,11 @@ libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) > rm .libs/libgcj_bc.so.1; \ > $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 > > +## This rule creates the libgcj_bc library that is actually installed. > +install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp) > + $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \ > + $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) > + > ## Note that property_files is defined in sources.am. > propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files))) > > > -- > Andreas Schwab, SUSE Labs, schwab@suse.de > GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 > "And now for something completely different."
On 12/09/2013 02:31 PM, Richard Biener wrote: > On Mon, Dec 9, 2013 at 3:08 PM, Andreas Schwab <schwab@suse.de> wrote: >> The rules to install the dummy libgcc_bc library have never worked as >> intented, probably due to the fact that the fedora gcc package installs >> it by hand, ignoring all damage that has been done. The target that >> creates libgcj_bc.la for the testsuite is mucking around with internal >> details that will confuse libtool when it tries to install it, the >> effect of which can't be undone by install-exec-hook. We need to create >> a clean second copy that is actually installed. > > Ok if nobody objects in the next 24h. OK, thanks! Andrew.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am index dce1bb0..5af58fa 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -212,7 +212,8 @@ LIBJAVA_CORE_EXTRA = endif if USE_LIBGCJ_BC -toolexeclib_LTLIBRARIES += libgcj_bc.la +toolexeclib_LTLIBRARIES += install/libgcj_bc.la +noinst_LTLIBRARIES = libgcj_bc.la endif if XLIB_AWT @@ -606,6 +607,7 @@ lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \ ## This lets us have one soname in BC objects and another in C++ ABI objects. ## This library is not linked against libgcj. libgcj_bc_la_SOURCES = libgcj_bc.c +install_libgcj_bc_la_SOURCES = $(libgcj_bc_la_SOURCES) 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_version_dep) @@ -628,6 +630,11 @@ libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) rm .libs/libgcj_bc.so.1; \ $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 +## This rule creates the libgcj_bc library that is actually installed. +install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp) + $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \ + $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) + ## Note that property_files is defined in sources.am. propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))