diff options
| author | Andi Kleen <ak@colin.muc.de> | 2003-06-15 05:21:41 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-06-15 05:21:41 -0700 |
| commit | 38d5b085d2a0d36ece55bcede84be9ae88cd4481 (patch) | |
| tree | c0d913e4e87de2338fd11e427778ff50948b54f5 /init | |
| parent | aae1760a589df2117879f0b36e098f271735f4b5 (diff) | |
[PATCH] Fix over-alignment problem on x86-64
Thanks to Jan Hubicka who suggested this fix.
The problem seems to be that gcc generates a 32byte alignment for static
objects > 32bytes. This causes gas to set a high alignment on the
section, which causes the uneven (not multiple of sizeof(struct
kernel_param)) section size. The pointer division with a base not being
a multiple of sizeof(*ptr) then causes the invalid result.
This just forces a small alignment, which makes the section end come out
with the correct alignment.
The only mystery left is why ld chose a 16 byte padding instead of
32byte.
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions
