On Tue, Mar 31, 2015 at 9:39 AM, Jack Howarth <howarth.at....@gmail.com> wrote: > On Tue, Mar 31, 2015 at 12:14 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Tue, Mar 31, 2015 at 9:09 AM, Jack Howarth <howarth.at....@gmail.com> >> wrote: >>> H.J., >>> Did you attach the correct version of the patch? I don't see >>> anything conditional on linux. >>> Jack >> >> My patch will build and install libgcc_nonshared.a for all targets. If you >> don't link against it, nothing is changed. On Linux, it is used via the >> init_spec change. > > Isn't... > > diff --git a/gcc/gcc.c b/gcc/gcc.c > index d956c36..3fbd549 100644 > --- a/gcc/gcc.c > +++ b/gcc/gcc.c > @@ -1566,6 +1566,7 @@ init_spec (void) > if (in_sep && *p == '-' && strncmp (p, "-lgcc", 5) == 0) > { > init_gcc_specs (&obstack, > + "-lgcc_nonshared " > "-lgcc_s" > #ifdef USE_LIBUNWIND_EXCEPTIONS > " -lunwind" > @@ -1591,6 +1592,7 @@ init_spec (void) > /* Ug. We don't know shared library extensions. Hope that > systems that use this form don't do shared libraries. */ > init_gcc_specs (&obstack, > + "libgcc_nonshared.a%s " > "-lgcc_s", > "libgcc.a%s", > "libgcc_eh.a%s" > > problematic for Solaris? I am unfamiliar with the Solaris spec > handling but sol2.h doesn't seem to have any instances of -lgcc which > might imply they use the stock compiler invocation which will now have > a non-existent libgcc_nonshared static library.
libgcc_nonshared.a is built and installed for all targets. > Also, are you leaving the cpu symbols in libgcc.a on non-linux > targets? If not, the linkage failure reported in > https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01668.html will occur, > no? My current patch doesn't change what are in libgcc.a. It adds libgcc_nonshared.a for all targets, which contains the same cpuinfo.o as in libgcc.a or a dummy .o if libgcc.a doesn't have cpuinfo.o. -- H.J.