diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2007-05-29 21:29:00 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2007-05-29 21:29:00 +0200 |
commit | 4096b46f01a362fe2cc83f6be25cc7be6bce2ab7 (patch) | |
tree | 7738ca7a7962dc88cc5b9e6dc3b789e73504a7c8 /include/asm-generic | |
parent | Linux 2.6.22-rc3 (diff) | |
download | linux-4096b46f01a362fe2cc83f6be25cc7be6bce2ab7.tar.xz linux-4096b46f01a362fe2cc83f6be25cc7be6bce2ab7.zip |
sparc64: fix alignment bug in linker definition script
The RO_DATA section were hardcoded to a specific
alignment in include/asm-generic/vmlinux.h.
But for sparc64 this did not match the PAGE_SIZE.
Introduce a new section definition named:
RO_DATA that takes actual alignment as parameter.
RODATA are provided for backward compatibility.
On top of this avoid hardcoding alignment for
sparc64 in reset of the script
Fix is build-tested on sparc64 + x86_64.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 8307b1bb337a..84155eb67f1d 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -14,8 +14,8 @@ *(.data) \ *(.data.init.refok) -#define RODATA \ - . = ALIGN(4096); \ +#define RO_DATA(align) \ + . = ALIGN((align)); \ .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start_rodata) = .; \ *(.rodata) *(.rodata.*) \ @@ -135,7 +135,11 @@ VMLINUX_SYMBOL(__end_rodata) = .; \ } \ \ - . = ALIGN(4096); + . = ALIGN((align)); + +/* RODATA provided for backward compatibility. + * All archs are supposed to use RO_DATA() */ +#define RODATA RO_DATA(4096) #define SECURITY_INIT \ .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \ |