On Tue, Jun 5, 2012 at 3:00 PM, Sriraman Tallam <tmsri...@google.com> wrote:
> Hi H.J.,
>
> I am attaching a patch to add __cpu_indicator_init to the list of
> symbols to be versioned and exported in libgcc_s.so. Also, updating
> builtin_target.c test to explicitly do a CPUID and check if the
> features are identified correctly like you had suggested earlier.
>
> Patch ok?
>
>
>        * config/i386/libgcc-bsd.ver: Version symbol __cpu_indicator_init.
>        * config/i386/libgcc-sol2.ver: Ditto.
>        * config/i386/libgcc-glibc.ver: Ditto.
>
>
>        * gcc.target/i386/builtin_target.c (vendor_signatures): New enum.
>        (check_intel_cpu_model): New function.
>        (check_amd_cpu_model): New function.
>        (check_features): New function.
>        (__get_cpuid_output): New function.
>        (check_detailed): New function.
>        (fn1): Rename to quick_check.
>        (main): Update to call quick_check and call check_detailed.
>

It looks good.  The only problem is for C programs,  __cpu_model and
__cpu_indicator_init in libgcc_s.so aren't used at all.  I suggested
in

http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01816.html

We can do one
of 3 things:

1. Abuse libgcc_eh.a by moving __cpu_model and __cpu_indicator_init
from libgcc.a to libgcc_eh.a.
2. Rename libgcc_eh.a to libgcc_static.a and move __cpu_model and
__cpu_indicator_init from libgcc.a to libgcc_static.a.
3. Add  libgcc_static.a and move __cpu_model and __cpu_indicator_ini
 from libgcc.a to libgcc_static.a.  We treat libgcc_static.a similar to
libgcc_eh.a.


-- 
H.J.

Reply via email to