This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH] PR target/65612: Multiversioning doesn't work with DSO nor PIE
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: Mike Stump <mikestump at comcast dot net>, Jack Howarth <howarth dot at dot gcc at gmail dot com>, Ian Lance Taylor <ian at airs dot com>, Jakub Jelinek <jakub at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Iain Sandoe <iain at codesourcery dot com>, Rainer Orth <ro at cebitec dot uni-bielefeld dot de>
- Date: Fri, 17 Apr 2015 03:36:17 -0700
- Subject: Re: PATCH] PR target/65612: Multiversioning doesn't work with DSO nor PIE
- Authentication-results: sourceware.org; auth=none
- References: <20150330022527 dot GA4148 at gmail dot com> <CAMe9rOrUpMmt8XyqO9fXZB-Bn+tRs-AKHTaQzu7jeGCZFXen8g at mail dot gmail dot com> <CAMe9rOp_LfJ8C4Xh4NoRD=rTutNCeqwN_OV=8+c5rFfnRHbV_g at mail dot gmail dot com> <CAMe9rOrGCRJhWpNT0hMJwKCG2+vaDsaRou7JV0tdjiANnmRm=g at mail dot gmail dot com> <CAJMcOU8nON6S=+be8C94F_tB8-VPCusa8VrEq_f5P2PZCdk7vg at mail dot gmail dot com> <CAMe9rOo2ORmyvndySKr3vzEQmZScpKQfnVVw7HW94BXvPFJqdQ at mail dot gmail dot com> <20150331053855 dot GB2121 at tucnak dot redhat dot com> <CAMe9rOrm=9gkqjFwEX8GVtri3t2mSmgOqfm_Q+LizCJqbLSAKQ at mail dot gmail dot com> <CAJMcOU_Pjryr7TxKx9zYKBtVEvBj8bmXDr=UBqShyE0CPr-cOA at mail dot gmail dot com> <CAMe9rOoRkeyw9SMuEev_ATE932UNhJBUPUd+Z81Qc1L+VpVkxw at mail dot gmail dot com> <CAJMcOU915GeWmwhTOvqXPQddZfYdJdVGQJUbMWXTEiz4y0QW9w at mail dot gmail dot com> <CAMe9rOp9kPZFhEE=seWX_VXC0NndYxtJ8Opt-kkCMSteeTuRuA at mail dot gmail dot com> <CAJMcOU8xHsE6ZyVSHy90AUgkSpY8FfG53xT+jGO=TALo27ViSA at mail dot gmail dot com> <CAMe9rOqAjsLAr+iVspN5XBdnaVtW_AJuMyOb3K6mVRKKh-sQXg at mail dot gmail dot com> <CAJMcOU9hcqopdDfpYbP5d=JLVVLUMnvqZWPQt14kH3T6DgVB8w at mail dot gmail dot com> <CAMe9rOpj-nx=eYzLD9gjy4tVuUbbii8nx0pzM8ynWEvK+WLPLA at mail dot gmail dot com> <B1F30D20-7B2F-477E-87AB-82BAA7039767 at comcast dot net> <CAFULd4aTcfyDVpMQVyZ2Po=BCG5ZQxV1Qq5TD5xsZ3LeGNwOFw at mail dot gmail dot com>
On Fri, Apr 17, 2015 at 1:05 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Thu, Apr 16, 2015 at 6:28 PM, Mike Stump <mikestump@comcast.net> wrote:
>> On Apr 14, 2015, at 8:07 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> I can confirm that the most current patch bootstraps on
>>>> x86_64-apple-darwin14 and that all of the new tests show up as
>>>> unsupported in the test suite.
>>>> Jack
>>>
>>> I am re-posting this patch. OK for trunk?
>>
>> If Jack is happy, Iâm happy. :-) That leaves the x86 people to comment on it.
>
> What about Solaris?
>
> Uros.
There are
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index eaf2f10..f6f91dd 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -109,7 +109,7 @@ struct __processor_model
unsigned int __cpu_type;
unsigned int __cpu_subtype;
unsigned int __cpu_features[1];
-} __cpu_model;
+} __cpu_model = { };
/* Get the specific type of AMD CPU. */
@@ -424,3 +424,8 @@ __cpu_indicator_init (void)
return 0;
}
+
+#if defined SHARED && defined USE_ELF_SYMVER
+__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
+__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
+#endif
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 4f47f7b..11bb46e 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,4 +3,4 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER
USE_ELF_SYMVER is only defined for Linux. This patch won't
break Solaris.
--
H.J.