This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [GCC 3.0]: exception frame info confuse OpenBSD as
- To: Marc dot Espie at liafa dot jussieu dot fr
- Subject: Re: [GCC 3.0]: exception frame info confuse OpenBSD as
- From: Robert Lipe <robertlipe at usa dot net>
- Date: Fri, 6 Jul 2001 08:17:08 -0500
- Cc: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- References: <20010706150328.A6693@schutzenberger.liafa.jussieu.fr>
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