This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [PATCH/RFC] SH64 EH with pic (2/4)


Joern Rennecke <joern.rennecke@superh.com> wrote:
>> The appended patch uses DW_EH_PE_sdata4 (resp. DW_EH_PE_sdata8)
>> instead of DW_EH_PE_textrel for the 32-bit (resp. 64-bit) object.
>> I guess DW_EH_PE_sdata* is harmless both for static and dynamic
>> objects.
> 
> Is there a particular reason that you encode text symbols with the
> sdata* encodings?  On the face of it, it would seem more intuitive
> to use these for data symbols.

With using the textrel bit, the linker fails at an assert statement like:

/usr/local/bin/sh64-unknown-linux-gnu-ld: BFD 2.15.92 20040916 assertion fail ../../src/bfd/elf-eh-frame.c:954

when creating shared libraries.  The first example is libgcc.so.1.
It seems that DW_EH_PE_textrel in FDE is checked specially there in
the linker.

I agree that the use of sdataN is uncomfortable, but I couldn't find
other usable DW_EH_PE_xxx bits.
I guess that we could have "soft bits" in the EH data format encoding
rather than "physical bits" which are the currnet 8 DW_EH_PE_xxx bits,
though it might be inappropriate for stage3.

Regards,
	kaz


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