Skip to content

Commit

Permalink
[i386][musl] Add cpuinfo to static libgcc only on *-musl*
Browse files Browse the repository at this point in the history
The __cpu_indicator_init and __cpu_model symbols are not safe to use
from shared libgcc_s.so from ifunc resolvers, so since gcc-6, only
the definitions from static libgcc.a are used, however the symbols
are kept in libgcc_s as well for backward compatibility (with
appropriate symbol version).  On targets without such backward
compatibility concern add cpuinfo to the static library only (this
avoids running the ctor, reduces libgcc_s size and elf abi concerns
about the versioned symbols).

libgcc/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use
	i386/t-cpuinfo-static instead of i386/t-cpuinfo.
	* config/i386/t-cpuinfo-static: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242268 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
nsz committed Nov 11, 2016
1 parent a3b46c9 commit 6e6c7fc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
6 changes: 6 additions & 0 deletions libgcc/ChangeLog
@@ -1,3 +1,9 @@
2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com>

* config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use
i386/t-cpuinfo-static instead of i386/t-cpuinfo.
* config/i386/t-cpuinfo-static: New.

2016-11-03 Martin Liska <mliska@suse.cz>

* libgcov-profiler.c (__gcov_time_profiler): Remove.
Expand Down
9 changes: 8 additions & 1 deletion libgcc/config.host
Expand Up @@ -1320,7 +1320,14 @@ esac

case ${host} in
i[34567]86-*-* | x86_64-*-*)
tmake_file="${tmake_file} i386/t-cpuinfo"
case ${host} in
*-musl*)
tmake_file="${tmake_file} i386/t-cpuinfo-static"
;;
*)
tmake_file="${tmake_file} i386/t-cpuinfo"
;;
esac
;;
esac

Expand Down
4 changes: 4 additions & 0 deletions libgcc/config/i386/t-cpuinfo-static
@@ -0,0 +1,4 @@
# If the compatibility cpuinfo symbols in shared libgcc_s are not needed
# then they can be added to the static library only.

LIB2ADD_ST += $(srcdir)/config/i386/cpuinfo.c

0 comments on commit 6e6c7fc

Please sign in to comment.