Gentoo Archives: gentoo-musl

From: Felix Janda <felix.janda@××××××.de>
To: "Anthony G. Basile" <basile@××××××××××××××.edu>
Cc: gentoo-musl@l.g.o
Subject: Re: [gentoo-musl] gcc 6.1
Date: Mon, 16 May 2016 11:37:43
Message-Id: 20160516113636.GA26210@nyan
In Reply to: Re: [gentoo-musl] gcc 6.1 by "Anthony G. Basile"
1 Subject: [PATCH] sys-devel/gcc-6.1.0 fix undefined reference to __cpu_*
2
3 Add a hack to work around musl's lack of symbol versioning. C.f.
4
5 https://archives.gentoo.org/gentoo-musl/message/428886314d159f7139e638e824dab91f
6 ---
7 sys-devel/gcc/Manifest | 3 ++-
8 sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch | 32 ++++++++++++++++++++++++++++
9 sys-devel/gcc/gcc-6.1.0.ebuild | 3 +++
10 3 files changed, 37 insertions(+), 1 deletion(-)
11 create mode 100644 sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch
12
13 diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
14 index 35eb463..b677f3a 100644
15 --- a/sys-devel/gcc/Manifest
16 +++ b/sys-devel/gcc/Manifest
17 @@ -14,6 +14,7 @@ AUX gcc-4.8.5-posix_memalign.patch 1114 SHA256 87370f7854063bcf5f57bff931684c228
18 AUX gcc-4.9.3-musl-linker-path.patch 3556 SHA256 22228421551806b81a1d3aff438eecf4202f64844141863fb8e665ef3b5eb5fb SHA512 cf58b49311c1a7a4cbb04a2ffeccdaa278872512e67b72ebe292fa155f419dc6025d158b67d58265de67edbd18c6af67f28c6f6806b581a8fdb9015ad2ee0aa3 WHIRLPOOL c3d5e9c7fc64cd8a8bacca714da5881ee8d94585e0064f5e3965b20bfe23c48bbe8b0bc886cf291d616e51786e80d032c19bdce59a15fdb310546b61a0ab0886
19 AUX gcc-4.9.3-musl-res_state.patch 699 SHA256 822990f5075b65dc2d1c03722daa5a215301f9ec2c4323c10e80fff2fbd04e71 SHA512 93f59d16e026672051b5a65110f78ace0c91a4f1365b861e22741fbc42b92c4490e55068ae845bbcbb5af9221fb874e0b855a763189528a646e757b133117e28 WHIRLPOOL 98438e82aa8d387b5a96bc58d3a137766661cc53d7396165338448394c14996687626f46e9c93bcb6b2a2e422b97445f5097489616a0aff619cca01c8243a56a
20 AUX gcc-4.9.3-secure-plt.patch 1478 SHA256 b9435e19c3193e872bfdce8f635755655cf6e88889c57d21c7afa118d7068e95 SHA512 95f04716bad41fe3f290d44d21d1dad35548b801b56de331acac8bdf56019583a04681418a805a0b4dbfe19e9b51cecceff984cea257be58d3e7780c6cfc58a5 WHIRLPOOL 8af1f0cfaf0e8197754d841d1cd2b25615968cc503344574cd9ec6b644804e029687a4ded18f6e1efd584c8c99277eceb6f1012c6519a2747bddc400d8909c1e
21 +AUX gcc-6.1.0-musl-cpu.patch 1277 SHA256 6c7a28ccc5edc226fc6f3f6b9b0562fb873a9c88dfb25b608b5acd827f239c08 SHA512 b11c5933c02dda63b40273f6cee394d52c68265931817cfeea3645e971b9c822cc841242a7c74fcd07729171bc0723c2af0db21743bf92dd3dba3430ee6627a1 WHIRLPOOL e0f6068a8028052f88cef840026baa459ae77a43d9144258fe7739a80b5dade852a2aa640feb5bce51dd54d6d35e0c8df99a8c9bdc140f9ae473f16ffb2e9af7
22 AUX gcc-configure-LANG.patch 2052 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b SHA512 a694c7ac2f45cc657097ff5b0cf1356ac88a9c06035c9ba15167e9d444844d0d8a478eb1b9b62195dd063774f79697b9148b9cdb6c261640b472c291061b2129 WHIRLPOOL 3cc1ec912fb192ff1058de5b93e49a994ba30d1501a932290dd5b3df1cd783875621cda56edeb41894cd5fa10c04917e693a40a60be8d742ddd7992bf5d8afeb
23 AUX gcc-configure-texinfo.patch 337 SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98 SHA512 a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5 WHIRLPOOL 39d008aad06f7621e4e5db15f5e85a59e583b43f8d247029bd4944466bb60a9795bda157d185c45c329294078e282703a243aad5c468d90c77665dd6336870d4
24 AUX gcc-spec-env-r1.patch 3148 SHA256 da0a6442eb42bce58cbdc7858b110a2e65fc5bd5b4b780b9b491033de6e302fa SHA512 ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16 WHIRLPOOL 3535605998eabccdee71ba396ed5cefbb8b0a8cb073101f6444c7d01233f3b3904c1b29f4daf0a3417c68de8dbd62a0b7dc367cacfcbfa0c4ee1b69b7df8c6fb
25 @@ -57,5 +58,5 @@ EBUILD gcc-4.8.5-r99.ebuild 2139 SHA256 0b762e2fb8c2bf92488b598c01977b07a3786afe
26 EBUILD gcc-4.8.5-r999.ebuild 2185 SHA256 7b8b261c0d3ea2e34a2f099b4f0a23a5bfd61e814dead44aeb4e45071be2c3f1 SHA512 e8f6e8bba4fd7818c30a555adcf25acbe818919c98204f91e27be04566aa267b9394547045e05e5486437853ceb1b75229d86089f69409a626a9e81e363c12db WHIRLPOOL 872e4f0e40e2b9a0a51002c64e682eca1990c2b968c8917b9a1a7c309075a048ceffd7925bf7f67cb3f304badbf29ee5e94772f5a86503e1e5e42fa7682fb87e
27 EBUILD gcc-4.9.3-r99.ebuild 2195 SHA256 3f5be66ffc6fb064e14a24cb9005d1835685573f245ed1aa5143c5f5e7ba1a90 SHA512 c49043c69947bc37ab31142f51060ebc8d922bb13d4aae17957c60bb45e2494cba4724e8af3ac2f0d4f09ca4b3676645657a08b4893ca01175917bc07ce827d9 WHIRLPOOL 9b1bec2a6fe2ae003a94ba73bcf4b207db0f5a2988288820581508de7649d3e46a163852514755f49051be00fc43846844cd24cd1a8fe2462315ddeb53faf0a6
28 EBUILD gcc-4.9.3-r999.ebuild 1794 SHA256 514b9f6cddb5e6a43c53f866aa501812319bfccf7fb7713316563d55cb139aff SHA512 c7f4aad21658d6acb99f14b3b51707a74387206b9fc3629d962c755a7eb8a963b3df844ba60172305fc2e753fc7178d4723f02a487aeae643c85ff00062b4bd3 WHIRLPOOL c6372f1014c5b8d22023f04b7223db4ae5d898f450f3d5cf286ccd82553f916978fba8d0910dc72fd5cdd1d92ecce9749597b09e252a58ff898d3616221af685
29 -EBUILD gcc-6.1.0.ebuild 968 SHA256 876c7b22e5f1e087522310e091d31f3f51ad05bc55dc13bc86408c1eef2cd7fc SHA512 a340bc7f463a882ac1786ec25f90b49eca97a7707fcfc80cb05dc2c29e923809cac02161fb63207179036ff48530cd6a4fd34fc6b12c66a6edeb55b838cc0183 WHIRLPOOL f08659c53cb48bdc3d8f0b2c4fd6f2894f037d931216892143dc3927f56124655d7dccde6b8c7664af2329b4e8dc9d919789080063e6b73f725dc385bd7de2a5
30 +EBUILD gcc-6.1.0.ebuild 1076 SHA256 6d5acd2030e949af48922a3da83541c0720037212c71c1867e5de8373e8bc0b0 SHA512 7f4c657c930a7cb0cfdd34ff8fa811eb2e62834ed0ec094db6bbc5123ea8c86b72df1cf32d6660c0ef2dc3863276081665b95af0a1c47a1ba14802a5559e776d WHIRLPOOL 73f9a4277585013050291df58b6d0c7db7fa65baed51c0a1b9462c212281de9d98d50c63be9d703fd45efb61e596fb74861aa41e17f4ac1917adb4f44961c18a
31 MISC metadata.xml 2039 SHA256 b200834baf1ac8adf966540ee7e50dbf1397248f08eeff35a8bde6bb16dbcc50 SHA512 b8fe281c88017b4d5d2ac05ea4e074d740b3943bc0d4cd361ec4f161f2549fb6401a2fa7881c06a4eae33ffd9755b6ebc4fa608654ec04838bff49ff22ee74a8 WHIRLPOOL e063f7657a00a1e675a57000fed2fac1c05e986488f3a705c95909ac7a2e74ca8f97c6fb8bfffdb81388a967228a78adbcfa93b166d4095aade5875aaf350fa0
32 diff --git a/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch b/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch
33 new file mode 100644
34 index 0000000..c11afb5
35 --- /dev/null
36 +++ b/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch
37 @@ -0,0 +1,32 @@
38 +diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
39 +index 3d044e8..82523e1 100644
40 +--- a/gcc/config/i386/i386.c
41 ++++ b/gcc/config/i386/i386.c
42 +@@ -40269,10 +40269,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
43 + {
44 + case IX86_BUILTIN_CPU_INIT:
45 + {
46 +- /* Make it call __cpu_indicator_init in libgcc. */
47 ++ /* Make it call __cpu_indicator_init_local in libgcc.a. */
48 + tree call_expr, fndecl, type;
49 + type = build_function_type_list (integer_type_node, NULL_TREE);
50 +- fndecl = build_fn_decl ("__cpu_indicator_init", type);
51 ++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
52 + call_expr = build_call_expr (fndecl, 0);
53 + return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
54 + }
55 +diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
56 +index 8c2248d..6c82f15 100644
57 +--- a/libgcc/config/i386/cpuinfo.c
58 ++++ b/libgcc/config/i386/cpuinfo.c
59 +@@ -485,7 +485,7 @@ __cpu_indicator_init (void)
60 + return 0;
61 + }
62 +
63 +-#if defined SHARED && defined USE_ELF_SYMVER
64 +-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
65 +-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
66 ++#ifndef SHARED
67 ++int __cpu_indicator_init_local (void)
68 ++ __attribute__ ((weak, alias ("__cpu_indicator_init")));
69 + #endif
70 diff --git a/sys-devel/gcc/gcc-6.1.0.ebuild b/sys-devel/gcc/gcc-6.1.0.ebuild
71 index e23afe3..837ef48 100644
72 --- a/sys-devel/gcc/gcc-6.1.0.ebuild
73 +++ b/sys-devel/gcc/gcc-6.1.0.ebuild
74 @@ -38,4 +38,7 @@ fi
75 src_prepare() {
76
77 toolchain_src_prepare
78 + if use elibc_musl || [[ ${CATEGORY} = cross-*-musl ]]; then
79 + epatch "${FILESDIR}"/${P}-musl-cpu.patch
80 + fi
81 }
82 --
83 2.7.3

Replies

Subject Author
Re: [gentoo-musl] gcc 6.1 "Anthony G. Basile" <basile@××××××××××××××.edu>