We shouldn't call external function, __cpu_indicator_init, while an object
is being relocated since its .got.plt section hasn't been updated. It
works for non-PIE since no update on .got.plt section is required. This
patch creates libgcc.so as a linker script, hides __cpu_indicator_init
and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
__cpu_indicator_init and __cpu_model to their hidden definitions in
libgcc.a while providing backward binary compatibility.
Author: hjl
Date: Fri Apr 17 12:58:07 2015
New Revision: 222178
URL: https:/ /gcc.gnu. org/viewcvs? rev=222178& root=gcc& view=rev _init/_ _cpu_model from linker
Log:
Hide __cpu_indicator
We shouldn't call external function, __cpu_indicator _init, while an object _init _init and __cpu_model to their hidden definitions in
is being relocated since its .got.plt section hasn't been updated. It
works for non-PIE since no update on .got.plt section is required. This
patch creates libgcc.so as a linker script, hides __cpu_indicator
and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
__cpu_indicator
libgcc.a while providing backward binary compatibility.
gcc/testsuite/
PR target/65612
* g++.dg/ext/mv18.C: New test.
* g++.dg/ext/mv19.C: Likewise.
* g++.dg/ext/mv20.C: Likewise.
* g++.dg/ext/mv21.C: Likewise.
* g++.dg/ext/mv22.C: Likewise.
* g++.dg/ext/mv23.C: Likewise.
libgcc/
PR target/65612 i386/cpuinfo. c (__cpu_model): Initialize. indicator_ init@GCC_ 4.8.0): New. model@GCC_ 4.8.0): Likewise. CFLAGS) : Add
* config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86.
* config/
(__cpu_
(__cpu_
* config/i386/t-linux (HOST_LIBGCC2_
-DUSE_ELF_SYMVER.
Added: gcc/testsuite/ g++.dg/ ext/mv18. C gcc/testsuite/ g++.dg/ ext/mv19. C gcc/testsuite/ g++.dg/ ext/mv20. C gcc/testsuite/ g++.dg/ ext/mv21. C gcc/testsuite/ g++.dg/ ext/mv22. C gcc/testsuite/ g++.dg/ ext/mv23. C gcc/testsuite/ ChangeLog libgcc/ ChangeLog libgcc/ config. host libgcc/ config/ i386/cpuinfo. c libgcc/ config/ i386/t- linux
trunk/
trunk/
trunk/
trunk/
trunk/
trunk/
Modified:
trunk/
trunk/
trunk/
trunk/
trunk/