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

Reply via email to