2010/9/28 Kai Tietz <[email protected]>:
> 2010/9/28 Richard Henderson <[email protected]>:
>> 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
>>
>> but it seems better simply to force the use of dwarf3
>> for this target. Suggestions about how to go about this
>> within the tangled mess of option processing?
>>
>>
>> r~
>>
>
> Well, dwarf-3 is ok, if it helps to solve the issue. On the other hand
> to fake it by secrel32 ref ; .long 0 looks not wrong to me. As PE+
> is limited in image size to 2GB there should be any issue about it. A
> section relative offset can't get bigger then 2^31 bits.
> We could introduce here a .seclrel64 relocation, but wouldn't be
> covered by standard.
>
> Cheers,
> Kai
>
> --
> | (\_/) This is Bunny. Copy and paste
> | (='.'=) Bunny into your signature to help
> | (")_(") him gain world domination
>
The fix would be then in cygming.h ASM_OUTPUT_DWARF_OFFSET to emit for
64-bit, if SIZE == 8, an additional .long 0 after the .secrel32.
Regards,
Kai
--
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination