On February 5, 2015 12:29:40 AM GMT+01:00, "H.J. Lu" <hjl.to...@gmail.com> wrote: >On Wed, Feb 4, 2015 at 3:10 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Wed, Feb 4, 2015 at 2:47 PM, Bernhard Reutner-Fischer >> <rep.dot....@gmail.com> wrote: >>> On February 4, 2015 11:37:01 PM GMT+01:00, "H.J. Lu" ><hjl.to...@gmail.com> wrote: >>>>On Wed, Feb 4, 2015 at 1:53 PM, Sriraman Tallam ><tmsri...@google.com> >>>>wrote: >>>>> On Wed, Feb 4, 2015 at 10:57 AM, H.J. Lu <hjl.to...@gmail.com> >wrote: >>>>>> On Wed, Feb 4, 2015 at 10:51 AM, Sriraman Tallam >>>><tmsri...@google.com> wrote: >>>>>>> On Wed, Feb 4, 2015 at 10:45 AM, H.J. Lu <hjl.to...@gmail.com> >>>>wrote: >>>>>>>> On Wed, Feb 4, 2015 at 10:42 AM, Jakub Jelinek ><ja...@redhat.com> >>>>wrote: >>>>>>>>> On Wed, Feb 04, 2015 at 10:38:48AM -0800, H.J. Lu wrote: >>>>>>>>>> Common symbol should be resolved locally for PIE. >>>>>>>>> >>>>>>>>> binds_local_p yes, binds_to_current_def_p no. >>>>>>>>> >>>>>>>> >>>>>>>> Is SYMBOL_REF_LOCAL_P set to binds_local_p or >>>>>>>> binds_to_current_def_p? >>>>>>> >>>>>>> Looks like binds_local_p: >>>>>>> >>>>>>> varasm.c: >>>>>>> void >>>>>>> default_encode_section_info (tree decl, rtx rtl, int first >>>>ATTRIBUTE_UNUSED) >>>>>>> { >>>>>>> ... >>>>>>> if (targetm.binds_local_p (decl)) >>>>>>> flags |= SYMBOL_FLAG_LOCAL; >>>>>>> >>>>>> >>>>>> Why is SYMBOL_REF_LOCAL_P false? >>>>> >>>>> In varasm.c, default_binds_local_p_1 >>>>> >>>>> >>>>> /* Default visibility weak data can be overridden by a strong >symbol >>>>> in another module and so are not local. */ >>>>> else if (DECL_WEAK (exp) >>>>> && !resolved_locally) >>>> ^^^^^^^^^^^^^^^^^^^ >>>>Why is resolved_locally false? It should be true for common >>>>symbol when compiling for PIE. >>>> >>>>> local_p = false; >>>>> >>>>> For weak definition, it is set to false here. >>> >>> Yea and i think this is still wrong and known as >>> http://gcc.gnu.org/PR32219 >>> >> > >I am testing this patch.
I cannot test it ATM, sorry. Please make sure to add the test case from the PR32219, comment13 https://gcc.gnu.org/bugzilla/attachment.cgi?id=27716&action=diff#gcc-4_7-branch/gcc/testsuite/gcc.dg/visibility-21.c_sec1 The PR33219 should be marked as 4.8, 4.9, 5.0 regression, too. Thanks for taking care of this one!