From 7c52b8ddaeaf6f30b3c5c4b371602c6b12ea8a81 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 May 2016 08:05:21 -0600 Subject: [PATCH] Add a .noinit section to all ARMv7-A linker scripts --- Documentation/NuttxPortingGuide.html | 2 +- configs/pcduino-a10/scripts/sdram.ld | 27 ++++++++++++++----- configs/sabre-6quad/scripts/dramboot.ld | 24 +++++++++++++---- configs/sama5d2-xult/scripts/dramboot.ld | 27 ++++++++++++++----- configs/sama5d2-xult/scripts/gnu-elf.ld | 11 +++++++- configs/sama5d2-xult/scripts/isram.ld | 24 +++++++++++++---- configs/sama5d2-xult/scripts/uboot.ld | 27 ++++++++++++++----- configs/sama5d3-xplained/scripts/ddram.ld | 27 ++++++++++++++----- configs/sama5d3-xplained/scripts/gnu-elf.ld | 11 +++++++- configs/sama5d3-xplained/scripts/isram.ld | 27 ++++++++++++++----- configs/sama5d3x-ek/scripts/ddram.ld | 27 ++++++++++++++----- configs/sama5d3x-ek/scripts/gnu-elf.ld | 11 +++++++- configs/sama5d3x-ek/scripts/isram.ld | 27 ++++++++++++++----- configs/sama5d3x-ek/scripts/nor-ddram.ld | 27 ++++++++++++++----- configs/sama5d3x-ek/scripts/nor-isram.ld | 30 ++++++++++++++++----- configs/sama5d3x-ek/scripts/pg-sram.ld | 30 ++++++++++++++++----- configs/sama5d4-ek/scripts/dramboot.ld | 27 ++++++++++++++----- configs/sama5d4-ek/scripts/gnu-elf.ld | 11 +++++++- configs/sama5d4-ek/scripts/isram.ld | 27 ++++++++++++++----- configs/sama5d4-ek/scripts/uboot.ld | 27 ++++++++++++++----- 20 files changed, 356 insertions(+), 95 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e44d380fc0..ff3990c9d9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

NuttX RTOS Porting Guide

-

Last Updated: March 28, 2016

+

Last Updated: May 12, 2016

