Dynamic PLABELS in .eh_frame don't work as expected on hppa-linux
John David Anglin
dave@hiauly1.hia.nrc.ca
Mon Feb 25 15:27:00 GMT 2002
More information about the Binutils mailing list
Mon Feb 25 15:27:00 GMT 2002
- Previous message (by thread): bfd elflink.h patch
- Next message (by thread): elf-bfd.h: plt_header_size unused?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I have been working trying to get frame notes and exceptions working
on hppa-linux usings the dwarf2 unwinding mechanism. Issues have
arisen with function pointers and code labels. The specific problem
at hand is the indirect call from _Unwind_RaiseException to the
personality function __gxx_personality_v0 in eh_personality.cc fails
when the application is linked with one or more shared libraries
because a function descriptor isn't used for the call.
I have ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) and
ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX defined as follows:
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
(CODE != 0 \
? DW_EH_PE_aligned \
: DW_EH_PE_absptr)
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
do { \
if (((ENCODING) & 0x0F) == DW_EH_PE_aligned) \
{ \
fputs (integer_asm_op (SIZE, FALSE), FILE); \
fputs ("P%", FILE); \
assemble_name (FILE, XSTR (ADDR, 0)); \
goto DONE; \
} \
} while (0)
Ideally, it would be nice to use an indirect data relative relocation
but I haven't been able to resolve the issues with specifying the base
for the relocation, etc. The above ouputs an aligned plabel for
code labels and function pointers in the .eh_frame section.
The above defines seem to work with shared code under hpux and static
linked code under hppa-linux. However, the dynamic loader doesn't
do the right thing under hppa-linux and I don't know why. Any clues
as to why plabels don't work in .eh_frame? It's read/write.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
- Previous message (by thread): bfd elflink.h patch
- Next message (by thread): elf-bfd.h: plt_header_size unused?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list