This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: hppa: glibc and gcc 4.6, "error: _rtld_global_ro causes a section type conflict"
On Tue, Apr 24, 2012 at 7:55 PM, John David Anglin <dave.anglin@bell.net> wrote:
> On 15-Apr-12, at 11:00 AM, Carlos O'Donell wrote:
>
>> When compiling glibc on magnum with gcc-4.6 I get an odd failure about
>> section type conflicts.
>
>
>
> After discussing the issue with Jakub Jelinek, ?it appears the bug is caused
> by placing
> function labels (plabels) in the constant pool.
Interesting.
> PA has done this for longer
> than I can
> remember, but it doesn't appear necessary. ?As you know, only ia64 and pa
> use plabels.
Yes, we both rely on the plabel code in glibc.
> This causes the setting of default flags for .data.rel.ro which conflict
> with those needed
> for _rtld_global_ro in the dynamic linker. ?The problem doesn't have
> anything directly
> to do with the handling of the variable _rtld_global_ro. ?This was what was
> confusing
> me as everything seemed generic.
Me too.
> I am testing a fix. ?Your testcase compiles successfully with the fix.
Excellent!
> The issue is incredibly subtle. ?I would guess it was just a matter of luck
> that other targets
> aren't affected given that the code in rtld.c is not exactly exactly kosher
> from GCC POV.
The dynamic linker isn't exactly kosher :-)
Cheers,
Carlos.