On Mon, Mar 30, 2015 at 07:08:00PM -0700, H.J. Lu wrote: > --- a/gcc/gcc.c > +++ b/gcc/gcc.c > @@ -1566,11 +1566,13 @@ 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" > #endif > , > + "-lgcc_nonshared " > "-lgcc", > "-lgcc_eh" > #ifdef USE_LIBUNWIND_EXCEPTIONS > @@ -1591,7 +1593,9 @@ 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_nonshared.a%s " > "libgcc.a%s", > "libgcc_eh.a%s"
Why do you need to link libgcc_nonshared.a twice here? -lgcc_s surely won't add any new __cpu* undefined references. > @@ -424,3 +424,8 @@ __cpu_indicator_init (void) > > return 0; > } > + > +#if defined SHARED && !defined _WIN32 > +__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); > +__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); > +#endif Will this work on Solaris? I'd say you at least want to also guard with some configure check if .symver is supported by assembler. Jakub