diff --git a/configs/pcduino-a10/scripts/sdram.ld b/configs/pcduino-a10/scripts/sdram.ld index 414c408a4a..b4eaeef8d7 100644 --- a/configs/pcduino-a10/scripts/sdram.ld +++ b/configs/pcduino-a10/scripts/sdram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/pcduino-a10/scripts/sdram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -49,7 +49,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -67,13 +68,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -86,7 +89,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -94,7 +98,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -102,7 +107,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sabre-6quad/scripts/dramboot.ld b/configs/sabre-6quad/scripts/dramboot.ld index ef87268ff6..f1134bcc92 100644 --- a/configs/sabre-6quad/scripts/dramboot.ld +++ b/configs/sabre-6quad/scripts/dramboot.ld @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > ddr3 - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > ddr3 - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > ddr3 @@ -92,7 +95,10 @@ SECTIONS } > ddr3 PROVIDE_HIDDEN (__exidx_end = .); - .data : { + /* Uninitialized data */ + + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +106,8 @@ SECTIONS _edata = ABSOLUTE(.); } > ddr3 - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,6 +115,13 @@ SECTIONS _ebss = ABSOLUTE(.); } > ddr3 + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > ddr3 + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } diff --git a/configs/sama5d2-xult/scripts/dramboot.ld b/configs/sama5d2-xult/scripts/dramboot.ld index 0494ff0a91..e921c5e8aa 100644 --- a/configs/sama5d2-xult/scripts/dramboot.ld +++ b/configs/sama5d2-xult/scripts/dramboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/dramboot.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,7 +54,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -72,13 +73,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -91,7 +94,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -99,7 +103,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -107,7 +112,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d2-xult/scripts/gnu-elf.ld b/configs/sama5d2-xult/scripts/gnu-elf.ld index d84460b4c0..7f35d218bc 100644 --- a/configs/sama5d2-xult/scripts/gnu-elf.ld +++ b/configs/sama5d2-xult/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/gnu-elf.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d2-xult/scripts/isram.ld b/configs/sama5d2-xult/scripts/isram.ld index a170e02260..a5b1afe9a0 100644 --- a/configs/sama5d2-xult/scripts/isram.ld +++ b/configs/sama5d2-xult/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/isram.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,7 +70,8 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); @@ -88,7 +90,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +99,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +108,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d2-xult/scripts/uboot.ld b/configs/sama5d2-xult/scripts/uboot.ld index 66e524d922..3ad820747d 100644 --- a/configs/sama5d2-xult/scripts/uboot.ld +++ b/configs/sama5d2-xult/scripts/uboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/uboot.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3-xplained/scripts/ddram.ld b/configs/sama5d3-xplained/scripts/ddram.ld index edb3f63a49..9c3243d04e 100644 --- a/configs/sama5d3-xplained/scripts/ddram.ld +++ b/configs/sama5d3-xplained/scripts/ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/ddram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3-xplained/scripts/gnu-elf.ld b/configs/sama5d3-xplained/scripts/gnu-elf.ld index 88c53fe05f..ffd6dc04b3 100644 --- a/configs/sama5d3-xplained/scripts/gnu-elf.ld +++ b/configs/sama5d3-xplained/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d3-xplained/scripts/isram.ld b/configs/sama5d3-xplained/scripts/isram.ld index dae430c308..847d3e58b3 100644 --- a/configs/sama5d3-xplained/scripts/isram.ld +++ b/configs/sama5d3-xplained/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/isram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/ddram.ld b/configs/sama5d3x-ek/scripts/ddram.ld index 8735df50a6..6376646ba2 100644 --- a/configs/sama5d3x-ek/scripts/ddram.ld +++ b/configs/sama5d3x-ek/scripts/ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/ddram.ld * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/gnu-elf.ld b/configs/sama5d3x-ek/scripts/gnu-elf.ld index 82c9b37e2f..6b77f5dffd 100644 --- a/configs/sama5d3x-ek/scripts/gnu-elf.ld +++ b/configs/sama5d3x-ek/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d3x-ek/scripts/isram.ld b/configs/sama5d3x-ek/scripts/isram.ld index 0dde103d99..c7c3ac1799 100644 --- a/configs/sama5d3x-ek/scripts/isram.ld +++ b/configs/sama5d3x-ek/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/isram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/nor-ddram.ld b/configs/sama5d3x-ek/scripts/nor-ddram.ld index ecebee5930..1787e05a19 100644 --- a/configs/sama5d3x-ek/scripts/nor-ddram.ld +++ b/configs/sama5d3x-ek/scripts/nor-ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/nor-ddram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -60,7 +60,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -78,13 +79,15 @@ SECTIONS _etext = ABSOLUTE(.); } > norflash - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > norflash - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > norflash @@ -97,7 +100,8 @@ SECTIONS } > norflash PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -107,7 +111,8 @@ SECTIONS _eronly = LOADADDR(.data); - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -115,7 +120,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/nor-isram.ld b/configs/sama5d3x-ek/scripts/nor-isram.ld index c8681562e2..6d667f5e09 100644 --- a/configs/sama5d3x-ek/scripts/nor-isram.ld +++ b/configs/sama5d3x-ek/scripts/nor-isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/nor-isram.ld * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -56,7 +56,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -74,13 +75,15 @@ SECTIONS _etext = ABSOLUTE(.); } > norflash - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > norflash - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > norflash @@ -93,7 +96,8 @@ SECTIONS } > norflash PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -103,7 +107,8 @@ SECTIONS _eronly = LOADADDR(.data); - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -111,7 +116,8 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram - .ramfunc ALIGN(4): { + .ramfunc ALIGN(4): + { _sramfuncs = ABSOLUTE(.); *(.ramfunc .ramfunc.*) _eramfuncs = ABSOLUTE(.); @@ -119,7 +125,17 @@ SECTIONS _framfuncs = LOADADDR(.ramfunc); + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/pg-sram.ld b/configs/sama5d3x-ek/scripts/pg-sram.ld index 549802619f..31c49abb34 100644 --- a/configs/sama5d3x-ek/scripts/pg-sram.ld +++ b/configs/sama5d3x-ek/scripts/pg-sram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/pg-isram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -79,7 +79,8 @@ ENTRY(_stext) SECTIONS { - .locked : { + .locked : + { _slocked = ABSOLUTE(.); *(.vectors) up_head.o locked.r (.text .text.*) @@ -95,7 +96,8 @@ SECTIONS _elocked = ABSOLUTE(.); } >locked - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); @@ -110,7 +112,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .paged : { + .paged : + { _spaged = ABSOLUTE(.); *(.text .text.*) *(.fixup) @@ -127,7 +130,8 @@ SECTIONS _epaged = ABSOLUTE(.); } > paged - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -135,14 +139,26 @@ SECTIONS _edata = ABSOLUTE(.); } > data AT > locked - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) *(COMMON) _ebss = ABSOLUTE(.); } > data - /* Stabs debugging sections. */ + + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > data + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/dramboot.ld b/configs/sama5d4-ek/scripts/dramboot.ld index 4ca01c6b88..2e19a34be3 100644 --- a/configs/sama5d4-ek/scripts/dramboot.ld +++ b/configs/sama5d4-ek/scripts/dramboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/dramboot.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,7 +54,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -72,13 +73,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -91,7 +94,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -99,7 +103,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -107,7 +112,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/gnu-elf.ld b/configs/sama5d4-ek/scripts/gnu-elf.ld index 6d402a750d..6cab7801d1 100644 --- a/configs/sama5d4-ek/scripts/gnu-elf.ld +++ b/configs/sama5d4-ek/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d4-ek/scripts/isram.ld b/configs/sama5d4-ek/scripts/isram.ld index 85bc4dfc4f..70689842f2 100644 --- a/configs/sama5d4-ek/scripts/isram.ld +++ b/configs/sama5d4-ek/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/isram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/uboot.ld b/configs/sama5d4-ek/scripts/uboot.ld index 530be22418..2a76487ccf 100644 --- a/configs/sama5d4-ek/scripts/uboot.ld +++ b/configs/sama5d4-ek/scripts/uboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/uboot.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) }