This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: synth linux tests: address 0x0 of cache section .fixupis not within region rom
- From: Robin Farine <robin dot farine at acn-group dot ch>
- To: programmer at mail dot eblueweb dot com
- Cc: ecos-discuss at sources dot redhat dot com
- Date: 08 Apr 2002 09:27:41 +0200
- Subject: Re: [ECOS] synth linux tests: address 0x0 of cache section .fixupis not within region rom
- References: <32786.192.168.1.32.1018245985.squirrel@mail.eblueweb.com>
On Mon, 2002-04-08 at 08:06, programmer@mail.eblueweb.com wrote:
[...]
>
> Has anybody built recently on linux for synthetical linux target?
> What steps not outlined in the docs are necessary to get this working?
>
I'm working with an ARM target but the attached diffs to linker script
templates may help you modify the linux synthetic target's.
Robin
Index: packages/hal/arm/arch/current/src/arm.ld
===================================================================
RCS file: /home/cvs/eCos/base/packages/hal/arm/arch/current/src/arm.ld,v
retrieving revision 1.1.1.2
retrieving revision 1.3
diff -u -p -r1.1.1.2 -r1.3
--- packages/hal/arm/arch/current/src/arm.ld 9 Apr 2001 13:49:06 -0000 1.1.1.2
+++ packages/hal/arm/arch/current/src/arm.ld 10 Aug 2001 17:25:13 -0000 1.3
@@ -93,8 +93,8 @@ OUTPUT_FORMAT(elf32-bigarm)
.text _vma_ : _lma_ \
{ _stext = ABSOLUTE(.); \
PROVIDE (__stext = ABSOLUTE(.)); \
- *(.text*) *(.gnu.warning) *(.gnu.linkonce*) *(.init) \
- *(.glue_7) *(.glue_7t) \
+ *(.text) *(.text.*) *(.gnu.warning) *(.gnu.linkonce.t.*) \
+ *(.init) *(.glue_7) *(.glue_7t) \
} > _region_ \
_etext = .; PROVIDE (__etext = .);
@@ -109,7 +109,7 @@ OUTPUT_FORMAT(elf32-bigarm)
#else
#define SECTION_rodata(_region_, _vma_, _lma_) \
.rodata _vma_ : _lma_ \
- { FORCE_OUTPUT; *(.rodata*) } \
+ { FORCE_OUTPUT; *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } \
> _region_
#define SECTION_rodata1(_region_, _vma_, _lma_) \
@@ -128,6 +128,74 @@ OUTPUT_FORMAT(elf32-bigarm)
{ FORCE_OUTPUT; *(.gcc_except_table) } \
> _region_
+#define SECTION_eh_frame(_region_, _vma_, _lma_) \
+ .eh_frame _vma_ : _lma_ \
+ { \
+ FORCE_OUTPUT; __EH_FRAME_BEGIN__ = .; \
+ KEEP(*(.eh_frame)) \
+ __FRAME_END__ = .; \
+ . = . + 8; \
+ } > _region_ = 0
+
+#define SECTION_RELOCS(_region_, _vma_, _lma_) \
+ .rel.text : \
+ { \
+ *(.rel.text) \
+ *(.rel.text.*) \
+ *(.rel.gnu.linkonce.t.*) \
+ } > _region_ \
+ .rela.text : \
+ { \
+ *(.rela.text) \
+ *(.rela.text.*) \
+ *(.rela.gnu.linkonce.t.*) \
+ } > _region_ \
+ .rel.data : \
+ { \
+ *(.rel.data) \
+ *(.rel.data.*) \
+ *(.rel.gnu.linkonce.d.*) \
+ } > _region_ \
+ .rela.data : \
+ { \
+ *(.rela.data) \
+ *(.rela.data.*) \
+ *(.rela.gnu.linkonce.d.*) \
+ } > _region_ \
+ .rel.rodata : \
+ { \
+ *(.rel.rodata) \
+ *(.rel.rodata.*) \
+ *(.rel.gnu.linkonce.r.*) \
+ } > _region_ \
+ .rela.rodata : \
+ { \
+ *(.rela.rodata) \
+ *(.rela.rodata.*) \
+ *(.rela.gnu.linkonce.r.*) \
+ } > _region_ \
+ .rel.got : { *(.rel.got) } > _region_ \
+ .rela.got : { *(.rela.got) } > _region_ \
+ .rel.ctors : { *(.rel.ctors) } > _region_ \
+ .rela.ctors : { *(.rela.ctors) } > _region_ \
+ .rel.dtors : { *(.rel.dtors) } > _region_ \
+ .rela.dtors : { *(.rela.dtors) } > _region_ \
+ .rel.init : { *(.rel.init) } > _region_ \
+ .rela.init : { *(.rela.init) } > _region_ \
+ .rel.fini : { *(.rel.fini) } > _region_ \
+ .rela.fini : { *(.rela.fini) } > _region_ \
+ .rel.bss : { *(.rel.bss) } > _region_ \
+ .rela.bss : { *(.rela.bss) } > _region_ \
+ .rel.plt : { *(.rel.plt) } > _region_ \
+ .rela.plt : { *(.rela.plt) } > _region_ \
+ .rel.dyn : { *(.rel.dyn) } > _region_
+
+#define SECTION_got(_region_, _vma_, _lma_) \
+ .got _vma_ : _lma_ \
+ { \
+ FORCE_OUTPUT; *(.got.plt) *(.got) \
+ } > _region_
+
#define SECTION_mmu_tables(_region_, _vma_, _lma_) \
.mmu_tables _vma_ : _lma_ \
{ FORCE_OUTPUT; *(.mmu_tables) } \
@@ -140,25 +208,28 @@ OUTPUT_FORMAT(elf32-bigarm)
#define SECTION_data(_region_, _vma_, _lma_) \
.data _vma_ : _lma_ \
- { __ram_data_start = ABSOLUTE (.); *(.data*) *(.data1) MERGE_IN_RODATA \
- _GOT1_START_ = ABSOLUTE (.); *(.got1) _GOT1_END_ = ABSOLUTE (.); \
- _GOT2_START_ = ABSOLUTE (.); *(.got2) _GOT2_END_ = ABSOLUTE (.); \
+ { __ram_data_start = ABSOLUTE (.); \
+ *(.data) *(.data.*) *(.data1) *(.gnu.linkonce.d.*) \
. = ALIGN (4); \
KEEP(*( SORT (.ecos.table.*))) ; \
. = ALIGN (4); \
- __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
- __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
- *(.dynamic) *(.sdata*) *(.sbss*) \
+ __CTOR_LIST__ = ABSOLUTE (.); \
+ KEEP (*(.ctors)) KEEP (*(SORT (.ctors.*))) __CTOR_END__ = ABSOLUTE (.); \
+ __DTOR_LIST__ = ABSOLUTE (.); \
+ KEEP (*(.dtors)) KEEP (*(SORT (.dtors.*))) __DTOR_END__ = ABSOLUTE (.); \
+ *(.dynamic) *(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*) \
. = ALIGN (4); *(.2ram.*) } \
> _region_ \
__rom_data_start = LOADADDR (.data); \
- __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .); \
+ __ram_data_end = .; PROVIDE (__ram_data_end = .); \
+ _edata = .; PROVIDE (edata = .); \
PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data));
#define SECTION_bss(_region_, _vma_, _lma_) \
.bss _vma_ : _lma_ \
{ __bss_start = ABSOLUTE (.); \
- *(.scommon) *(.dynbss) *(.bss*) *(COMMON) \
+ *(.dynsbss) *(.sbss) *(.sbss.*) *(.gnu.linkonce.sb.*) *(.scommon) \
+ *(.dynbss) *(.bss) *(.bss.*) *(.gnu.linkonce.b.*) *(COMMON) \
__bss_end = ABSOLUTE (.); } \
> _region_
Index: packages/hal/arm/sa11x0/plc2/current/include/pkgconf/mlt_arm_sa11x0_plc2_ram.ldi
===================================================================
RCS file: /home/cvs/eCos/base/packages/hal/arm/sa11x0/plc2/current/include/pkgconf/mlt_arm_sa11x0_plc2_ram.ldi,v
retrieving revision 1.1.1.1
retrieving revision 1.4
diff -u -p -r1.1.1.1 -r1.4
--- packages/hal/arm/sa11x0/plc2/current/include/pkgconf/mlt_arm_sa11x0_plc2_ram.ldi 8 Mar 2001 08:57:08 -0000 1.1.1.1
+++ packages/hal/arm/sa11x0/plc2/current/include/pkgconf/mlt_arm_sa11x0_plc2_ram.ldi 13 Jul 2001 08:43:21 -0000 1.4
@@ -1,6 +1,6 @@
// eCos memory layout - Fri Oct 20 05:56:24 2000
-// This is a generated file - do not edit
+// This is an edited generated file - do not regenerate
#include <cyg/infra/cyg_type.inc>
@@ -14,13 +14,16 @@ SECTIONS
SECTIONS_BEGIN
SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
SECTION_rom_vectors (ram, 0x20000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_eh_frame (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_got (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss