change log for rtems (2010-12-03)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Dec 3 11:10:37 UTC 2010


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/linkcmds.lpc32xx_mzx, startup/linkcmds.lpc32xx_mzx_stage_1,
	startup/linkcmds.lpc32xx_mzx_stage_2,
	startup/linkcmds.lpc32xx_phycore: Update due to linker command file
	changes.

M   1.22  c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M    1.3  c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx
M    1.3  c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1
M    1.3  c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2
M    1.5  c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.21 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.22
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.21	Fri Dec  3 03:29:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog	Fri Dec  3 04:13:07 2010
@@ -1,5 +1,12 @@
 2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* startup/linkcmds.lpc32xx_mzx, startup/linkcmds.lpc32xx_mzx_stage_1,
+	startup/linkcmds.lpc32xx_mzx_stage_2,
+	startup/linkcmds.lpc32xx_phycore: Update due to linker command file
+	changes.
+
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* include/lpc32xx.h: Added I2S module.
 	* Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
 	startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx,

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.2	Fri Dec  3 03:29:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx	Fri Dec  3 04:13:07 2010
@@ -49,8 +49,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_EXT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.2	Fri Dec  3 03:29:08 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1	Fri Dec  3 04:13:07 2010
@@ -49,8 +49,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_INT);
 REGION_ALIAS ("REGION_DATA", RAM_INT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_INT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_INT);
 REGION_ALIAS ("REGION_BSS", RAM_INT);
 REGION_ALIAS ("REGION_WORK", RAM_INT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.2	Fri Dec  3 03:29:08 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2	Fri Dec  3 04:13:07 2010
@@ -49,8 +49,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_EXT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.4 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.5
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.4	Fri Dec  3 03:29:08 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore	Fri Dec  3 04:13:07 2010
@@ -51,8 +51,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_EXT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
	startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
	startup/linkcmds.lpc24xx_ncs_rom_ext,
	startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
	file changes.

M   1.60  c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M    1.5  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362
M    1.3  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800
M    1.4  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
M    1.4  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
M    1.4  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
M    1.4  c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.59 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.60
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.59	Fri Dec  3 03:56:47 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog	Fri Dec  3 04:16:38 2010
@@ -1,5 +1,13 @@
 2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
+	startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
+	startup/linkcmds.lpc24xx_ncs_rom_ext,
+	startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
+	file changes.
+
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* include/lcd.h, misc/lcd.c: New files.
 	* misc/io.c, include/io.h: Documentation, bug fixes, more
 	configurations.

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.4 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.5
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.4	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362	Fri Dec  3 04:16:38 2010
@@ -50,8 +50,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_DATA", RAM_INT);
 REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_BSS", RAM_INT);
 REGION_ALIAS ("REGION_WORK", RAM_INT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.2	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800	Fri Dec  3 04:16:38 2010
@@ -54,8 +54,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_DATA", RAM_INT);
 REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_BSS", RAM_INT);
 REGION_ALIAS ("REGION_WORK", RAM_INT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.3	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea	Fri Dec  3 04:16:38 2010
@@ -47,8 +47,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.3	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram	Fri Dec  3 04:16:38 2010
@@ -47,8 +47,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.3	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext	Fri Dec  3 04:16:38 2010
@@ -51,8 +51,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", ROM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", ROM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", ROM_BOOT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_BOOT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_BOOT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.3	Fri Dec  3 03:56:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int	Fri Dec  3 04:16:38 2010
@@ -51,8 +51,10 @@
 REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/bspgetworkarea.c: Removed file.
	* Makefile.am, bsp_specs, start/start.S, startup/bspstart.c,
	libnds/include/nds/jtypes.h, libnds/source/arm9/gurumeditation.c,
	libnds/source/common/interruptDispatcher.S,
	libnds/source/common/interrupts.c, startup/linkcmds: Use linker
	command base file.

M   1.60  c/src/lib/libbsp/arm/nds/ChangeLog
M   1.19  c/src/lib/libbsp/arm/nds/Makefile.am
M    1.4  c/src/lib/libbsp/arm/nds/bsp_specs
M    1.4  c/src/lib/libbsp/arm/nds/libnds/include/nds/jtypes.h
M    1.5  c/src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c
M    1.5  c/src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S
M    1.5  c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c
M    1.5  c/src/lib/libbsp/arm/nds/start/start.S
R    1.3  c/src/lib/libbsp/arm/nds/startup/bspgetworkarea.c
M    1.5  c/src/lib/libbsp/arm/nds/startup/bspstart.c
M    1.2  c/src/lib/libbsp/arm/nds/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.59 rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.60
--- rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.59	Thu May 20 08:00:19 2010
+++ rtems/c/src/lib/libbsp/arm/nds/ChangeLog	Fri Dec  3 04:49:49 2010
@@ -1,3 +1,12 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/bspgetworkarea.c: Removed file.
+	* Makefile.am, bsp_specs, start/start.S, startup/bspstart.c,
+	libnds/include/nds/jtypes.h, libnds/source/arm9/gurumeditation.c,
+	libnds/source/common/interruptDispatcher.S,
+	libnds/source/common/interrupts.c, startup/linkcmds: Use linker
+	command base file.
+
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* make/dswifi/arm9/makefile: Workaround for GCC bug 38644.

diff -u rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.18 rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.19
--- rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.18	Fri Apr 30 08:41:52 2010
+++ rtems/c/src/lib/libbsp/arm/nds/Makefile.am	Fri Dec  3 04:49:49 2010
@@ -37,7 +37,7 @@
 noinst_PROGRAMS += startup.rel
 startup_rel_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
     startup/bspstart.c ../../shared/bspclean.c startup/bspreset.c \
-    startup/bspgetworkarea.c ../../shared/bsppredriverhook.c \
+    ../../shared/bspgetworkarea.c ../../shared/bsppredriverhook.c \
     ../../shared/bsppretaskinghook.c ../../shared/bootcard.c
 startup_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM9 -I$(srcdir)/libnds/include
 startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)

diff -u rtems/c/src/lib/libbsp/arm/nds/bsp_specs:1.3 rtems/c/src/lib/libbsp/arm/nds/bsp_specs:1.4
--- rtems/c/src/lib/libbsp/arm/nds/bsp_specs:1.3	Fri Dec  5 07:37:47 2008
+++ rtems/c/src/lib/libbsp/arm/nds/bsp_specs	Fri Dec  3 04:49:50 2010
@@ -7,8 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dc -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }
-

diff -u rtems/c/src/lib/libbsp/arm/nds/libnds/include/nds/jtypes.h:1.3 rtems/c/src/lib/libbsp/arm/nds/libnds/include/nds/jtypes.h:1.4
--- rtems/c/src/lib/libbsp/arm/nds/libnds/include/nds/jtypes.h:1.3	Wed Aug 27 16:38:42 2008
+++ rtems/c/src/lib/libbsp/arm/nds/libnds/include/nds/jtypes.h	Fri Dec  3 04:49:50 2010
@@ -38,9 +38,9 @@
 //---------------------------------------------------------------------------------
 // libgba compatible section macros
 //---------------------------------------------------------------------------------
-#define ITCM_CODE	__attribute__((section(".itcm"), long_call))
+#define ITCM_CODE	__attribute__((section(".bsp_fast_text"), long_call))
 
-#define DTCM_DATA	__attribute__((section(".dtcm")))
+#define DTCM_DATA	__attribute__((section(".bsp_fast_data")))
 #define DTCM_BSS	__attribute__((section(".sbss")))
 #define ALIGN(m)	__attribute__((aligned (m)))
 

diff -u rtems/c/src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c:1.4 rtems/c/src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c:1.5
--- rtems/c/src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c:1.4	Sun Nov 29 08:53:01 2009
+++ rtems/c/src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c	Fri Dec  3 04:49:50 2010
@@ -34,6 +34,8 @@
 #include <stdio.h>
 #include <inttypes.h>
 
+#include <bsp/linker-symbols.h>
+
 //---------------------------------------------------------------------------------
 unsigned long ARMShift(unsigned long value,unsigned char shift) {
 //---------------------------------------------------------------------------------
@@ -205,7 +207,6 @@
 	{	"r0","r1","r2","r3","r4","r5","r6","r7",
 		"r8 ","r9 ","r10","r11","r12","sp ","lr ","pc " };
 
-extern const char __itcm_start[];
 //---------------------------------------------------------------------------------
 static void defaultHandler(void) {
 //---------------------------------------------------------------------------------
@@ -232,7 +233,7 @@
 		iprintf ("\x1b[10Cdata abort!\n\n");
 		codeAddress = exceptionRegisters[15] - offset;
 		if (	(codeAddress > 0x02000000 && codeAddress < 0x02400000) ||
-				(codeAddress > (u32)__itcm_start && codeAddress < (u32)(__itcm_start + 32768)) )
+				(codeAddress > (u32)bsp_section_fast_text_begin && codeAddress < (u32)(bsp_section_fast_text_begin + 32768)) )
 			exceptionAddress = getExceptionAddress( codeAddress, thumbState);
 		else
 			exceptionAddress = codeAddress;

diff -u rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S:1.4 rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S:1.5
--- rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S:1.4	Sun Nov 29 22:14:38 2009
+++ rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S	Fri Dec  3 04:49:50 2010
@@ -28,7 +28,7 @@
 #endif
 
 #ifdef ARM9
-	.section	.itcm,"ax",%progbits
+	.section	.bsp_fast_text,"ax",%progbits
 #endif
 
 	.extern	irqTable

diff -u rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c:1.4 rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c:1.5
--- rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c:1.4	Sun Nov 29 22:14:38 2009
+++ rtems/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c	Fri Dec  3 04:49:50 2010
@@ -34,7 +34,7 @@
 
 
 #ifdef ARM9
-#define INT_TABLE_SECTION __attribute__((section(".itcm")))
+#define INT_TABLE_SECTION __attribute__((section(".bsp_fast_text")))
 #else
 #define INT_TABLE_SECTION
 #endif

diff -u rtems/c/src/lib/libbsp/arm/nds/start/start.S:1.4 rtems/c/src/lib/libbsp/arm/nds/start/start.S:1.5
--- rtems/c/src/lib/libbsp/arm/nds/start/start.S:1.4	Wed Apr  7 16:49:56 2010
+++ rtems/c/src/lib/libbsp/arm/nds/start/start.S	Fri Dec  3 04:49:50 2010
@@ -1,3 +1,5 @@
+#include <bsp/linker-symbols.h>
+
 @---------------------------------------------------------------------------------
 @ DS processor selection
 @---------------------------------------------------------------------------------
@@ -73,9 +75,9 @@
 	@ Wait for write buffer to empty
 	mcr	p15, 0, r0, c7, c10, 4
 
-	ldr	r0, =__dtcm_start
+	ldr	r0, =bsp_section_fast_data_begin
 	orr	r0,r0,#0x0a
-	mcr	p15, 0, r0, c9, c1,0		@ DTCM base = __dtcm_start, size = 16 KB
+	mcr	p15, 0, r0, c9, c1,0		@ DTCM base = bsp_section_fast_data_begin, size = 16 KB
 
 	mov r0,#0x20
 	mcr	p15, 0, r0, c9, c1,1		@ ITCM base = 0 , size = 32 MB
@@ -111,14 +113,14 @@
 	@-------------------------------------------------------------------------
 	@ Region 4 - DTCM
 	@-------------------------------------------------------------------------
-	ldr	r0,=__dtcm_start
+	ldr	r0,=bsp_section_fast_data_begin
 	orr	r0,r0,#(PAGE_16K | 1)
 	mcr	p15, 0, r0, c6, c4, 0
 
 	@-------------------------------------------------------------------------
 	@ Region 5 - ITCM
 	@-------------------------------------------------------------------------
-	ldr	r0,=__itcm_start
+	ldr	r0,=bsp_section_fast_text_begin
 	orr	r0,r0,#(PAGE_32K | 1)
 	mcr	p15, 0, r0, c6, c5, 0
 
@@ -169,24 +171,24 @@
 
 	mov	r0, #0x12		@ Switch to IRQ Mode
 	msr	cpsr, r0
-	ldr	sp, =__sp_irq		@ Set IRQ stack
+	ldr	sp, =bsp_stack_irq_end	@ Set IRQ stack
 
 	mov	r0, #0x1f		@ Switch to SVC Mode
 	msr	cpsr, r0
-	ldr	sp, =__sp_usr		@ Set user stack
+	ldr	sp, =bsp_stack_svc_end	@ Set user stack
 
-	ldr	r1, =__itcm_lma		@ Copy instruction tightly coupled memory (itcm section) from LMA to VMA (ROM to RAM)
-	ldr	r2, =__itcm_start
-	ldr	r4, =__itcm_end
+	ldr	r1, =bsp_section_fast_text_load_begin	@ Copy instruction tightly coupled memory (itcm section) from LMA to VMA (ROM to RAM)
+	ldr	r2, =bsp_section_fast_text_begin
+	ldr	r4, =bsp_section_fast_text_end
 	bl	CopyMemCheck
 
-	ldr	r1, =__dtcm_lma		@ Copy data tightly coupled memory (dtcm section) from LMA to VMA (ROM to RAM)
-	ldr	r2, =__dtcm_start
-	ldr	r4, =__dtcm_end
+	ldr	r1, =bsp_section_fast_data_load_begin	@ Copy data tightly coupled memory (dtcm section) from LMA to VMA (ROM to RAM)
+	ldr	r2, =bsp_section_fast_data_begin
+	ldr	r4, =bsp_section_fast_data_end
 	bl	CopyMemCheck
 
-	ldr	r0, =__bss_start	@ Clear BSS section
-	ldr	r1, =__bss_end
+	ldr	r0, =bsp_section_bss_begin	@ Clear BSS section
+	ldr	r1, =bsp_section_bss_end
 	sub	r1, r1, r0
 	bl	ClearMem
 

diff -u rtems/c/src/lib/libbsp/arm/nds/startup/bspstart.c:1.4 rtems/c/src/lib/libbsp/arm/nds/startup/bspstart.c:1.5
--- rtems/c/src/lib/libbsp/arm/nds/startup/bspstart.c:1.4	Sun Apr 25 20:30:08 2010
+++ rtems/c/src/lib/libbsp/arm/nds/startup/bspstart.c	Fri Dec  3 04:49:50 2010
@@ -13,6 +13,7 @@
 
 #include <bsp.h>
 #include <bsp/bootcard.h>
+#include <bsp/linker-symbols.h>
 #include <nds.h>
 
 extern void BSP_rtems_irq_mngt_init (void);
@@ -50,14 +51,11 @@
  * reset bss area.
  */
 
-extern uint8_t __bss_start;
-extern uint8_t __bss_end;
-
 void
 bss_reset (void)
 {
 
-  memset (&__bss_start, 0, (uint32_t) & __bss_end - (uint32_t) & __bss_start);
+  memset (bsp_section_bss_begin, 0, (size_t) bsp_section_bss_size);
 }
 
 /*

diff -u rtems/c/src/lib/libbsp/arm/nds/startup/linkcmds:1.1 rtems/c/src/lib/libbsp/arm/nds/startup/linkcmds:1.2
--- rtems/c/src/lib/libbsp/arm/nds/startup/linkcmds:1.1	Wed Apr 16 13:37:33 2008
+++ rtems/c/src/lib/libbsp/arm/nds/startup/linkcmds	Fri Dec  3 04:49:50 2010
@@ -1,246 +1,39 @@
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
 MEMORY {
-
-	rom	: ORIGIN = 0x08000000, LENGTH = 32M
-	ewram	: ORIGIN = 0x02000000, LENGTH = 4M - 4k
-	dtcm	: ORIGIN = 0x0b000000, LENGTH = 16K
-	itcm	: ORIGIN = 0x01000000, LENGTH = 32K
+	ROM : ORIGIN = 0x08000000, LENGTH = 32M
+	EWRAM : ORIGIN = 0x02000000, LENGTH = 4M - 4k
+	DTCM : ORIGIN = 0x0b000000, LENGTH = 16k
+	ITCM : ORIGIN = 0x01000000, LENGTH = 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-__itcm_start	=	ORIGIN(itcm);
-__ewram_end	=	ORIGIN(ewram) + LENGTH(ewram);
-__eheap_end	=	ORIGIN(ewram) + LENGTH(ewram);
-__dtcm_start	=	ORIGIN(dtcm);
-__dtcm_top	=	ORIGIN(dtcm) + LENGTH(dtcm);
-__irq_flags	=	__dtcm_top - 0x08;
-__irq_vector	=	__dtcm_top - 0x04;
-
-__sp_svc	=	__dtcm_top - 0x100;
-__sp_irq	=	__sp_svc - 0x100;
-__sp_usr	=	__sp_irq - 0x100;
-
-SECTIONS
-{
-	.init	:
-	{
-		__text_start = . ;
-		KEEP (*(.init))
-		. = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-		} >ewram = 0xff
-
-	.plt : { *(.plt) } >ewram = 0xff
-
-	.text :   /* ALIGN (4): */
-	{
-		*(EXCLUDE_FILE (*.itcm*) .text)
-
-		*(.text.*)
-		*(.stub)
-		/* .gnu.warning sections are handled specially by elf32.em.  */
-		*(.gnu.warning)
-		*(.gnu.linkonce.t*)
-		*(.glue_7)
-		*(.glue_7t)
-
-		    /*
-		     * Special FreeBSD sysctl sections.
-		     */
-		    . = ALIGN (16);
-		    __start_set_sysctl_set = .;
-		    *(set_sysctl_*);
-		    __stop_set_sysctl_set = ABSOLUTE(.);
-		    *(set_domain_*);
-		    *(set_pseudo_*);
-
-		. = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-	.fini           :
-	{
-		KEEP (*(.fini))
-	} >ewram =0xff
-
-	__text_end = . ;
-
-	.rodata :
-	{
-		*(.rodata)
-		*all.rodata*(*)
-		*(.roda)
-		*(.rodata.*)
-		*(.gnu.linkonce.r*)
-		SORT(CONSTRUCTORS)
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ewram
-   __exidx_start = .;
-  .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ewram
-   __exidx_end = .;
-  /* Ensure the __preinit_array_start label is properly aligned.  We
-     could instead move the label definition inside the section, but
-     the linker would then create the section even if it turns out to
-     be empty, which isn't pretty.  */
-  . = ALIGN(32 / 8);
-  PROVIDE (__preinit_array_start = .);
-  .preinit_array     : { KEEP (*(.preinit_array)) } >ewram = 0xff
-  PROVIDE (__preinit_array_end = .);
-  PROVIDE (__init_array_start = .);
-  .init_array     : { KEEP (*(.init_array)) } >ewram = 0xff
-  PROVIDE (__init_array_end = .);
-  PROVIDE (__fini_array_start = .);
-  .fini_array     : { KEEP (*(.fini_array)) } >ewram = 0xff
-  PROVIDE (__fini_array_end = .);
-
-	.ctors :
-	{
-	/* gcc uses crtbegin.o to find the start of the constructors, so
-		we make sure it is first.  Because this is a wildcard, it
-		doesn't matter if the user does not actually link against
-		crtbegin.o; the linker won't look for a file to match a
-		wildcard.  The wildcard also means that it doesn't matter which
-		directory crtbegin.o is in.  */
-		KEEP (*crtbegin.o(.ctors))
-		KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-		KEEP (*(SORT(.ctors.*)))
-		KEEP (*(.ctors))
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-	.dtors :
-	{
-		KEEP (*crtbegin.o(.dtors))
-		KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-		KEEP (*(SORT(.dtors.*)))
-		KEEP (*(.dtors))
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-	.eh_frame :
-	{
-		KEEP (*(.eh_frame))
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-	.gcc_except_table :
-	{
-		*(.gcc_except_table)
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-	.jcr            : { KEEP (*(.jcr)) } >ewram = 0
-	.got            : { *(.got.plt) *(.got) *(.rel.got) } >ewram = 0
-
-	.ewram ALIGN(4) :
-	{
-		__ewram_start = ABSOLUTE(.) ;
-		*(.ewram)
-		*ewram.*(.text)
-		. = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-	} >ewram = 0xff
-
-
-	.data ALIGN(4) :
-	{
-		__data_start = ABSOLUTE(.);
-		*(.data)
-		*(.data.*)
-		*(.gnu.linkonce.d*)
-		CONSTRUCTORS
-		. = ALIGN(4);
-		__data_end = ABSOLUTE(.) ;
-	} >ewram = 0xff
-
-
-	__dtcm_lma = . ;
-
-	.dtcm __dtcm_start : AT (__dtcm_lma)
-	{
-		*(.dtcm)
-		*(.dtcm.*)
-		. = ALIGN(4);
-		__dtcm_end = ABSOLUTE(.);
-	} >dtcm = 0xff
-
-
-	__itcm_lma = __dtcm_lma + SIZEOF(.dtcm);
-
-	.itcm __itcm_start : AT (__itcm_lma)
-	{
-		*(.itcm)
-		*itcm.*(.text)
-		. = ALIGN(4);
-		__itcm_end = ABSOLUTE(.);
-	} >itcm = 0xff
-
-	.sbss __dtcm_end :
-	{
-		__sbss_start = ABSOLUTE(.);
-		__sbss_start__ = ABSOLUTE(.);
-		*(.sbss)
-		. = ALIGN(4);    /* REQUIRED. LD is flaky without it. */
-		__sbss_end = ABSOLUTE(.);
-	} >dtcm
-
-
-
-	__bss_lma = __itcm_lma + SIZEOF(.itcm) ;
-	__appended_data = __itcm_lma + SIZEOF(.itcm) ;
-	.bss __bss_lma : AT (__bss_lma)
-	{
-		__bss_start = ABSOLUTE(.);
-		__bss_start__ = ABSOLUTE(.);
-		*(.dynbss)
-		*(.gnu.linkonce.b*)
-		*(.bss*)
-		*(COMMON)
-		. = ALIGN(4);    /* REQUIRED. LD is flaky without it. */
-		__bss_end = ABSOLUTE(.) ;
-		__bss_end__ = __bss_end ;
-	} >ewram
-
-
-	_end = . ;
-	__end__ = . ;
-	PROVIDE (end = _end);
-
-
-
-	/* 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 0x80000 : { _stack = .; *(.stack) }
-	/* These must appear regardless of  .  */
+REGION_ALIAS ("REGION_START", EWRAM);
+REGION_ALIAS ("REGION_VECTOR", DTCM);
+REGION_ALIAS ("REGION_TEXT", EWRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", EWRAM);
+REGION_ALIAS ("REGION_RODATA", EWRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", EWRAM);
+REGION_ALIAS ("REGION_DATA", EWRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", EWRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", ITCM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", EWRAM);
+REGION_ALIAS ("REGION_FAST_DATA", DTCM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", EWRAM);
+REGION_ALIAS ("REGION_BSS", EWRAM);
+REGION_ALIAS ("REGION_WORK", EWRAM);
+REGION_ALIAS ("REGION_STACK", EWRAM);
+
+__dtcm_top = ORIGIN (DTCM) + LENGTH (DTCM);
+__irq_flags = __dtcm_top - 0x08;
+__irq_vector = __dtcm_top - 0x04;
+
+SECTIONS {
+        .sbss : {
+                __sbss_start = ABSOLUTE(.);
+                __sbss_start__ = ABSOLUTE(.);
+                *(.sbss)
+                . = ALIGN(4);    /* REQUIRED. LD is flaky without it. */
+                __sbss_end = ABSOLUTE(.);
+        } > DTCM
 }
+
+INCLUDE linkcmds.armv4


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/linkcmds, start/start.S: Use linker command base file.

M   1.54  c/src/lib/libbsp/arm/rtl22xx/ChangeLog
M    1.8  c/src/lib/libbsp/arm/rtl22xx/start/start.S
M    1.6  c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.53 rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.54
--- rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.53	Thu May 20 08:00:38 2010
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog	Fri Dec  3 04:50:28 2010
@@ -1,3 +1,7 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds, start/start.S: Use linker command base file.
+
 2010-05-20	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* make/custom/rtl22xx_t.cfg: Workaround for GCC bug 38644.

diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/start/start.S:1.7 rtems/c/src/lib/libbsp/arm/rtl22xx/start/start.S:1.8
--- rtems/c/src/lib/libbsp/arm/rtl22xx/start/start.S:1.7	Wed Apr  7 16:49:20 2010
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/start/start.S	Fri Dec  3 04:50:28 2010
@@ -12,7 +12,7 @@
  *  $Id$
 */
 
-/* Some standard definitions...*/
+#include <bsp/linker-symbols.h>
 
 /* Some standard definitions...*/
 .equ PSR_MODE_USR,       0x10
@@ -44,16 +44,16 @@
         mov     r0, #(PSR_MODE_IRQ | PSR_I | PSR_F)     /* No interrupts */
         bic	r0, r0, #PSR_T
         msr     cpsr, r0
-        ldr     r1, =_irq_stack_size
-        ldr     sp, =_irq_stack
+        ldr     r1, =bsp_stack_irq_size
+        ldr     sp, =bsp_stack_irq_begin
         add     sp, sp, r1
 
         /* Enter FIQ mode and set up the FIQ stack pointer */
         mov     r0, #(PSR_MODE_FIQ | PSR_I | PSR_F)     /* No interrupts */
         bic	r0, r0, #PSR_T
         msr     cpsr, r0
-        ldr     r1, =_fiq_stack_size
-        ldr     sp, =_fiq_stack
+        ldr     r1, =bsp_stack_fiq_size
+        ldr     sp, =bsp_stack_fiq_begin
         add     sp, sp, r1
 
         /* Enter ABT mode and set up the ABT stack pointer */
@@ -61,16 +61,16 @@
         bic	r0, r0, #PSR_T
         msr     cpsr, r0
         bic	r0, r0, #PSR_T
-        ldr     r1, =_abt_stack_size
-        ldr     sp, =_abt_stack
+        ldr     r1, =bsp_stack_abt_size
+        ldr     sp, =bsp_stack_abt_begin
         add     sp, sp, r1
 
         /* Set up the SVC stack pointer last and stay in SVC mode */
         mov     r0, #(PSR_MODE_SVC | PSR_I | PSR_F)     /* No interrupts */
         bic	r0, r0, #PSR_T
         msr     cpsr, r0
-        ldr     r1, =_svc_stack_size
-        ldr     sp, =_svc_stack
+        ldr     r1, =bsp_stack_svc_size
+        ldr     sp, =bsp_stack_svc_begin
         add     sp, sp, r1
         sub     sp, sp, #0x64
 
@@ -89,8 +89,8 @@
 
 
         /* zero the bss */
-        ldr     r1, =_bss_end_
-        ldr     r0, =_bss_start_
+        ldr     r1, =bsp_section_bss_end
+        ldr     r0, =bsp_section_bss_begin
 
 _bss_init:
         mov     r2, #0

diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds:1.5 rtems/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds:1.6
--- rtems/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds:1.5	Fri Sep 19 16:14:01 2008
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds	Fri Dec  3 04:50:28 2010
@@ -1,245 +1,23 @@
-/*
- * Philips lpc ARM linker script
- * By Ray,Xu
- * Rayx.cn at gmail.com
- *	
- *  LPC22xx ARM do not have a MMU, the formatter got 512kb SRAM
- *  I set the code entry to the beging of SRAM for debugging perpurse
- *	
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *
- *  $Id$
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-
 MEMORY {
-	sdram : ORIGIN = 0x81000000, LENGTH = 512K
-	sram : ORIGIN = 0x40000000, LENGTH = 16K
-	regs  : ORIGIN = 0xe0000000, LENGTH = 2M
+	SDRAM : ORIGIN = 0x81000000, LENGTH = 512k
+	SRAM : ORIGIN = 0x40000000, LENGTH = 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x81000000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 512K;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x100;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x50;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x50;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x100;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    _sram_base = .;
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-
-
-    rtems_vector_table = .;
-    . += (8 * 4);                     /* 8 ARM interrupts */
-	
-    /*bsp_vector_table = .;*/
-     /*. += (64 * 4);                    64 LPC22xx interrupts */
-
-    . = ALIGN (0x10);
-
-  } > sram
-
-
-  .text      :
-  {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
-
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-  } > sdram  
-
-  .init          : 
-  { 
-    KEEP (*(.init))
-  } > sdram   /*=0*/
-
-  .fini      :
-  {
-    KEEP (*(.fini))
-  } > sdram  /*=0*/
-
-  .data :
-  { 
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    *(.jcr)
-    SORT(CONSTRUCTORS)
-    _edata = .;
-  } > sdram 
-
-  .eh_frame : { *(.eh_frame) } > sdram
-  .data1   : { *(.data1) } > sdram
-  .eh_frame : { *(.eh_frame) } > sdram
-  .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-  .rodata :
-  {
-    *(.rodata)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-  } > sdram
-
-  .bss       :
-  {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(0x10);
-	_clear_end = .;
-
-	. = ALIGN (0x10);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (0x10);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (0x10);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (0x10);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-	. = ALIGN (0x10);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-  } > sdram
-
-/*
-  .regs	:
-  {
-	lpc22xx_regs_base = .;
-	lpc22xx_regs = .;
-	. += 8192;
-  } > regs
-*/
-
-
-/* Debugging stuff follows? */
-
-  /* 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) } 
-
-  /*.stack 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
+INCLUDE linkcmds.armv4


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* start/start.S, startup/linkcmds: Use linker command base file.

M   1.62  c/src/lib/libbsp/arm/gp32/ChangeLog
M    1.6  c/src/lib/libbsp/arm/gp32/start/start.S
M    1.5  c/src/lib/libbsp/arm/gp32/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.61 rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.62
--- rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.61	Fri Apr 30 09:30:09 2010
+++ rtems/c/src/lib/libbsp/arm/gp32/ChangeLog	Fri Dec  3 04:50:51 2010
@@ -1,3 +1,7 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* start/start.S, startup/linkcmds: Use linker command base file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* Makefile.am, preinstall.am: Added generic interrupt support modules.

diff -u rtems/c/src/lib/libbsp/arm/gp32/start/start.S:1.5 rtems/c/src/lib/libbsp/arm/gp32/start/start.S:1.6
--- rtems/c/src/lib/libbsp/arm/gp32/start/start.S:1.5	Wed Apr  7 16:49:51 2010
+++ rtems/c/src/lib/libbsp/arm/gp32/start/start.S	Fri Dec  3 04:50:51 2010
@@ -11,6 +11,8 @@
  *  $Id$
  */
 
+#include <bsp/linker-symbols.h>
+
 /* Some standard definitions...*/
 .equ PSR_MODE_USR,       0x10
 .equ PSR_MODE_FIQ,       0x11
@@ -32,12 +34,12 @@
 @---------------------------------------------------------------------------------
 @ AXF addresses
 @---------------------------------------------------------------------------------
-	.word   _axf_text_start
-	.word   _axf_ro_end
-	.word   _axf_data_start
-	.word   _axf_bss_end
-	.word   _axf_bss_start
-	.word   _axf_bss_end
+	.word   bsp_section_text_begin
+	.word   bsp_section_rodata_end
+	.word   bsp_section_data_begin
+	.word   bsp_section_bss_end
+	.word   bsp_section_bss_begin
+	.word   bsp_section_bss_end
 
 @---------------------------------------------------------------------------------
 @ GamePark magic sequence
@@ -77,29 +79,29 @@
         /* Enter IRQ mode and set up the IRQ stack pointer */
         mov     r0, #(PSR_MODE_IRQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_irq_stack_size
-        ldr     sp, =_irq_stack
+        ldr     r1, =bsp_stack_irq_size
+        ldr     sp, =bsp_stack_irq_begin
         add     sp, sp, r1
 
         /* Enter FIQ mode and set up the FIQ stack pointer */
         mov     r0, #(PSR_MODE_FIQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_fiq_stack_size
-        ldr     sp, =_fiq_stack
+        ldr     r1, =bsp_stack_fiq_size
+        ldr     sp, =bsp_stack_fiq_begin
         add     sp, sp, r1
 
         /* Enter ABT mode and set up the ABT stack pointer */
         mov     r0, #(PSR_MODE_ABT | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_abt_stack_size
-        ldr     sp, =_abt_stack
+        ldr     r1, =bsp_stack_abt_size
+        ldr     sp, =bsp_stack_abt_begin
         add     sp, sp, r1
 
         /* Set up the SVC stack pointer last and stay in SVC mode */
         mov     r0, #(PSR_MODE_SVC | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_svc_stack_size
-        ldr     sp, =_svc_stack
+        ldr     r1, =bsp_stack_svc_size
+        ldr     sp, =bsp_stack_svc_begin
         add     sp, sp, r1
         sub     sp, sp, #0x64
 

diff -u rtems/c/src/lib/libbsp/arm/gp32/startup/linkcmds:1.4 rtems/c/src/lib/libbsp/arm/gp32/startup/linkcmds:1.5
--- rtems/c/src/lib/libbsp/arm/gp32/startup/linkcmds:1.4	Fri Sep 19 16:13:59 2008
+++ rtems/c/src/lib/libbsp/arm/gp32/startup/linkcmds	Fri Dec  3 04:50:52 2010
@@ -1,279 +1,25 @@
-/*
- *  GP32 Linker script
- *
- *  Written by Philippe Simons <loki_666 at fastmail.fm>
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm","elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-/* SEARCH_DIR(/usr/local/rtems-arm-dev-tools/arm-rtems/lib); */
-
-
 MEMORY {
-	sdram : ORIGIN = 0xc000000, LENGTH = 7M
+	SDRAM_MMU : ORIGIN = 0x0c000000, LENGTH = 16k
+	SDRAM : ORIGIN = 0x0c004000, LENGTH = 7M - 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-/* The base for SDRAM is set to umon's APPRAMBASE */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0xc000000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 7M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-			      /* FIXME: */
-
-    rtems_vector_table = .;
-    . += (8 * 4);                     /* 8 ARM interrupts */
-	
-    bsp_vector_table = .;
-    . += (32 * 4);                    /* 32 S3C2400 interrupts */
-
-    . = ALIGN (0x100);
-
-
-  } > sdram
-
-
-  .text      :
-  {
-    _axf_text_start = . ;
-    *(EXCLUDE_FILE (*text.iwram*) .text)
-    *(.text.*)
-    *(.stub)
-
-    /*
-     * Special FreeBSD sysctl sections.
-     */
-    . = ALIGN (16);
-    __start_set_sysctl_set = .;
-    *(set_sysctl_*);
-    __stop_set_sysctl_set = ABSOLUTE(.);
-    *(set_domain_*);
-    *(set_pseudo_*);
-
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.gnu.linkonce.t*)
-    *(.glue_7)
-    *(.glue_7t)
-
-    . = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-  } > sdram
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-  __text_end = . ;
-
-  .init          : 
-  { 
-    *(.init)
-  } > sdram   /*=0*/
-
-  .jcr : 
-  { 
-    *(.jcr) 
-  } > sdram
-
-
-  .fini      :
-  {
-    *(.fini)
-  } > sdram  /*=0*/
-
-  .rodata :
-  {
-    *(.rodata)
-    *all.rodata*(*)
-    *(.roda)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-    SORT(CONSTRUCTORS)
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } > sdram = 0xff
-
-  .ctors :
-  {
-    /* gcc uses crtbegin.o to find the start of the constructors, so
-       we make sure it is first.  Because this is a wildcard, it
-       doesn't matter if the user does not actually link against
-       crtbegin.o; the linker won't look for a file to match a
-       wildcard.  The wildcard also means that it doesn't matter which
-       directory crtbegin.o is in.  */
-    KEEP (*crtbegin.o(.ctors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-  .dtors :
-  {
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-
-  .eh_frame :
-  {
-    KEEP (*(.eh_frame))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-  .gcc_except_table :
-  {
-    *(.gcc_except_table*)
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-  _axf_ro_end = . ;
-
-  .data ALIGN(4) :
-  {
-    _axf_data_start = ABSOLUTE(.);
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    CONSTRUCTORS
-    . = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0xff
-
-  __data_end  =  . ;
-
-  .bss ALIGN(4):
-  {
-	_axf_bss_start = ABSOLUTE(.);
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we
- * don't have any. If we don't use more regions than TLB entries (64),
- * the lookup will only happen once for each region.
- */
-	. = ALIGN (16 * 1024);
-	_ttbl_base = .;
-	. += (16 * 1024);
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-  } > sdram
-  _axf_bss_end = . ;
-
-  _end = . ;
-  __end__ = . ;
-  PROVIDE (end = _end);
-
-
-/* Debugging stuff follows? */
-
-  /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* startup/linkcmds: Use linker command base file.

M   1.67  c/src/lib/libbsp/arm/gba/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gba/startup/linkcmds
M   1.30  c/src/lib/libbsp/arm/smdk2410/ChangeLog
M    1.5  c/src/lib/libbsp/arm/smdk2410/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.66 rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.67
--- rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.66	Fri Apr 30 09:55:49 2010
+++ rtems/c/src/lib/libbsp/arm/gba/ChangeLog	Fri Dec  3 04:51:22 2010
@@ -1,3 +1,7 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds: Use linker command base file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* irq/irq_asm.S, irq/irq_init.c, irq/bsp_irq_asm.S,

diff -u rtems/c/src/lib/libbsp/arm/gba/startup/linkcmds:1.2 rtems/c/src/lib/libbsp/arm/gba/startup/linkcmds:1.3
--- rtems/c/src/lib/libbsp/arm/gba/startup/linkcmds:1.2	Mon Mar  3 17:05:31 2008
+++ rtems/c/src/lib/libbsp/arm/gba/startup/linkcmds	Fri Dec  3 04:51:22 2010
@@ -192,6 +192,32 @@
     . = ALIGN(4);
   } =0xFF
 
+  .ARM.extab : {
+    *(.ARM.extab* .gnu.linkonce.armextab.*)
+  } =0xff
+   __exidx_start = .;
+  .ARM.exidx : {
+    *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+  } =0xff
+   __exidx_end = .;
+  .preinit_array : {
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP (*(.preinit_array))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+  } =0xFF
+  .init_array : {
+     PROVIDE_HIDDEN (__init_array_start = .);
+     KEEP (*(SORT(.init_array.*)))
+     KEEP (*(.init_array))
+     PROVIDE_HIDDEN (__init_array_end = .);
+  } =0xFF
+  .fini_array : {
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP (*(.fini_array))
+    KEEP (*(SORT(.fini_array.*)))
+    PROVIDE_HIDDEN (__fini_array_end = .);
+  } =0xFF
+
 /*************************************************************************
   calculate __ro_end
  *************************************************************************/
@@ -205,7 +231,12 @@
 	SIZEOF(.gcc_except_table) +
 	SIZEOF(.ctors) +
 	SIZEOF(.dtors) +
-	SIZEOF(.jcr);
+	SIZEOF(.jcr) +
+	SIZEOF(.ARM.extab) +
+	SIZEOF(.ARM.exidx) +
+	SIZEOF(.preinit_array) +
+	SIZEOF(.init_array) +
+	SIZEOF(.fini_array);
   PROVIDE(__text_end__ = __ro_end );
 
 /*** IWRAM ***/
@@ -344,5 +375,11 @@
   .debug_funcnames 0 : { *(.debug_funcnames) }
   .debug_typenames 0 : { *(.debug_typenames) }
   .debug_varnames  0 : { *(.debug_varnames) }
+  /* DWARF 3 */
+  .debug_pubtypes 0 : { *(.debug_pubtypes) }
+  .debug_ranges   0 : { *(.debug_ranges) }
+  .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
+  .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
+  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
 }
 /* @endcond */

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.29 rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.30
--- rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.29	Fri Apr 30 08:54:07 2010
+++ rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog	Fri Dec  3 04:50:06 2010
@@ -1,3 +1,7 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds: Use linker command base file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* Makefile.am, preinstall.am: Added generic interrupt support modules.

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds:1.4 rtems/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds:1.5
--- rtems/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds:1.4	Sun Sep 21 15:47:47 2008
+++ rtems/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds	Fri Dec  3 04:50:06 2010
@@ -1,279 +1,25 @@
-/*
- *  GP32 Linker script
- *
- *  Written by Philippe Simons <loki_666 at fastmail.fm>
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm","elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-/* SEARCH_DIR(/usr/local/rtems-arm-dev-tools/arm-rtems/lib); */
-
-
 MEMORY {
-	sdram : ORIGIN = 0x30000000, LENGTH = 64M
+	SDRAM_MMU : ORIGIN = 0x30000000, LENGTH = 16k
+	SDRAM : ORIGIN = 0x30004000, LENGTH = 64M - 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-/* The base for SDRAM is set to umon's APPRAMBASE */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x30000000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 64M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-			      /* FIXME: */
-
-    rtems_vector_table = .;
-    . += (8 * 4);                     /* 8 ARM interrupts */
-	
-    bsp_vector_table = .;
-    . += (32 * 4);                    /* 32 S3C2400 interrupts */
-
-    . = ALIGN (0x100);
-
-
-  } > sdram
-
-
-  .text      :
-  {
-    _axf_text_start = . ;
-    *(EXCLUDE_FILE (*text.iwram*) .text)
-    *(.text.*)
-    *(.stub)
-
-    /*
-     * Special FreeBSD sysctl sections.
-     */
-    . = ALIGN (16);
-    __start_set_sysctl_set = .;
-    *(set_sysctl_*);
-    __stop_set_sysctl_set = ABSOLUTE(.);
-    *(set_domain_*);
-    *(set_pseudo_*);
-
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.gnu.linkonce.t*)
-    *(.glue_7)
-    *(.glue_7t)
-
-    . = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-  } > sdram
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-  __text_end = . ;
-
-  .init          : 
-  { 
-    *(.init)
-  } > sdram   /*=0*/
-
-  .jcr : 
-  { 
-    *(.jcr) 
-  } > sdram
-
-
-  .fini      :
-  {
-    *(.fini)
-  } > sdram  /*=0*/
-
-  .rodata :
-  {
-    *(.rodata)
-    *all.rodata*(*)
-    *(.roda)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-    SORT(CONSTRUCTORS)
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } > sdram = 0xff
-
-  .ctors :
-  {
-    /* gcc uses crtbegin.o to find the start of the constructors, so
-       we make sure it is first.  Because this is a wildcard, it
-       doesn't matter if the user does not actually link against
-       crtbegin.o; the linker won't look for a file to match a
-       wildcard.  The wildcard also means that it doesn't matter which
-       directory crtbegin.o is in.  */
-    KEEP (*crtbegin.o(.ctors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-  .dtors :
-  {
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-
-  .eh_frame :
-  {
-    KEEP (*(.eh_frame))
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-
-  .gcc_except_table :
-  {
-    *(.gcc_except_table)
-    . = ALIGN(4);   /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0
-  _axf_ro_end = . ;
-
-  .data ALIGN(4) :
-  {
-    _axf_data_start = ABSOLUTE(.);
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    CONSTRUCTORS
-    . = ALIGN(4);  /* REQUIRED. LD is flaky without it. */
-  } >sdram = 0xff
-
-  __data_end  =  . ;
-
-  .bss ALIGN(4):
-  {
-	_axf_bss_start = ABSOLUTE(.);
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we
- * don't have any. If we don't use more regions than TLB entries (64),
- * the lookup will only happen once for each region.
- */
-	. = ALIGN (16 * 1024);
-	_ttbl_base = .;
-	. += (16 * 1024);
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-
-  } > sdram
-  _axf_bss_end = . ;
-
-  _end = . ;
-  __end__ = . ;
-  PROVIDE (end = _end);
-  WorkAreaBase = .;
-
-
-/* Debugging stuff follows? */
-
-  /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* bsp_specs, start/start.S, startup/linkcmds.csb337,
	startup/linkcmds.csb637: Use linker command base file.

M   1.73  c/src/lib/libbsp/arm/csb337/ChangeLog
M    1.9  c/src/lib/libbsp/arm/csb337/bsp_specs
M    1.6  c/src/lib/libbsp/arm/csb337/start/start.S
M    1.3  c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337
M    1.4  c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637

diff -u rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.72 rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.73
--- rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.72	Fri Apr 30 09:44:17 2010
+++ rtems/c/src/lib/libbsp/arm/csb337/ChangeLog	Fri Dec  3 04:51:54 2010
@@ -1,3 +1,8 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* bsp_specs, start/start.S, startup/linkcmds.csb337,
+	startup/linkcmds.csb637: Use linker command base file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* Makefile.am, preinstall.am: Added generic interrupt support modules.

diff -u rtems/c/src/lib/libbsp/arm/csb337/bsp_specs:1.8 rtems/c/src/lib/libbsp/arm/csb337/bsp_specs:1.9
--- rtems/c/src/lib/libbsp/arm/csb337/bsp_specs:1.8	Fri Dec  5 07:37:41 2008
+++ rtems/c/src/lib/libbsp/arm/csb337/bsp_specs	Fri Dec  3 04:51:54 2010
@@ -7,7 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }

diff -u rtems/c/src/lib/libbsp/arm/csb337/start/start.S:1.5 rtems/c/src/lib/libbsp/arm/csb337/start/start.S:1.6
--- rtems/c/src/lib/libbsp/arm/csb337/start/start.S:1.5	Sun Nov 29 08:53:00 2009
+++ rtems/c/src/lib/libbsp/arm/csb337/start/start.S	Fri Dec  3 04:51:54 2010
@@ -12,6 +12,8 @@
  *  $Id$
 */
 
+#include <bsp/linker-symbols.h>
+
 /* Some standard definitions...*/
 .equ PSR_MODE_USR,       0x10
 .equ PSR_MODE_FIQ,       0x11
@@ -39,8 +41,8 @@
         msr     cpsr, r0
 
         /* zero the bss */
-        ldr     r1, =_bss_end_
-        ldr     r0, =_bss_start_
+        ldr     r1, =bsp_section_bss_end
+        ldr     r0, =bsp_section_bss_begin
 
 _bss_init:
         mov     r2, #0
@@ -53,29 +55,29 @@
         /* Enter IRQ mode and set up the IRQ stack pointer */
         mov     r0, #(PSR_MODE_IRQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_irq_stack_size
-        ldr     sp, =_irq_stack
+        ldr     r1, =bsp_stack_irq_size
+        ldr     sp, =bsp_stack_irq_begin
         add     sp, sp, r1
 
         /* Enter FIQ mode and set up the FIQ stack pointer */
         mov     r0, #(PSR_MODE_FIQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_fiq_stack_size
-        ldr     sp, =_fiq_stack
+        ldr     r1, =bsp_stack_fiq_size
+        ldr     sp, =bsp_stack_fiq_begin
         add     sp, sp, r1
 
         /* Enter ABT mode and set up the ABT stack pointer */
         mov     r0, #(PSR_MODE_ABT | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_abt_stack_size
-        ldr     sp, =_abt_stack
+        ldr     r1, =bsp_stack_abt_size
+        ldr     sp, =bsp_stack_abt_begin
         add     sp, sp, r1
 
         /* Set up the SVC stack pointer last and stay in SVC mode */
         mov     r0, #(PSR_MODE_SVC | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_svc_stack_size
-        ldr     sp, =_svc_stack
+        ldr     r1, =bsp_stack_svc_size
+        ldr     sp, =bsp_stack_svc_begin
         add     sp, sp, r1
         sub     sp, sp, #0x64
 

diff -u rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337:1.2 rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337:1.3
--- rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337:1.2	Mon Nov 30 16:00:36 2009
+++ rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337	Fri Dec  3 04:51:54 2010
@@ -1,230 +1,26 @@
-/*
- *  Cogent CSB337 Linker script
- *
- *  Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-MEMORY
-{
-	sdram : ORIGIN = 0x20100000, LENGTH = 15M
-	sram  : ORIGIN = 0x00200000, LENGTH = 16K
+MEMORY {
+	SDRAM_MMU : ORIGIN = 0x20100000, LENGTH = 16k
+	SDRAM : ORIGIN = 0x20104000, LENGTH = 15M - 16k
+	SRAM : ORIGIN = 0x00200000, LENGTH = 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x20100000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 15M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_sram_base = DEFINED(_sram_base) ? _sram_base : 0x00000000;
-_sram_size = DEFINED(_sram_size) ? _sram_size : 16K;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-    .base :
-    {
-        _sram_base = .;
-
-	/* reserve room for the vectors and function pointers */
-	arm_exception_table = .;    
-	. += 64;
-
-	/* 256 byte aligned rx buffer header array */
-	. = ALIGN (0x100);
-	at91rm9200_emac_rxbuf_hdrs = .;
-
-	/* 1 transmit buffer, 0x600 size */
-	. += (0x100);
-	at91rm9200_emac_txbuf = .;
-	. += (0x600);
-
-	/* 8 receive buffers, 0x600 each */
-	at91rm9200_emac_rxbufs = .;
-	. += (0x600 * 8);
-
-    } > sram
-
-    .text      :
-    {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
-
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-    } > sdram  
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-    .init          : 
-    { 
-        KEEP (*(.init))
-    } > sdram   /*=0*/
-
-    .fini      :
-    {
-        KEEP (*(.fini))
-    } > sdram  /*=0*/
-
-    .data :
-    { 
-        *(.data)
-        *(.data.*)
-        *(.gnu.linkonce.d*)
-        *(.jcr)
-        SORT(CONSTRUCTORS)
-        _edata = .;
-    } > sdram 
-
-    .eh_frame : { *(.eh_frame) } > sdram
-    .data1   : { *(.data1) } > sdram
-    .eh_frame : { *(.eh_frame) } > sdram
-    .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-    .rodata :
-    {
-      *(.rodata)
-      *(.rodata.*)
-      *(.gnu.linkonce.r*)
-    } > sdram
-
-    .bss       :
-    {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we need
- * 16K which is the size of SRAM. If we do the mapping right, the TLB
- * should be big enough that to hold all the translations that matter,
- * so keeping the table in SDRAM won't be a problem.
- */
-	. = ALIGN (16 * 1024);
-	  _ttbl_base = .;
-	  . += (16 * 1024);
-
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-    } > sdram
-
-
-/* Debugging stuff follows? */
-
-    /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4

diff -u rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637:1.3 rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637:1.4
--- rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637:1.3	Mon Nov 30 16:00:36 2009
+++ rtems/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637	Fri Dec  3 04:51:54 2010
@@ -1,237 +1,26 @@
-/*
- * Cogent CSB637 linker script
- *
- *  Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
- *  File from the old CSB337 RTEMS BSP
- * 
- *  Modified by Joel Sherill 
- *  from OAR Corporation and 
- *  Fernando Nicodemos <fgnicodemos at terra.com.br>
- *  from NCB - Sistemas Embarcados Ltda. (Brazil)
- * 
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-MEMORY
-{
-	sdram : ORIGIN = 0x20100000, LENGTH = 63M
-	sram  : ORIGIN = 0x00200000, LENGTH = 16K
+MEMORY {
+	SDRAM_MMU : ORIGIN = 0x20100000, LENGTH = 16k
+	SDRAM : ORIGIN = 0x20104000, LENGTH = 63M - 16k
+	SRAM : ORIGIN = 0x00200000, LENGTH = 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x20100000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 63M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_sram_base = DEFINED(_sram_base) ? _sram_base : 0x00000000;
-_sram_size = DEFINED(_sram_size) ? _sram_size : 16K;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-    .base :
-    {
-        _sram_base = .;
-
-	/* reserve room for the vectors and function pointers */
-	arm_exception_table = .;    
-	. += 64;
-
-	/* 256 byte aligned rx buffer header array */
-	. = ALIGN (0x100);
-	at91rm9200_emac_rxbuf_hdrs = .;	
-
-	/* 1 transmit buffer, 0x600 size */
-	. += (0x100);
-	at91rm9200_emac_txbuf = .;
-	. += (0x600);
-
-	/* 8 receive buffers, 0x600 each */
-	at91rm9200_emac_rxbufs = .;
-	. += (0x600 * 8);
-
-    } > sram
-
-    .text      :
-    {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
-
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-    } > sdram  
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-    .init          : 
-    { 
-        KEEP (*(.init))
-    } > sdram   /*=0*/
-
-    .fini      :
-    {
-        KEEP (*(.fini))
-    } > sdram  /*=0*/
-
-    .data :
-    { 
-        *(.data)
-        *(.data.*)
-        *(.gnu.linkonce.d*)
-        *(.jcr)
-        SORT(CONSTRUCTORS)
-        _edata = .;
-    } > sdram 
-
-    .eh_frame : { *(.eh_frame) } > sdram
-    .data1   : { *(.data1) } > sdram
-    .eh_frame : { *(.eh_frame) } > sdram
-    .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-    .rodata :
-    {
-      *(.rodata)
-      *(.rodata.*)
-      *(.gnu.linkonce.r*)
-    } > sdram
-
-    .bss       :
-    {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we need
- * 16K which is the size of SRAM. If we do the mapping right, the TLB
- * should be big enough that to hold all the translations that matter,
- * so keeping the table in SDRAM won't be a problem.
- */
-	. = ALIGN (16 * 1024);
-	  _ttbl_base = .;
-	  . += (16 * 1024);
-
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	. = ALIGN (32);
-	WorkAreaBase = .;
-
-    } > sdram
-
-
-/* Debugging stuff follows? */
-
-    /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4


 *sh*:
2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* bsp_specs, start/start.S, startup/linkcmds: Use linker command base
	file.

M   1.69  c/src/lib/libbsp/arm/csb336/ChangeLog
M    1.9  c/src/lib/libbsp/arm/csb336/bsp_specs
M    1.7  c/src/lib/libbsp/arm/csb336/start/start.S
M    1.8  c/src/lib/libbsp/arm/csb336/startup/linkcmds
M  1.115  c/src/lib/libbsp/arm/edb7312/ChangeLog
M   1.10  c/src/lib/libbsp/arm/edb7312/bsp_specs
M   1.10  c/src/lib/libbsp/arm/edb7312/start/start.S
M    1.9  c/src/lib/libbsp/arm/edb7312/startup/linkcmds
M   1.10  c/src/lib/libbsp/arm/gdbarmsim/ChangeLog
M    1.2  c/src/lib/libbsp/arm/gdbarmsim/bsp_specs
M    1.4  c/src/lib/libbsp/arm/gdbarmsim/start/start.S
M    1.2  c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds
M   1.26  c/src/lib/libbsp/arm/gumstix/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gumstix/bsp_specs
M    1.5  c/src/lib/libbsp/arm/gumstix/start/start.S
M    1.3  c/src/lib/libbsp/arm/gumstix/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.68 rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.69
--- rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.68	Fri Apr 30 09:41:12 2010
+++ rtems/c/src/lib/libbsp/arm/csb336/ChangeLog	Fri Dec  3 04:52:07 2010
@@ -1,3 +1,8 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* bsp_specs, start/start.S, startup/linkcmds: Use linker command base
+	file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* Makefile.am, preinstall.am: Added generic interrupt support modules.

diff -u rtems/c/src/lib/libbsp/arm/csb336/bsp_specs:1.8 rtems/c/src/lib/libbsp/arm/csb336/bsp_specs:1.9
--- rtems/c/src/lib/libbsp/arm/csb336/bsp_specs:1.8	Fri Dec  5 07:37:39 2008
+++ rtems/c/src/lib/libbsp/arm/csb336/bsp_specs	Fri Dec  3 04:52:07 2010
@@ -7,8 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }
-

diff -u rtems/c/src/lib/libbsp/arm/csb336/start/start.S:1.6 rtems/c/src/lib/libbsp/arm/csb336/start/start.S:1.7
--- rtems/c/src/lib/libbsp/arm/csb336/start/start.S:1.6	Wed Apr  7 16:48:14 2010
+++ rtems/c/src/lib/libbsp/arm/csb336/start/start.S	Fri Dec  3 04:52:07 2010
@@ -12,6 +12,8 @@
  * $Id$
  */
 
+#include <bsp/linker-symbols.h>
+
 /* Some standard definitions...*/
 .equ PSR_MODE_USR,       0x10
 .equ PSR_MODE_FIQ,       0x11
@@ -39,8 +41,8 @@
         msr     cpsr, r0
 
         /* zero the bss */
-        ldr     r1, =_bss_end_
-        ldr     r0, =_bss_start_
+        ldr     r1, =bsp_section_bss_end
+        ldr     r0, =bsp_section_bss_begin
 
 _bss_init:
         mov     r2, #0
@@ -53,36 +55,36 @@
         /* Enter IRQ mode and set up the IRQ stack pointer */
         mov     r0, #(PSR_MODE_IRQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_irq_stack_size
-        ldr     sp, =_irq_stack
+        ldr     r1, =bsp_stack_irq_size
+        ldr     sp, =bsp_stack_irq_begin
         add     sp, sp, r1
 
         /* Enter FIQ mode and set up the FIQ stack pointer */
         mov     r0, #(PSR_MODE_FIQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_fiq_stack_size
-        ldr     sp, =_fiq_stack
+        ldr     r1, =bsp_stack_fiq_size
+        ldr     sp, =bsp_stack_fiq_begin
         add     sp, sp, r1
 
         /* Enter ABT mode and set up the ABT stack pointer */
         mov     r0, #(PSR_MODE_ABT | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_abt_stack_size
-        ldr     sp, =_abt_stack
+        ldr     r1, =bsp_stack_abt_size
+        ldr     sp, =bsp_stack_abt_begin
         add     sp, sp, r1
 
         /* Enter UNDEF mode and set up the UNDEF stack pointer */
         mov     r0, #(PSR_MODE_UNDEF | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_undef_stack_size
-        ldr     sp, =_undef_stack
+        ldr     r1, =bsp_stack_und_size
+        ldr     sp, =bsp_stack_und_begin
         add     sp, sp, r1
 
         /* Set up the SVC stack pointer last and stay in SVC mode */
         mov     r0, #(PSR_MODE_SVC | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_svc_stack_size
-        ldr     sp, =_svc_stack
+        ldr     r1, =bsp_stack_svc_size
+        ldr     sp, =bsp_stack_svc_begin
         add     sp, sp, r1
         sub     sp, sp, #0x64
 

diff -u rtems/c/src/lib/libbsp/arm/csb336/startup/linkcmds:1.7 rtems/c/src/lib/libbsp/arm/csb336/startup/linkcmds:1.8
--- rtems/c/src/lib/libbsp/arm/csb336/startup/linkcmds:1.7	Fri Sep 19 16:13:54 2008
+++ rtems/c/src/lib/libbsp/arm/csb336/startup/linkcmds	Fri Dec  3 04:52:07 2010
@@ -1,247 +1,25 @@
-/*
- *  Cogent CSB336 Linker script
- *
- *  Copyright (c) 2004 by Cogent Computer Systems
- *  Written by Jay Monkman <jtm at lopingdog.com>
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-/* SEARCH_DIR(/usr/local/rtems-arm-dev-tools/arm-rtems/lib); */
-
-
 MEMORY {
-	sdram : ORIGIN = 0x08200000, LENGTH = 30M
+	SDRAM_MMU : ORIGIN = 0x08200000, LENGTH = 16k
+	SDRAM : ORIGIN = 0x08204000, LENGTH = 30M - 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-/* The base for SDRAM is set to umon's APPRAMBASE */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x08200000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 30M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x400;
-_undef_stack_size = DEFINED(_undef_stack_size) ? _undef_stack_size : 0x400;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-			      /* FIXME: */
-
-    rtems_vector_table = .;
-    . += (8 * 4);                     /* 8 ARM interrupts */
-	
-    . = ALIGN (0x100);
-
-
-  } > sdram
-
-  .init          : 
-  { 
-    KEEP (*(.init))
-  } > sdram   /*=0*/
-
-  .text      :
-  {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-  } > sdram  
-
-  .fini      :
-  {
-    KEEP (*(.fini))
-  } > sdram  /*=0*/
-
-  .data :
-  { 
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    *(.jcr)
-    SORT(CONSTRUCTORS)
-    _edata = .;
-  } > sdram 
-
-  .eh_frame : { *(.eh_frame) } > sdram
-  .data1   : { *(.data1) } > sdram
-  .eh_frame : { *(.eh_frame) } > sdram
-  .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-  .rodata :
-  {
-    *(.rodata)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-  } > sdram
-
-  .bss       :
-  {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_undef_stack = .;
-	. += _undef_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we
- * don't have any. If we don't use more regions than TLB entries (64),
- * the lookup will only happen once for each region.
- */
-	. = ALIGN (16 * 1024);
-	_ttbl_base = .;
-	. += (16 * 1024);
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-  } > sdram
-
-
-/* Debugging stuff follows? */
-
-  /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4

diff -u rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.114 rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.115
--- rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.114	Fri Apr 30 09:48:52 2010
+++ rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog	Fri Dec  3 04:51:37 2010
@@ -1,3 +1,8 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* bsp_specs, start/start.S, startup/linkcmds: Use linker command base
+	file.
+
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* irq/bsp_irq_init.c: Removed file.

diff -u rtems/c/src/lib/libbsp/arm/edb7312/bsp_specs:1.9 rtems/c/src/lib/libbsp/arm/edb7312/bsp_specs:1.10
--- rtems/c/src/lib/libbsp/arm/edb7312/bsp_specs:1.9	Fri Dec  5 07:37:43 2008
+++ rtems/c/src/lib/libbsp/arm/edb7312/bsp_specs	Fri Dec  3 04:51:37 2010
@@ -7,7 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }

diff -u rtems/c/src/lib/libbsp/arm/edb7312/start/start.S:1.9 rtems/c/src/lib/libbsp/arm/edb7312/start/start.S:1.10
--- rtems/c/src/lib/libbsp/arm/edb7312/start/start.S:1.9	Wed Apr  7 16:49:45 2010
+++ rtems/c/src/lib/libbsp/arm/edb7312/start/start.S	Fri Dec  3 04:51:37 2010
@@ -1,6 +1,8 @@
 /*
  * Cirrus EP7312 Startup code
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2002 by Jay Monkman <jtm at smoothsmoothie.com>
  *
  * Copyright (c) 2002 by Charlie Steader <charlies at poliac.com>
@@ -14,6 +16,8 @@
  *  $Id$
 */
 
+#include <bsp/linker-symbols.h>
+
 /* Some standard definitions...*/
 
 .equ Mode_USR,        	     0x10
@@ -28,50 +32,8 @@
 .equ I_Bit,           	     0x80
 .equ F_Bit,           	     0x40
 
-	.text
-	.globl	_start
-
-_start:
-	/* store the sp */
-	mov	r12, sp
-/*
- * Here is the code to initialize the low-level BSP environment
- * (Chip Select, PLL, ....?)
- */
-
-/* zero the bss */
-        LDR     r1, =_bss_end_       /* get end of ZI region */
-        LDR     r0, =_bss_start_     /* load base address of ZI region */
-
-zi_init:
-        MOV     r2, #0
-        CMP     r0, r1		       /* loop whilst r0 < r1 */
-        STRLOT   r2, [r0], #4
-        BLO     zi_init
-
-/* Load basic ARM7 interrupt table */
-VectorInit:
-	MOV	R0, #0
-	ADR	R1, Vector_Init_Block
-	LDMIA	R1!, {R2, r3}	/* Copy the Vectors (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the Vectors (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the Vectors (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the Vectors (8 words) */
-	STMIA	R0!, {r2, r3}
-
-	LDMIA	R1!, {R2, r3}	/* Copy the .long'ed addresses (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the .long'ed addresses (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the .long'ed addresses (8 words) */
-	STMIA	R0!, {r2, r3}
-	LDMIA	R1!, {R2, r3}	/* Copy the .long'ed addresses (8 words) */
-	STMIA	R0!, {r2, r3}
-
-	B	init2
+.section ".bsp_start_text", "ax"
+.arm
 
 /*******************************************************
  standard exception vectors table
@@ -118,38 +80,56 @@
 FIQ_Handler:
         B       FIQ_Handler
 
-init2 :
+	.globl	_start
+_start:
+	/* store the sp */
+	mov	r12, sp
+/*
+ * Here is the code to initialize the low-level BSP environment
+ * (Chip Select, PLL, ....?)
+ */
+
+/* zero the bss */
+        LDR     r1, =bsp_section_bss_end   /* get end of ZI region */
+        LDR     r0, =bsp_section_bss_begin /* load base address of ZI region */
+
+zi_init:
+        MOV     r2, #0
+        CMP     r0, r1		       /* loop whilst r0 < r1 */
+        STRLOT   r2, [r0], #4
+        BLO     zi_init
+
 /* --- Initialise stack pointer registers */
 
 /* Enter IRQ mode and set up the IRQ stack pointer */
     MOV     r0, #Mode_IRQ | I_Bit | F_Bit     /* No interrupts */
     MSR     cpsr, r0
-    ldr	    r1, =_irq_stack_size
-    LDR     sp, =_irq_stack
+    ldr	    r1, =bsp_stack_irq_size
+    LDR     sp, =bsp_stack_irq_begin
     add	    sp, sp, r1
     sub     sp, sp, #0x64
 
 /* Enter FIQ mode and set up the FIQ stack pointer */
     MOV     r0, #Mode_FIQ | I_Bit | F_Bit     /* No interrupts */
     MSR     cpsr, r0
-    ldr	    r1, =_fiq_stack_size
-    LDR     sp, =_fiq_stack
+    ldr	    r1, =bsp_stack_fiq_size
+    LDR     sp, =bsp_stack_fiq_begin
     add	    sp, sp, r1
     sub     sp, sp, #0x64
 
 /* Enter ABT mode and set up the ABT stack pointer */
     MOV     r0, #Mode_ABT | I_Bit | F_Bit     /* No interrupts */
     MSR     cpsr, r0
-    ldr	    r1, =_abt_stack_size
-    LDR     sp, =_abt_stack
+    ldr	    r1, =bsp_stack_abt_size
+    LDR     sp, =bsp_stack_abt_begin
     add	    sp, sp, r1
     sub     sp, sp, #0x64
 
 /* Set up the SVC stack pointer last and stay in SVC mode */
     MOV     r0, #Mode_SVC | I_Bit | F_Bit     /* No interrupts */
     MSR     cpsr, r0
-    ldr	    r1, =_svc_stack_size
-    LDR     sp, =_svc_stack
+    ldr	    r1, =bsp_stack_svc_size
+    LDR     sp, =bsp_stack_svc_begin
     add	    sp, sp, r1
     sub     sp, sp, #0x64
 

diff -u rtems/c/src/lib/libbsp/arm/edb7312/startup/linkcmds:1.8 rtems/c/src/lib/libbsp/arm/edb7312/startup/linkcmds:1.9
--- rtems/c/src/lib/libbsp/arm/edb7312/startup/linkcmds:1.8	Fri Sep 19 16:13:57 2008
+++ rtems/c/src/lib/libbsp/arm/edb7312/startup/linkcmds	Fri Dec  3 04:51:37 2010
@@ -1,243 +1,24 @@
-/*
- * Cirrus EP7312 linker script
- *
- * Copyright (c) 2002 by Jay Monkman <jtm at smoothsmoothie.com>
- *	
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *
- *  $Id$
-*/
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-
 MEMORY {
-	sdram : ORIGIN = 0x00000000, LENGTH = 16M
-	regs  : ORIGIN = 0x80000000, LENGTH = 1M
+	SDRAM : ORIGIN = 0x00000000, LENGTH = 16M
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x00000000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 16M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    _sram_base = .;
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-			      /* FIXME: */
-    fiq_vect_table    = .;    /* this and irq_vector_table should be swapped */
-    . += (32 * 4);
-
-    irq_vector_table = .;
-    . += (32 * 4);      
-
-  } > sdram
-
-  .init          : 
-  { 
-    KEEP (*(.init))
-  } > sdram   /*=0*/
-
-  .text      :
-  {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-  } > sdram  
-
-  .fini      :
-  {
-    KEEP (*(.fini))
-  } > sdram  /*=0*/
-
-  .data :
-  { 
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    *(.jcr)
-    SORT(CONSTRUCTORS)
-    _edata = .;
-  } > sdram 
-
-  .eh_frame : { *(.eh_frame) } > sdram
-  .data1   : { *(.data1) } > sdram
-  .eh_frame : { *(.eh_frame) } > sdram
-  .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-  .rodata :
-  {
-    *(.rodata)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-  } > sdram
-
-  .bss       :
-  {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-  } > sdram
-
-/*
-  .regs	:
-  {
-	ep7312_regs_base = .;
-	ep7312_regs = .;
-	. += 8192;
-  } > regs
-*/
-
-
-/* Debugging stuff follows? */
-
-  /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+bsp_vector_table_in_start_section = 1;
 
+INCLUDE linkcmds.armv4

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.9 rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.10
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.9	Sun Aug 15 17:51:01 2010
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog	Fri Dec  3 04:51:06 2010
@@ -1,3 +1,8 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* bsp_specs, start/start.S, startup/linkcmds: Use linker command base
+	file.
+
 2010-08-15	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* startup/syscalls.c: ifdef out _times since it conflicts with

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/bsp_specs:1.1 rtems/c/src/lib/libbsp/arm/gdbarmsim/bsp_specs:1.2
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/bsp_specs:1.1	Thu Oct  1 16:48:42 2009
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/bsp_specs	Fri Dec  3 04:51:06 2010
@@ -7,8 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }
-

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/start/start.S:1.3 rtems/c/src/lib/libbsp/arm/gdbarmsim/start/start.S:1.4
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/start/start.S:1.3	Wed Apr  7 16:49:49 2010
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/start/start.S	Fri Dec  3 04:51:06 2010
@@ -7,6 +7,7 @@
 
 #include <newlib.h>
 #include <bsp/swi.h>
+#include <bsp/linker-symbols.h>
 
 /* ANSI concatenation macros.  */
 #define CONCAT(a, b) CONCAT2(a, b)
@@ -375,9 +376,9 @@
 	.fnend
 #endif
 .LC1:
-	.word	__bss_start__
+	.word	bsp_section_bss_begin
 .LC2:
-	.word	__clear_end__ /* __bss_end__ */
+	.word	bsp_section_bss_end
 #ifdef __USES_INITFINI__
 .Lfini:
 	.word	FUNCTION(_fini)

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds:1.1 rtems/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds:1.2
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds:1.1	Thu Oct  1 16:48:42 2009
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds	Fri Dec  3 04:51:06 2010
@@ -1,252 +1,22 @@
-/*
- *  Cogent CSB336 Linker script
- *
- *  Copyright (c) 2004 by Cogent Computer Systems
- *  Written by Jay Monkman <jtm at lopingdog.com>
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-/* SEARCH_DIR(/usr/local/rtems-arm-dev-tools/arm-rtems/lib); */
-
-
 MEMORY {
-	sdram : ORIGIN = 0x00000000, LENGTH = 4M
+	RAM : ORIGIN = 0x00000000, LENGTH = 4M
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-
-/* The base for SDRAM is set to umon's APPRAMBASE */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x0;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 4M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x400;
-_undef_stack_size = DEFINED(_undef_stack_size) ? _undef_stack_size : 0x400;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-  .base :
-  {
-    arm_exception_table = .;    
-
-    arm_reset_vect    = .;     /* 0x00 */
-    . += 4;
-
-    arm_undef_vect    = .;     /* 0x04 */
-    . += 4;
-
-    arm_swi_vect      = .;     /* 0x08 */
-    . += 4;
-
-    arm_iabrt_vect    = .;     /* 0x0c */
-    . += 4;
-
-    arm_dabrt_vect    = .;     /* 0x10 */
-    . += 4;
-
-    /* no vector here */
-    . += 4;
-
-    arm_irq_vect      = .;     /* 0x18 */
-    . += 4;
-
-    arm_fiq_vect      = .;     /* 0x1c */
-    . += 4;
-			      /* FIXME: */
-
-    rtems_vector_table = .;
-    . += (8 * 4);                     /* 8 ARM interrupts */
-	
-    . = ALIGN (0x100);
-
-
-  } > sdram
-
-  .text      :
-  {
-	. = 0x8000;
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
-
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-  } > sdram  
-
-  .init          : 
-  { 
-    KEEP (*(.init))
-  } > sdram   /*=0*/
-
-  .fini      :
-  {
-    KEEP (*(.fini))
-  } > sdram  /*=0*/
-
-  .data :
-  { 
-    *(.data)
-    *(.data.*)
-    *(.gnu.linkonce.d*)
-    *(.jcr)
-    SORT(CONSTRUCTORS)
-    _edata = .;
-  } > sdram 
-
-  .eh_frame : { *(.eh_frame) } > sdram
-  .data1   : { *(.data1) } > sdram
-  .eh_frame : { *(.eh_frame) } > sdram
-  .gcc_except_table : { *(.gcc_except_table*) } > sdram
-
-  .rodata :
-  {
-    *(.rodata)
-    *(.rodata.*)
-    *(.gnu.linkonce.r*)
-  } > sdram
-
-  .bss       :
-  {
-	__bss_start__ = .;
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_undef_stack = .;
-	. += _undef_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we
- * don't have any. If we don't use more regions than TLB entries (64),
- * the lookup will only happen once for each region.
- */
-	. = ALIGN (16 * 1024);
-	_ttbl_base = .;
-	. += (16 * 1024);
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-        . = RamSize + RamBase - 1;
-	__clear_end__ = .;
-	__bss_end__ = .;
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-  } > sdram
-
-
-/* Debugging stuff follows? */
-
-  /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+REGION_ALIAS ("REGION_START", RAM);
+REGION_ALIAS ("REGION_VECTOR", RAM);
+REGION_ALIAS ("REGION_TEXT", RAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+REGION_ALIAS ("REGION_RODATA", RAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+REGION_ALIAS ("REGION_DATA", RAM);
+REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+REGION_ALIAS ("REGION_FAST_DATA", RAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+REGION_ALIAS ("REGION_BSS", RAM);
+REGION_ALIAS ("REGION_WORK", RAM);
+REGION_ALIAS ("REGION_STACK", RAM);
 
+INCLUDE linkcmds.armv4

diff -u rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.25 rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.26
--- rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.25	Fri May 14 07:00:46 2010
+++ rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog	Fri Dec  3 04:50:40 2010
@@ -1,3 +1,8 @@
+2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* bsp_specs, start/start.S, startup/linkcmds: Use linker command base
+	file.
+
 2010-05-14	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* rtl8019/rtl8019.c: Fix typo.

diff -u rtems/c/src/lib/libbsp/arm/gumstix/bsp_specs:1.2 rtems/c/src/lib/libbsp/arm/gumstix/bsp_specs:1.3
--- rtems/c/src/lib/libbsp/arm/gumstix/bsp_specs:1.2	Mon Jun 29 18:16:44 2009
+++ rtems/c/src/lib/libbsp/arm/gumstix/bsp_specs	Fri Dec  3 04:50:40 2010
@@ -7,7 +7,7 @@
 %{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
 
 *link:
-%{!qrtems: %(old_link)} %{qrtems: -dp -Bstatic -N}
+%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
 
 *endfile:
 %{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }

diff -u rtems/c/src/lib/libbsp/arm/gumstix/start/start.S:1.4 rtems/c/src/lib/libbsp/arm/gumstix/start/start.S:1.5
--- rtems/c/src/lib/libbsp/arm/gumstix/start/start.S:1.4	Wed Apr  7 16:49:53 2010
+++ rtems/c/src/lib/libbsp/arm/gumstix/start/start.S	Fri Dec  3 04:50:40 2010
@@ -9,6 +9,7 @@
  *  $Id$
  */
 
+#include <bsp/linker-symbols.h>
 
 /* Some standard definitions...*/
 .equ PSR_MODE_USR,       0x10
@@ -38,8 +39,8 @@
 
 
         /* zero the bss */
-        ldr     r1, =_bss_end_
-        ldr     r0, =_bss_start_
+        ldr     r1, =bsp_section_bss_end
+        ldr     r0, =bsp_section_bss_begin
 
 _bss_init:
         mov     r2, #0
@@ -51,29 +52,29 @@
         /* Enter IRQ mode and set up the IRQ stack pointer */
         mov     r0, #(PSR_MODE_IRQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_irq_stack_size
-        ldr     sp, =_irq_stack
+        ldr     r1, =bsp_stack_irq_size
+        ldr     sp, =bsp_stack_irq_begin
         add     sp, sp, r1
 
         /* Enter FIQ mode and set up the FIQ stack pointer */
         mov     r0, #(PSR_MODE_FIQ | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_fiq_stack_size
-        ldr     sp, =_fiq_stack
+        ldr     r1, =bsp_stack_fiq_size
+        ldr     sp, =bsp_stack_fiq_begin
         add     sp, sp, r1
 
         /* Enter ABT mode and set up the ABT stack pointer */
         mov     r0, #(PSR_MODE_ABT | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_abt_stack_size
-        ldr     sp, =_abt_stack
+        ldr     r1, =bsp_stack_abt_size
+        ldr     sp, =bsp_stack_abt_begin
         add     sp, sp, r1
 
         /* Set up the SVC stack pointer last and stay in SVC mode */
         mov     r0, #(PSR_MODE_SVC | PSR_I | PSR_F)     /* No interrupts */
         msr     cpsr, r0
-        ldr     r1, =_svc_stack_size
-        ldr     sp, =_svc_stack
+        ldr     r1, =bsp_stack_und_size
+        ldr     sp, =bsp_stack_und_begin
         add     sp, sp, r1
         sub     sp, sp, #0x64
 

diff -u rtems/c/src/lib/libbsp/arm/gumstix/startup/linkcmds:1.2 rtems/c/src/lib/libbsp/arm/gumstix/startup/linkcmds:1.3
--- rtems/c/src/lib/libbsp/arm/gumstix/startup/linkcmds:1.2	Thu Jun 11 08:12:42 2009
+++ rtems/c/src/lib/libbsp/arm/gumstix/startup/linkcmds	Fri Dec  3 04:50:40 2010
@@ -1,217 +1,26 @@
-/*
- * GUMSTIX linkcmd by Yang Xi <hiyangxi at gmail.com>. Borrow form CSB337 linkcmd.
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
-	      "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-MEMORY
-{
-	sdram : ORIGIN = 0xA0000000, LENGTH = 64M
-	sram  : ORIGIN = 0x00000000, LENGTH = 16K
+MEMORY {
+	SDRAM_MMU : ORIGIN = 0xa0000000, LENGTH = 16k
+	SDRAM : ORIGIN = 0xa0004000, LENGTH = 64M - 16k
+	SRAM : ORIGIN = 0x00000000, LENGTH = 16k
+	NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
-/*
- * Declare some sizes.
- */
-_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0xA0000000;
-_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 64M;
-
-RamBase = _sdram_base;
-RamSize = _sdram_size;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
-
-_sram_base = DEFINED(_sram_base) ? _sram_base : 0x00000000;
-_sram_size = DEFINED(_sram_size) ? _sram_size : 16K;
-
-
-
-_irq_stack_size = DEFINED(_irq_stack_size) ? _irq_stack_size : 0x1000;
-_fiq_stack_size = DEFINED(_fiq_stack_size) ? _fiq_stack_size : 0x400;
-_abt_stack_size = DEFINED(_abt_stack_size) ? _abt_stack_size : 0x100;
-_svc_stack_size = DEFINED(_svc_stack_size) ? _svc_stack_size : 0x1000;
-
-
-
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-
-SECTIONS
-{
-    .base :
-    {
-	
-	arm_exception_table = .;    
-	. += 64;
-    } > sdram
-   
-/*    } > sram*/
-
-	
-    .init          : 
-    { 
-        KEEP (*(.init))
-    } > sdram   /*=0*/
-
-    .text      :
-    {
-	_text_start = .;
-	 CREATE_OBJECT_SYMBOLS
-	*(.text) 
-	*(.text.*)
-
-        /*
-         * Special FreeBSD sysctl sections.
-         */
-        . = ALIGN (16);
-        __start_set_sysctl_set = .;
-        *(set_sysctl_*);
-        __stop_set_sysctl_set = ABSOLUTE(.);
-        *(set_domain_*);
-        *(set_pseudo_*);
-
-	/* .gnu.warning sections are handled specially by elf32.em.  */
-	*(.gnu.warning)
-	*(.gnu.linkonce.t*)
-	*(.glue_7)
-	*(.glue_7t)
-
-	/* I think these come from the ld docs: */	
-	___CTOR_LIST__ = .;
-	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
-	*(.ctors)
-	LONG(0)
-	___CTOR_END__ = .;
-	___DTOR_LIST__ = .;
-	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
-	*(.dtors)
-	LONG(0)
-	___DTOR_END__ = .;
-
-	_etext = .;
-	PROVIDE (etext = .);
-    } > sdram  
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
 
-    .fini      :
-    {
-        KEEP (*(.fini))
-    } > sdram  /*=0*/
-
-    .data :
-    { 
-        *(.data)
-        *(.data.*)
-        *(.gnu.linkonce.d*)
-        *(.jcr)
-        SORT(CONSTRUCTORS)
-        _edata = .;
-    } > sdram 
-
-    .eh_frame : { *(.eh_frame) } > sdram
-    .data1   : { *(.data1) } > sdram
-    .eh_frame : { *(.eh_frame) } > sdram
-    .gcc_except_table : { *(.gcc_except_table) } > sdram
-
-    .rodata :
-    {
-      *(.rodata)
-      *(.rodata.*)
-      *(.gnu.linkonce.r*)
-    } > sdram
-
-    .bss       :
-    {
-	_bss_start_ = .;
-	_clear_start = .;
-	*(.bss)
-	*(.bss.*)
-	*(.gnu.linkonce.b.*)
-	*(COMMON)
-	. = ALIGN(64);
-	_clear_end = .;
-
-	. = ALIGN (256);
-	_abt_stack = .;
-	. += _abt_stack_size;
-
-	. = ALIGN (256);
-	_irq_stack = .;
-	. += _irq_stack_size;
-
-	. = ALIGN (256);
-	_fiq_stack = .;
-	. += _fiq_stack_size;
-
-	. = ALIGN (256);
-	_svc_stack = .;
-	. += _svc_stack_size;
-
-	_bss_end_ = .;
-	_end = .;
-	__end = .;
-
-/* 
- * Ideally, the MMU's translation table would be in SRAM. But we need
- * 16K which is the size of SRAM. If we do the mapping right, the TLB
- * should be big enough that to hold all the translations that matter,
- * so keeping the table in SDRAM won't be a problem.
- */
-	. = ALIGN (16 * 1024);
-	  _ttbl_base = .;
-	  . += (16 * 1024);
-
-
-	. = ALIGN (1024);
-	_bss_free_start = .;
-	WorkAreaBase = .;
-
-    } > sdram
-
-
-/* Debugging stuff follows? */
-
-    /* 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 0x80000 : { _stack = .; *(.stack) }*/
-  /* These must appear regardless of  .  */
-}
+_ttbl_base = ORIGIN (SDRAM_MMU);
 
+INCLUDE linkcmds.armv4


 *sh*:
Typo.

M   1.68  c/src/lib/libbsp/arm/gba/ChangeLog

diff -u rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.67 rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.68
--- rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.67	Fri Dec  3 04:51:22 2010
+++ rtems/c/src/lib/libbsp/arm/gba/ChangeLog	Fri Dec  3 04:57:28 2010
@@ -1,6 +1,6 @@
 2010-12-03	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
-	* startup/linkcmds: Use linker command base file.
+	* startup/linkcmds: ARM EABI compatibility.
 
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20101203/c88c0446/attachment-0001.html>


More information about the vc mailing list