This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]