Rainer Orth <r...@cebitec.uni-bielefeld.de> writes: >>> > For this particular case at least. >>> > >>> > Note that I'm not against linking against static libgcc_s for >>> > lto-plugin. The -static-libstdc++ we use is just because during >>> > bootstrap picking up the correct libstdc++ was deemed too hard >>> > to implement and thus the easy way out was -static-libstdc++. >>> >>> So how should we go forward with this issue? This bootstrap failure is >>> a regression from all previous releases. As I said, I'd rather not >>> duplicate the -static-libgcc test from the toplevel, but would do so if >>> all else fails. Perhaps Paolo could weigh in as the build maintainer? >> >> Yeah, I'd like a build maintainer to look over your first proposed patch >> (workaround libtools nicyness). > > Just one additional data point: I've checked mainline libtool, and it > still doesn't handle (meaning: still drops) > -static-libgcc/-static-libstdc++. At least they have some hints in > their documentation on what testing etc. it takes to get additional > options passed through to the compiler/linker.
I'm now testing this alternative. So far, I've just manually configured lto-plugin with CC=cc (Solaris Studio cc, no -static-libgcc) and CC=gcc and found that -static-libgcc is only used with gcc, as expected. I've checked that -static-libgcc is supported as far back as 3.4.6 (probably even far older), so the $GCC check should be enough. I'm including it in this weekend's bootstraps on Solaris and Linux. Rainer 2014-03-14 Rainer Orth <r...@cebitec.uni-bielefeld.de> * configure.ac (ac_lto_plugin_ldflags): Set to -Wc,-static-libgcc for gcc. * configure: Regenerate. * Makefile.am (AM_LDFLAGS): New variable. (liblto_plugin_la_LDFLAGS): Add it. * Makefile.in: Regenerate.
# HG changeset patch # Parent baa4e95100d168dd4133db86c265fd35739647aa Fix Solaris bootstrap with GNU ld/LTO diff --git a/lto-plugin/Makefile.am b/lto-plugin/Makefile.am --- a/lto-plugin/Makefile.am +++ b/lto-plugin/Makefile.am @@ -9,6 +9,7 @@ libexecsubdir := $(libexecdir)/gcc/$(tar AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS) AM_CFLAGS = @ac_lto_plugin_warn_cflags@ +AM_LDFLAGS = @ac_lto_plugin_ldflags@ AM_LIBTOOLFLAGS = --tag=disable-static libexecsub_LTLIBRARIES = liblto_plugin.la @@ -22,7 +23,8 @@ liblto_plugin_la_SOURCES = lto-plugin.c liblto_plugin_la_LIBADD = \ $(if $(wildcard ../libiberty/pic/libiberty.a),$(Wc)../libiberty/pic/libiberty.a,) # Note that we intentionally override the bindir supplied by ACX_LT_HOST_FLAGS -liblto_plugin_la_LDFLAGS = $(lt_host_flags) -module -bindir $(libexecsubdir) \ +liblto_plugin_la_LDFLAGS = $(AM_LDFLAGS) \ + $(lt_host_flags) -module -bindir $(libexecsubdir) \ $(if $(wildcard ../libiberty/pic/libiberty.a),,-Wc,../libiberty/libiberty.a) liblto_plugin_la_DEPENDENCIES = $(if $(wildcard \ ../libiberty/pic/libiberty.a),../libiberty/pic/libiberty.a,) diff --git a/lto-plugin/configure.ac b/lto-plugin/configure.ac --- a/lto-plugin/configure.ac +++ b/lto-plugin/configure.ac @@ -7,6 +7,9 @@ AM_MAINTAINER_MODE AC_PROG_CC AC_SYS_LARGEFILE ACX_PROG_CC_WARNING_OPTS([-Wall], [ac_lto_plugin_warn_cflags]) +# Need -Wc to get it through libtool. +if test "x$GCC" = xyes; then ac_lto_plugin_ldflags="-Wc,-static-libgcc"; fi +AC_SUBST(ac_lto_plugin_ldflags) AM_PROG_LIBTOOL ACX_LT_HOST_FLAGS AC_SUBST(target_noncanonical)
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University