Commit 54ca4123363f388ab724fc66da92b87dc05395c3

Authored by Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix:
  sparc64: fix alignment bug in linker definition script

Showing 2 changed files Side-by-side Diff

arch/sparc64/kernel/vmlinux.lds.S
1 1 /* ld script to make UltraLinux kernel */
2 2  
  3 +#include <asm/page.h>
3 4 #include <asm-generic/vmlinux.lds.h>
4 5  
5 6 OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc")
... ... @@ -23,7 +24,7 @@
23 24 _etext = .;
24 25 PROVIDE (etext = .);
25 26  
26   - RODATA
  27 + RO_DATA(PAGE_SIZE)
27 28  
28 29 .data :
29 30 {
... ... @@ -44,7 +45,7 @@
44 45 __ex_table : { *(__ex_table) }
45 46 __stop___ex_table = .;
46 47  
47   - . = ALIGN(8192);
  48 + . = ALIGN(PAGE_SIZE);
48 49 __init_begin = .;
49 50 .init.text : {
50 51 _sinittext = .;
51 52  
52 53  
... ... @@ -83,17 +84,17 @@
83 84 __sun4v_2insn_patch_end = .;
84 85  
85 86 #ifdef CONFIG_BLK_DEV_INITRD
86   - . = ALIGN(8192);
  87 + . = ALIGN(PAGE_SIZE);
87 88 __initramfs_start = .;
88 89 .init.ramfs : { *(.init.ramfs) }
89 90 __initramfs_end = .;
90 91 #endif
91 92  
92   - . = ALIGN(8192);
  93 + . = ALIGN(PAGE_SIZE);
93 94 __per_cpu_start = .;
94 95 .data.percpu : { *(.data.percpu) }
95 96 __per_cpu_end = .;
96   - . = ALIGN(8192);
  97 + . = ALIGN(PAGE_SIZE);
97 98 __init_end = .;
98 99 __bss_start = .;
99 100 .sbss : { *(.sbss) *(.scommon) }
include/asm-generic/vmlinux.lds.h
... ... @@ -14,8 +14,8 @@
14 14 *(.data) \
15 15 *(.data.init.refok)
16 16  
17   -#define RODATA \
18   - . = ALIGN(4096); \
  17 +#define RO_DATA(align) \
  18 + . = ALIGN((align)); \
19 19 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
20 20 VMLINUX_SYMBOL(__start_rodata) = .; \
21 21 *(.rodata) *(.rodata.*) \
... ... @@ -135,7 +135,11 @@
135 135 VMLINUX_SYMBOL(__end_rodata) = .; \
136 136 } \
137 137 \
138   - . = ALIGN(4096);
  138 + . = ALIGN((align));
  139 +
  140 +/* RODATA provided for backward compatibility.
  141 + * All archs are supposed to use RO_DATA() */
  142 +#define RODATA RO_DATA(4096)
139 143  
140 144 #define SECURITY_INIT \
141 145 .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \