diff options
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 92b73b6140ff..6ad76bf5fb40 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -30,9 +30,7 @@ | |||
30 | * EXCEPTION_TABLE(...) | 30 | * EXCEPTION_TABLE(...) |
31 | * NOTES | 31 | * NOTES |
32 | * | 32 | * |
33 | * __bss_start = .; | 33 | * BSS_SECTION(0, 0, 0) |
34 | * BSS_SECTION(0, 0) | ||
35 | * __bss_stop = .; | ||
36 | * _end = .; | 34 | * _end = .; |
37 | * | 35 | * |
38 | * /DISCARD/ : { | 36 | * /DISCARD/ : { |
@@ -191,7 +189,7 @@ | |||
191 | . = ALIGN(align); \ | 189 | . = ALIGN(align); \ |
192 | *(.data.cacheline_aligned) | 190 | *(.data.cacheline_aligned) |
193 | 191 | ||
194 | #define INIT_TASK(align) \ | 192 | #define INIT_TASK_DATA(align) \ |
195 | . = ALIGN(align); \ | 193 | . = ALIGN(align); \ |
196 | *(.data.init_task) | 194 | *(.data.init_task) |
197 | 195 | ||
@@ -434,14 +432,15 @@ | |||
434 | /* | 432 | /* |
435 | * Init task | 433 | * Init task |
436 | */ | 434 | */ |
437 | #define INIT_TASK_DATA(align) \ | 435 | #define INIT_TASK_DATA_SECTION(align) \ |
438 | . = ALIGN(align); \ | 436 | . = ALIGN(align); \ |
439 | .data.init_task : { \ | 437 | .data.init_task : { \ |
440 | INIT_TASK \ | 438 | INIT_TASK_DATA(align) \ |
441 | } | 439 | } |
442 | 440 | ||
443 | #ifdef CONFIG_CONSTRUCTORS | 441 | #ifdef CONFIG_CONSTRUCTORS |
444 | #define KERNEL_CTORS() VMLINUX_SYMBOL(__ctors_start) = .; \ | 442 | #define KERNEL_CTORS() . = ALIGN(8); \ |
443 | VMLINUX_SYMBOL(__ctors_start) = .; \ | ||
445 | *(.ctors) \ | 444 | *(.ctors) \ |
446 | VMLINUX_SYMBOL(__ctors_end) = .; | 445 | VMLINUX_SYMBOL(__ctors_end) = .; |
447 | #else | 446 | #else |
@@ -488,7 +487,8 @@ | |||
488 | * bss (Block Started by Symbol) - uninitialized data | 487 | * bss (Block Started by Symbol) - uninitialized data |
489 | * zeroed during startup | 488 | * zeroed during startup |
490 | */ | 489 | */ |
491 | #define SBSS \ | 490 | #define SBSS(sbss_align) \ |
491 | . = ALIGN(sbss_align); \ | ||
492 | .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \ | 492 | .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \ |
493 | *(.sbss) \ | 493 | *(.sbss) \ |
494 | *(.scommon) \ | 494 | *(.scommon) \ |
@@ -497,12 +497,10 @@ | |||
497 | #define BSS(bss_align) \ | 497 | #define BSS(bss_align) \ |
498 | . = ALIGN(bss_align); \ | 498 | . = ALIGN(bss_align); \ |
499 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ | 499 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ |
500 | VMLINUX_SYMBOL(__bss_start) = .; \ | ||
501 | *(.bss.page_aligned) \ | 500 | *(.bss.page_aligned) \ |
502 | *(.dynbss) \ | 501 | *(.dynbss) \ |
503 | *(.bss) \ | 502 | *(.bss) \ |
504 | *(COMMON) \ | 503 | *(COMMON) \ |
505 | VMLINUX_SYMBOL(__bss_stop) = .; \ | ||
506 | } | 504 | } |
507 | 505 | ||
508 | /* | 506 | /* |
@@ -704,15 +702,15 @@ | |||
704 | * matches the requirment of PAGE_ALIGNED_DATA. | 702 | * matches the requirment of PAGE_ALIGNED_DATA. |
705 | * | 703 | * |
706 | * use 0 as page_align if page_aligned data is not used */ | 704 | * use 0 as page_align if page_aligned data is not used */ |
707 | #define RW_DATA_SECTION(cacheline, nosave, pagealigned, inittask) \ | 705 | #define RW_DATA_SECTION(cacheline, pagealigned, inittask) \ |
708 | . = ALIGN(PAGE_SIZE); \ | 706 | . = ALIGN(PAGE_SIZE); \ |
709 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ | 707 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ |
710 | INIT_TASK(inittask) \ | 708 | INIT_TASK_DATA(inittask) \ |
711 | CACHELINE_ALIGNED_DATA(cacheline) \ | 709 | CACHELINE_ALIGNED_DATA(cacheline) \ |
712 | READ_MOSTLY_DATA(cacheline) \ | 710 | READ_MOSTLY_DATA(cacheline) \ |
713 | DATA_DATA \ | 711 | DATA_DATA \ |
714 | CONSTRUCTORS \ | 712 | CONSTRUCTORS \ |
715 | NOSAVE_DATA(nosave) \ | 713 | NOSAVE_DATA \ |
716 | PAGE_ALIGNED_DATA(pagealigned) \ | 714 | PAGE_ALIGNED_DATA(pagealigned) \ |
717 | } | 715 | } |
718 | 716 | ||
@@ -734,8 +732,10 @@ | |||
734 | INIT_RAM_FS \ | 732 | INIT_RAM_FS \ |
735 | } | 733 | } |
736 | 734 | ||
737 | #define BSS_SECTION(sbss_align, bss_align) \ | 735 | #define BSS_SECTION(sbss_align, bss_align, stop_align) \ |
738 | SBSS \ | 736 | . = ALIGN(sbss_align); \ |
737 | VMLINUX_SYMBOL(__bss_start) = .; \ | ||
738 | SBSS(sbss_align) \ | ||
739 | BSS(bss_align) \ | 739 | BSS(bss_align) \ |
740 | . = ALIGN(4); | 740 | . = ALIGN(stop_align); \ |
741 | 741 | VMLINUX_SYMBOL(__bss_stop) = .; | |