This is the mail archive of the gcc@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: 64-bit pei vs dwarf2


2010/9/28 Jakub Jelinek <jakub@redhat.com>:
> On Mon, Sep 27, 2010 at 05:29:19PM -0700, Richard Henderson wrote:
>> The 64-bit PEI format has a SECREL32 relocation type. ?It
>> does not, however, have a SECREL64 relocation type. ?Which
>> means that for
>>
>> > #define DWARF_REF_SIZE ?\
>> > ? (dwarf_version == 2 ? DWARF2_ADDR_SIZE : DWARF_OFFSET_SIZE)
>>
>> we don't really have something to use for for dwarf2.
>>
>> I could fake it with
>>
>> ? ? ? .secrel32 ? ? ? ref
>> ? ? ? .long ? ? ? ? ? 0
>
> This is something we already use for TLS on x86_64:
> ? ? ? ?.byte ? 0xa ? ? # DW_AT_location
> ? ? ? ?.byte ? 0xe ? ? # DW_OP_const8u
> ? ? ? ?.long ? i@dtpoff, 0
> At least for relocations that are always resolved to locations
> within the same .debug_info section they will be always unsigned
> and thus using .secrel 32 ref; .long 0 is IMHO just fine, and
> implicit pointer currently will never reference anything outside of the
> current executable's or shared library's CU.

So I suggest the following patch. I tested it for x86_64-w64-mingw32
and didn't got regressions. Also the eh/register1.C test produces
correct abbreviations (tested by objdump -Wi).

ChangeLog

2010-09-28  Kai Tietz

          * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output
          addition zero for padding of secrel32 requested for 8 bytes.

I will apply this today, if there aren't any objections.

Regards,
Kai

-- 
|? (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

Attachment: w64_secrel.diff
Description: Binary data


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