Propagating addresses from linker to the runtie
Florian Weimer
fweimer@redhat.com
Fri Oct 18 14:34:00 GMT 2019
* Segher Boessenkool:
> On Fri, Oct 18, 2019 at 02:56:03PM +0200, Florian Weimer wrote:
>> > You just need to have linker scripts that do not sabotage this :-)
>>
>> But it doesn't work on s390x if the section has a size that is not a
>> multiple of 2 because all global symbols must have alignment 2 or more
>> on that architecture (of course __alignof (symbol) may still say 1
>> because *that* has to reflect C semantics).
>
> How does the output section not get enough alignment? Is that the linker's
> fault, or are the command-line flags wrong, or is it the linker script?
>
> Does the *input* section have enough alignment?
Sorry, I don't understand. The problem is that the difference between
two global symbols is always a multiple of two. If your section length
is odd, you can't express the section length as a difference between two
symbols. It's not something that stems from section properties, it
comes from restrictions that relocations have.
Thanks,
Florian
More information about the Gcc-help
mailing list