* 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