--- /dev/null
+/* $OpenBSD: kern.ldscript,v 1.1 2018/02/10 06:52:47 patrick Exp $ */
+/* $NetBSD: ldscript.evbarm,v 1.2 2003/03/05 23:54:22 thorpej Exp $ */
+
+OUTPUT_ARCH(arm)
+ENTRY(KERNEL_BASE_phys)
+SECTIONS
+{
+ KERNEL_BASE_phys = @KERNEL_BASE_PHYS@;
+ KERNEL_BASE_virt = @KERNEL_BASE_VIRT@;
+
+ /* Kernel start: */
+ .start (KERNEL_BASE_phys) :
+ {
+ *(.start)
+ } =0
+
+ /* Read-only sections, merged into text segment: */
+ .text (KERNEL_BASE_virt + SIZEOF(.start)) :
+ AT (LOADADDR(.start) + SIZEOF(.start))
+ {
+ *(.text)
+ *(.text.*)
+ *(.stub)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata) *(.rodata.*)
+ } =0
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);
+ PROVIDE (etext = .);
+ /* Adjust the address for the data segment to start on the next page
+ boundary. */
+ . = ALIGN(0x8000);
+ .data :
+ AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
+ {
+ __data_start = . ;
+ *(.data)
+ *(.data.*)
+ }
+ .sdata :
+ AT (LOADADDR(.data) + (ADDR(.sdata) - ADDR(.data)))
+ {
+ *(.sdata)
+ *(.sdata.*)
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+ __bss_start = .;
+ __bss_start__ = .;
+ .sbss :
+ {
+ PROVIDE (__sbss_start = .);
+ PROVIDE (___sbss_start = .);
+ *(.dynsbss)
+ *(.sbss)
+ *(.sbss.*)
+ *(.scommon)
+ PROVIDE (__sbss_end = .);
+ PROVIDE (___sbss_end = .);
+ }
+ .bss :
+ {
+ *(.dynbss)
+ *(.bss)
+ *(.bss.*)
+ *(COMMON)
+ /* Align here to ensure that the .bss section occupies space up to
+ _end. Align after .bss to ensure correct alignment even if the
+ .bss section disappears because there are no input sections. */
+ . = ALIGN(32 / 8);
+ }
+ . = ALIGN(32 / 8);
+ _end = .;
+ _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
+ PROVIDE (end = .);
+ /DISCARD/ :
+ {
+ *(.ARM.exidx)
+ }
+}
+
+++ /dev/null
-/* $OpenBSD: ldscript.head,v 1.2 2005/01/02 19:57:57 drahn Exp $ */
-/* $NetBSD: ldscript.evbarm,v 1.2 2003/03/05 23:54:22 thorpej Exp $
-*/
-
-OUTPUT_ARCH(arm)
-ENTRY(KERNEL_BASE_phys)
-SECTIONS
-{
- KERNEL_BASE_phys = @KERNEL_BASE_PHYS@;
- KERNEL_BASE_virt = @KERNEL_BASE_VIRT@;
-
- /* Kernel start: */
- .start (KERNEL_BASE_phys) :
- {
- *(.start)
- } =0
-
- /* Read-only sections, merged into text segment: */
- .text (KERNEL_BASE_virt + SIZEOF(.start)) :
- AT (LOADADDR(.start) + SIZEOF(.start))
- {
- *(.text)
- *(.text.*)
- *(.stub)
- *(.glue_7t) *(.glue_7)
- *(.rodata) *(.rodata.*)
+++ /dev/null
-/* $OpenBSD: ldscript.tail,v 1.5 2017/10/26 19:01:06 kettenis Exp $ */
- } =0
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- /* Adjust the address for the data segment to start on the next page
- boundary. */
- . = ALIGN(0x8000);
- .data :
- AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
- {
- __data_start = . ;
- *(.data)
- *(.data.*)
- }
- .sdata :
- AT (LOADADDR(.data) + (ADDR(.sdata) - ADDR(.data)))
- {
- *(.sdata)
- *(.sdata.*)
- }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- __bss_start__ = .;
- .sbss :
- {
- PROVIDE (__sbss_start = .);
- PROVIDE (___sbss_start = .);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.scommon)
- PROVIDE (__sbss_end = .);
- PROVIDE (___sbss_end = .);
- }
- .bss :
- {
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(32 / 8);
- }
- . = ALIGN(32 / 8);
- _end = .;
- _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
- PROVIDE (end = .);
- /DISCARD/ :
- {
- *(.ARM.exidx)
- }
-}
-
-# $OpenBSD: Makefile.armv7,v 1.39 2018/02/09 03:59:15 tb Exp $
+# $OpenBSD: Makefile.armv7,v 1.40 2018/02/10 06:52:47 patrick Exp $
# For instructions on building kernels consult the config(8) and options(4)
# manual pages.
ioconf.o: ioconf.c
${NORMAL_C}
-ld.script: ${_archdir}/conf/ldscript.head ${_archdir}/conf/ldscript.tail
- cat ${_archdir}/conf/ldscript.head ${_archdir}/conf/ldscript.tail | \
+ld.script: ${_archdir}/conf/kern.ldscript
+ cat ${_archdir}/conf/kern.ldscript | \
sed -e 's/@KERNEL_BASE_PHYS@/0/' \
-e 's/@KERNEL_BASE_VIRT@/${KERNEL_BASE_VIRT}/' \
-e 's/(KERNEL_BASE_phys)/(KERNEL_BASE_virt)/' > ld.script