[PATCH 26/29] shsim: Simplify bsp_specs
Joel Sherrill
joel at rtems.org
Tue Dec 19 00:01:22 UTC 2017
This bsp_specs included non-standard logic to pass endian arguments
to the linker. These should not be necessary. If they are, it is a
bug in the sh gcc target. The code was "%{ml:-EL}%{mb:-EB}"
Also the file linkcmds.sim was not referenced and was deleted.
Updates #3250.
---
c/src/lib/libbsp/sh/shsim/Makefile.am | 1 -
c/src/lib/libbsp/sh/shsim/bsp_specs | 6 +-
c/src/lib/libbsp/sh/shsim/preinstall.am | 4 -
c/src/lib/libbsp/sh/shsim/startup/linkcmds | 1 +
c/src/lib/libbsp/sh/shsim/startup/linkcmds.sim | 232 -------------------------
5 files changed, 2 insertions(+), 242 deletions(-)
delete mode 100644 c/src/lib/libbsp/sh/shsim/startup/linkcmds.sim
diff --git a/c/src/lib/libbsp/sh/shsim/Makefile.am b/c/src/lib/libbsp/sh/shsim/Makefile.am
index 53097af..dbe089f 100644
--- a/c/src/lib/libbsp/sh/shsim/Makefile.am
+++ b/c/src/lib/libbsp/sh/shsim/Makefile.am
@@ -21,7 +21,6 @@ libbspstart_a_SOURCES = start/start.S
project_lib_DATA = start.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
-dist_project_lib_DATA += startup/linkcmds.sim
noinst_LIBRARIES += libbsp.a
libbsp_a_SOURCES =
diff --git a/c/src/lib/libbsp/sh/shsim/bsp_specs b/c/src/lib/libbsp/sh/shsim/bsp_specs
index 70c5ecb..87638cc 100644
--- a/c/src/lib/libbsp/sh/shsim/bsp_specs
+++ b/c/src/lib/libbsp/sh/shsim/bsp_specs
@@ -1,13 +1,9 @@
%rename endfile old_endfile
%rename startfile old_startfile
-%rename link old_link
*startfile:
%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
-
-*link:
-%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N} %{ml:-EL}%{mb:-EB}
+%{!nostdlib: %{qrtems: crti.o%s crtbegin.o%s}}
*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s}
diff --git a/c/src/lib/libbsp/sh/shsim/preinstall.am b/c/src/lib/libbsp/sh/shsim/preinstall.am
index 57fe5d3..738a41b 100644
--- a/c/src/lib/libbsp/sh/shsim/preinstall.am
+++ b/c/src/lib/libbsp/sh/shsim/preinstall.am
@@ -69,7 +69,3 @@ $(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
-$(PROJECT_LIB)/linkcmds.sim: startup/linkcmds.sim $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.sim
-PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.sim
-
diff --git a/c/src/lib/libbsp/sh/shsim/startup/linkcmds b/c/src/lib/libbsp/sh/shsim/startup/linkcmds
index 3f7ea0e..41c7245 100644
--- a/c/src/lib/libbsp/sh/shsim/startup/linkcmds
+++ b/c/src/lib/libbsp/sh/shsim/startup/linkcmds
@@ -19,6 +19,7 @@
OUTPUT_ARCH(sh)
ENTRY(_start)
+STARTUP(start.o)
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x00000000;
_RamSize = DEFINED(_RamSize) ? _RamSize : 16M;
diff --git a/c/src/lib/libbsp/sh/shsim/startup/linkcmds.sim b/c/src/lib/libbsp/sh/shsim/startup/linkcmds.sim
deleted file mode 100644
index c9f9ad5..0000000
--- a/c/src/lib/libbsp/sh/shsim/startup/linkcmds.sim
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Memory layout for an SH 7032 with main memory in area 0
- *
- * NOTES:
- * + All RAM/ROM areas are mapped onto area 0, because gdb's simulator
- * is not able to simulate memory areas but area 0. Area 5 (on-chip
- * peripherials) can not be mapped onto area 0 and will cause SIGILL
- * exceptions.
- * + Assumed to be compatible with other SH-cpu family members (eg. SH7045)
- *
- * Authors: Ralf Corsepius (corsepiu at faw.uni-ulm.de)
- *
- * COPYRIGHT (c) 2001, Ralf Corsepius, Ulm, Germany
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-OUTPUT_ARCH(sh)
-ENTRY(_start)
-
-_RamBase = DEFINED(_RamBase) ? _RamBase : 0x00040000;
-_RamSize = DEFINED(_RamSize) ? _RamSize : 256K;
-_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
-
-MEMORY
-{
- rom : o = 0x00000000, l = 128k
- onchip_peri : o = 0x05000000, l = 512
- ram : o = 0x00040000, l = 256k
-
- onchip_ram : o = 0x00080000, l = 8k
-}
-
-SECTIONS
-{
- /* boot vector table */
- .monvects 0x00000000 (NOLOAD) :
- {
- _monvects = . ;
- } > rom
-
- /* monitor play area */
- .monram 0x00040000 (NOLOAD) :
- {
- _ramstart = .;
- } > ram
-
- /* monitor vector table */
- .vects 0x00042000 (NOLOAD) : {
- _vectab = . ;
- *(.vects);
- }
-
- /* Read-only sections, merged into text segment: */
-
- . = 0x00044000 ;
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rela.dyn :
- {
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
- *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
- *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
- *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- } >ram
- .rel.text :
- { *(.rel.text) *(.rel.gnu.linkonce.t*) }
- .rel.data :
- { *(.rel.data) *(.rel.gnu.linkonce.d*) }
- .rel.rodata :
- { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
- .rel.got : { *(.rel.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rel.init : { *(.rel.init) }
- .rel.fini : { *(.rel.fini) }
- .rel.bss : { *(.rel.bss) }
- .rel.plt : { *(.rel.plt) }
- .init : { *(.init) } =0
- .plt : { *(.plt) }
- .text . :
- {
- *(.text*)
- *(.stub)
-
- /*
- * Special FreeBSD sysctl sections.
- */
- . = ALIGN (16);
- ___start_set_sysctl_set = .;
- *(set_sysc*); /* set_sysctl_* but name is truncated by SH-coff */
- ___stop_set_sysctl_set = ABSOLUTE(.);
- *(set_doma*); /* set_domain_* but name is truncated by SH-coff */
- *(set_pseu*); /* set_pseudo_* but name is truncated by SH-coff */
-
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.gnu.linkonce.t*)
- } > ram
- .fini :
- {
- KEEP (*(.fini))
- } =0
- _etext = .;
- PROVIDE (etext = .);
- .rodata . : { *(.rodata*) .rodata.* KEEP (*(SORT(.rtemsroset.*))) *(.gnu.linkonce.r*) } > ram
- .rodata1 . : { *(.rodata1) } > ram
- .tdata : {
- __TLS_Data_begin = .;
- *(.tdata .tdata.* .gnu.linkonce.td.*)
- __TLS_Data_end = .;
- } > ram
- .tbss : {
- __TLS_BSS_begin = .;
- *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
- __TLS_BSS_end = .;
- } > ram
- __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
- __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
- __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
- __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
- __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
- __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(128) + (. & (128 - 1));
- .data . :
- {
- *(.data*)
- KEEP (*(SORT(.rtemsrwset.*)))
- *(.gcc_exc*)
- ___EH_FRAME_BEGIN__ = .;
- *(.eh_fram*)
- ___EH_FRAME_END__ = .;
- LONG(0);
- *(.gcc_except_table*)
- *(.gnu.linkonce.d*)
- CONSTRUCTORS
- } > ram
- .data1 . : { *(.data1) }
- .ctors . :
- {
- ___ctors = .;
- *(.ctors)
- ___ctors_end = .;
- }
- .dtors . :
- {
- ___dtors = .;
- *(.dtors)
- ___dtors_end = .;
- }
- .got . : { *(.got.plt) *(.got) }
- .dynamic . : { *(.dynamic) }
- /* We want the small data sections together, so single-instruction offsets
- can access them all, and initialized data all before uninitialized, so
- we can shorten the on-disk segment size. */
- .sdata . : { *(.sdata) }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- .sbss . : { *(.sbss*) *(.scommon) }
- .bss . :
- {
- *(.dynbss)
- *(.bss .bss* .gnu.linkonce.b*)
- *(COMMON)
- } > ram
- _end = . ;
- PROVIDE (end = .);
-
- _WorkAreaBase = . ;
- . = 0x00080000 ;
-
- _CPU_Interrupt_stack_low = 0x00080000 ;
- _CPU_Interrupt_stack_high = _CPU_Interrupt_stack_low + 4096 ;
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-
- .stack 0x00081ff0 : { _stack = .; *(.stack) } /* > onchip_ram */
- /* These must appear regardless of . */
-}
--
1.8.3.1
More information about the devel
mailing list