[GCC 3.0]: exception frame info confuse OpenBSD as
Robert Lipe
robertlipe@usa.net
Fri Jul 6 06:11:00 GMT 2001
Marc Espie wrote:
> In gcc 3.0, the frame info confuses 'as' badly on some OpenBSD platforms.
[ ... ]
> Namely, constructs such as
> The
> .long LFB1-. ;# FDE initial location
> tries to create a relocation between a text label and a data position.
It isn't really a reloc; it's effectively a constant that just happens
to come from two different sections.
> Our gas barfs on that.
So far, this construct hasn't been observed to work on any IA32
assembler that isn't GAS. And now you're telling us it doesn't work on
some GAS version, either. Hmmm...
I think the knob you're looking for was implemented by RTH and can be
observed at the end of sysv4.h:
/* Select a format to encode pointers in exception handling data. CODE
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
true if the symbol may be affected by dynamic relocations. */
#undef ASM_PREFERRED_EH_DATA_FORMAT
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
(flag_pic ? (GLOBAL ? DW_EH_PE_indirect : 0) | DW_EH_PE_datarel \
: DW_EH_PE_absptr)
RJL
More information about the Gcc-bugs
mailing list