change log for rtems (2010-05-11)

rtems-vc at rtems.org rtems-vc at rtems.org
Tue May 11 08:10:48 UTC 2010


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

	* shared/startup/linkcmds.base: New file.

M   1.79  c/src/lib/libbsp/sparc/ChangeLog
A    1.1  c/src/lib/libbsp/sparc/shared/startup/linkcmds.base

diff -u rtems/c/src/lib/libbsp/sparc/ChangeLog:1.78 rtems/c/src/lib/libbsp/sparc/ChangeLog:1.79
--- rtems/c/src/lib/libbsp/sparc/ChangeLog:1.78	Wed Apr  7 08:57:30 2010
+++ rtems/c/src/lib/libbsp/sparc/ChangeLog	Tue May 11 02:35:55 2010
@@ -1,3 +1,7 @@
+2010-05-11	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* shared/startup/linkcmds.base: New file.
+
 2010-04-07	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	* shared/spw/grspw_rasta.c: Guard prototype of 

diff -u /dev/null rtems/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base:1.1
--- /dev/null	Tue May 11 03:10:46 2010
+++ rtems/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base	Tue May 11 02:35:56 2010
@@ -0,0 +1,182 @@
+/*  linkcmds
+ *
+ *  $Id$
+ */
+
+OUTPUT_ARCH(sparc)
+__DYNAMIC  =  0;
+
+/*
+ * The memory map looks like this:
+ * +--------------------+ <- low memory
+ * | .text              |
+ * |        etext       |
+ * |        ctor list   | the ctor and dtor lists are for
+ * |        dtor list   | C++ support
+ * |        _endtext    |
+ * +--------------------+
+ * | .data              | initialized data goes here
+ * |        _sdata      |
+ * |        _edata      |
+ * +--------------------+
+ * | .bss               |
+ * |        __bss_start | start of bss, cleared by crt0
+ * |        _end        | start of heap, used by sbrk()
+ * +--------------------+
+ * |    heap space      |
+ * |        _ENDHEAP    |
+ * |    stack space     | 
+ * |        __stack     | top of stack
+ * +--------------------+ <- high memory
+ */
+
+_RAM_END = _RAM_START + _RAM_SIZE;
+
+_PROM_END = _PROM_START + _PROM_SIZE;
+
+/*
+ *  Alternate names without leading _.
+ */
+
+PROM_START = _PROM_START;
+PROM_SIZE = _PROM_SIZE;
+PROM_END = _PROM_END;
+
+RAM_START = _RAM_START;
+RAM_SIZE = _RAM_SIZE;
+RAM_END = _RAM_END;
+
+/*
+ * SPARC monitor assumes this is present to provide proper RTEMS awareness.
+ */
+EXTERN(rtems_get_version_string);
+
+/*
+ * stick everything in ram (of course)
+ */
+SECTIONS
+{
+  .text :
+  {
+    CREATE_OBJECT_SYMBOLS
+    text_start = .;
+    _text_start = .;
+    *(.text*)
+    . = ALIGN (16);
+
+    /*
+     * Special FreeBSD sysctl sections.
+     */
+    . = ALIGN (16);
+    __start_set_sysctl_set = .;
+    *(set_sysctl_*);
+    __stop_set_sysctl_set = ABSOLUTE(.);
+    *(set_domain_*);
+    *(set_pseudo_*);
+
+    *(.eh_frame)
+    . = ALIGN (16);
+
+    *(.gnu.linkonce.t*)
+
+    /*
+     * C++ constructors
+     */
+    /* 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 (*crtbegin?.o(.ctors))
+    /* We don't want to include the .ctor section from
+       the crtend.o file until after the sorted ctors.
+       The .ctor section from the crtend file contains the
+       end of ctors marker and it must be last */
+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+    KEEP (*(SORT(.ctors.*)))
+    KEEP (*(.ctors))
+    KEEP (*crtbegin.o(.dtors))
+    KEEP (*crtbegin?.o(.dtors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+    KEEP (*(SORT(.dtors.*)))
+    KEEP (*(.dtors))
+
+    _rodata_start = . ;
+    *(.rodata*)
+    *(.gnu.linkonce.r*)
+    _erodata = ALIGN( 0x10 ) ;
+
+    etext = ALIGN(0x10);
+    _etext = .;
+    *(.init)
+    *(.fini)
+    *(.lit)
+    *(.shdata)
+    . = ALIGN (16);
+    _endtext = .;
+  } > ram
+  .rela.dyn       :
+    {
+      *(.rela.init)
+      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+      *(.rela.fini)
+      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+      *(.rela.ctors)
+      *(.rela.dtors)
+      *(.rela.got)
+      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+    } >ram
+  .data :
+  {
+    data_start = .;
+    _data_start = .;
+    _sdata = . ;
+    *(.data*)
+    *(.gnu.linkonce.d*)
+    *(.gcc_except_table*)
+    . = ALIGN(0x10);
+    edata = .;
+    _edata = .;
+  } > ram
+  .dynamic	  : { *(.dynamic) 	} >ram
+  .jcr		  : { *(.jcr) 		} >ram
+  .got		  : { *(.got) 		} >ram
+  .plt   	  : { *(.plt) 		} >ram
+  .hash		  : { *(.hash)		} >ram
+  .dynrel	  : { *(.dynrel)	} >ram
+  .dynsym	  : { *(.dynsym)	} >ram
+  .dynstr	  : { *(.dynstr)	} >ram
+  .hash		  : { *(.hash)		} >ram
+  .shbss :
+  {
+    *(.shbss)
+  } > ram
+  .bss :
+  {
+    __bss_start = ALIGN(0x8);
+    _bss_start = .;
+    bss_start = .;
+    *(.bss .bss* .gnu.linkonce.b*)
+    *(COMMON)
+    . = ALIGN (16);
+    end = .;
+    _end = ALIGN(0x8);
+    __end = ALIGN(0x8);
+  } > ram
+  .stab . (NOLOAD) :
+  {
+    [ .stab ]
+  }
+  .stabstr . (NOLOAD) :
+  {
+    [ .stabstr ]
+  }
+}


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

	* startup/linkcmds: Include basic linker command file and define only
	board specific values.  Define RAM and PROM limits only if not defined
	by command line arguments.
	* Makefile.am, preinstall.am: Reflect changes above.

M  1.152  c/src/lib/libbsp/sparc/erc32/ChangeLog
M   1.51  c/src/lib/libbsp/sparc/erc32/Makefile.am
M    1.8  c/src/lib/libbsp/sparc/erc32/preinstall.am
M   1.23  c/src/lib/libbsp/sparc/erc32/startup/linkcmds
M   1.71  c/src/lib/libbsp/sparc/leon2/ChangeLog
M   1.24  c/src/lib/libbsp/sparc/leon2/Makefile.am
M   1.13  c/src/lib/libbsp/sparc/leon2/preinstall.am
M   1.11  c/src/lib/libbsp/sparc/leon2/startup/linkcmds
M   1.94  c/src/lib/libbsp/sparc/leon3/ChangeLog
M   1.27  c/src/lib/libbsp/sparc/leon3/Makefile.am
M   1.14  c/src/lib/libbsp/sparc/leon3/preinstall.am
M   1.11  c/src/lib/libbsp/sparc/leon3/startup/linkcmds

diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.151 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.152
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.151	Fri May  7 07:12:32 2010
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog	Tue May 11 02:40:38 2010
@@ -1,3 +1,10 @@
+2010-05-11	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds: Include basic linker command file and define only
+	board specific values.  Define RAM and PROM limits only if not defined
+	by command line arguments.
+	* Makefile.am, preinstall.am: Reflect changes above.
+
 2010-04-27	Tiemen Schut <T.Schut at sron.nl>
 
 	PR 1506/bsps

diff -u rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.50 rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.51
--- rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.50	Fri May  7 07:12:32 2010
+++ rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am	Tue May 11 02:40:39 2010
@@ -28,7 +28,7 @@
 libbspstart_a_SOURCES = ../../sparc/shared/start.S
 project_lib_DATA = start.$(OBJEXT)
 
-dist_project_lib_DATA += startup/linkcmds
+dist_project_lib_DATA += startup/linkcmds ../shared/startup/linkcmds.base
 
 noinst_LIBRARIES += libbsp.a
 libbsp_a_SOURCES =

diff -u rtems/c/src/lib/libbsp/sparc/erc32/preinstall.am:1.7 rtems/c/src/lib/libbsp/sparc/erc32/preinstall.am:1.8
--- rtems/c/src/lib/libbsp/sparc/erc32/preinstall.am:1.7	Thu Oct  2 11:38:15 2008
+++ rtems/c/src/lib/libbsp/sparc/erc32/preinstall.am	Tue May 11 02:40:39 2010
@@ -69,3 +69,7 @@
 	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
 
+$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
+

diff -u rtems/c/src/lib/libbsp/sparc/erc32/startup/linkcmds:1.22 rtems/c/src/lib/libbsp/sparc/erc32/startup/linkcmds:1.23
--- rtems/c/src/lib/libbsp/sparc/erc32/startup/linkcmds:1.22	Mon Mar  2 11:27:50 2009
+++ rtems/c/src/lib/libbsp/sparc/erc32/startup/linkcmds	Tue May 11 02:40:39 2010
@@ -3,75 +3,20 @@
  *  $Id$
  */
 
-OUTPUT_ARCH(sparc)
-__DYNAMIC  =  0;
-
-/*
- * The memory map looks like this:
- * +--------------------+ <- low memory
- * | .text              |
- * |        etext       |
- * |        ctor list   | the ctor and dtor lists are for
- * |        dtor list   | C++ support
- * |        _endtext    |
- * +--------------------+
- * | .data              | initialized data goes here
- * |        _sdata      |
- * |        _edata      |
- * +--------------------+
- * | .bss               |
- * |        __bss_start | start of bss, cleared by crt0
- * |        _end        | start of heap, used by sbrk()
- * +--------------------+
- * |    heap space      |
- * |        _ENDHEAP    |
- * |    stack space     | 
- * |        __stack     | top of stack
- * +--------------------+ <- high memory
- */
-
-
-/*
- * User modifiable values:
- *
- * _CLOCK_SPEED               in Mhz (used to program the counter/timers)
- *
- * _PROM_SIZE                 size of PROM (permissible values are 128K, 256K,
- *                               512K, 1M, 2M, 4M, 8M and 16M)
- * _RAM_SIZE                  size of RAM (permissible values are 256K, 512K,
- *                               1M, 2M, 4M, 8M, 16M, and 32M)
- *
- */
-
 /* Default values, can be overridden */
 
-_PROM_SIZE = 2M;
-_RAM_SIZE = 4M;
-
-_RAM_START = 0x02000000;
-_RAM_END = _RAM_START + _RAM_SIZE;
-
-_PROM_START = 0x00000000;
-_PROM_END = _PROM_START + _PROM_SIZE;
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
 
-/*
- *  Alternate names without leading _.
- */
-
-PROM_START = _PROM_START;
-PROM_SIZE = _PROM_SIZE;
-PROM_END = _PROM_END;
-
-RAM_START = _RAM_START;
-RAM_SIZE = _RAM_SIZE;
-RAM_END = _RAM_END;
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x02000000;
 
 /*
  *  Base address of the on-CPU peripherals
  */
 
 _ERC32_MEC = 0x01f80000;
-ERC32_MEC = 0x01f80000;
+ERC32_MEC = _ERC32_MEC;
 
 /* these are the maximum values */
 
@@ -81,137 +26,4 @@
   ram     : ORIGIN = 0x02000000, LENGTH = 32M
 }
 
-/*
- * SPARC monitor assumes this is present to provide proper RTEMS awareness.
- */
-EXTERN(rtems_get_version_string);
-
-/*
- * stick everything in ram (of course)
- */
-SECTIONS
-{
-  .text :
-  {
-    CREATE_OBJECT_SYMBOLS
-    text_start = .;
-    _text_start = .;
-    *(.text*)
-    . = ALIGN (16);
-
-    /*
-     * Special FreeBSD sysctl sections.
-     */
-    . = ALIGN (16);
-    __start_set_sysctl_set = .;
-    *(set_sysctl_*);
-    __stop_set_sysctl_set = ABSOLUTE(.);
-    *(set_domain_*);
-    *(set_pseudo_*);
-
-    *(.eh_frame)
-    . = ALIGN (16);
-
-    *(.gnu.linkonce.t*)
-
-    /*
-     * C++ constructors
-     */
-    /* 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 (*crtbegin?.o(.ctors))
-    /* We don't want to include the .ctor section from
-       the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*crtbegin?.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-
-    _rodata_start = . ;
-    *(.rodata*)
-    *(.gnu.linkonce.r*)
-    _erodata = ALIGN( 0x10 ) ;
-
-    etext = ALIGN(0x10);
-    _etext = .;
-    *(.init)
-    *(.fini)
-    *(.lit)
-    *(.shdata)
-    . = ALIGN (16);
-    _endtext = .;
-  } > ram
-  .rela.dyn       :
-    {
-      *(.rela.init)
-      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-      *(.rela.fini)
-      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
-      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
-      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
-      *(.rela.ctors)
-      *(.rela.dtors)
-      *(.rela.got)
-      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
-    } >ram
-  .data :
-  {
-    data_start = .;
-    _data_start = .;
-    _sdata = . ;
-    *(.data*)
-    *(.gnu.linkonce.d*)
-    *(.gcc_except_table*)
-    . = ALIGN(0x10);
-    edata = .;
-    _edata = .;
-  } > ram
-  .dynamic	  : { *(.dynamic) 	} >ram
-  .jcr		  : { *(.jcr) 		} >ram
-  .got		  : { *(.got) 		} >ram
-  .plt   	  : { *(.plt) 		} >ram
-  .hash		  : { *(.hash)		} >ram
-  .dynrel	  : { *(.dynrel)	} >ram
-  .dynsym	  : { *(.dynsym)	} >ram
-  .dynstr	  : { *(.dynstr)	} >ram
-  .hash		  : { *(.hash)		} >ram
-  .shbss :
-  {
-    *(.shbss)
-  } > ram
-  .bss :
-  {
-    __bss_start = ALIGN(0x8);
-    _bss_start = .;
-    bss_start = .;
-    *(.bss .bss* .gnu.linkonce.b*)
-    *(COMMON)
-    . = ALIGN (16);
-    end = .;
-    _end = .;
-    __end = .;
-  } > ram
-  .stab . (NOLOAD) :
-  {
-    [ .stab ]
-  }
-  .stabstr . (NOLOAD) :
-  {
-    [ .stabstr ]
-  }
-}
+INCLUDE linkcmds.base

diff -u rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.70 rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.71
--- rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog:1.70	Fri Dec 11 07:00:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/ChangeLog	Tue May 11 02:40:59 2010
@@ -1,3 +1,10 @@
+2010-05-11	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds: Include basic linker command file and define only
+	board specific values.  Define RAM and PROM limits only if not defined
+	by command line arguments.
+	* Makefile.am, preinstall.am: Reflect changes above.
+
 2009-12-11	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	PR 1483/cpukit

diff -u rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.23 rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.24
--- rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am:1.23	Mon Nov 23 14:09:58 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am	Tue May 11 02:41:00 2010
@@ -48,7 +48,7 @@
 libbspstart_a_SOURCES = ../../sparc/shared/start.S
 project_lib_DATA = start.$(OBJEXT)
 
-dist_project_lib_DATA += startup/linkcmds
+dist_project_lib_DATA += startup/linkcmds ../shared/startup/linkcmds.base
 
 noinst_LIBRARIES += libbsp.a
 libbsp_a_SOURCES =

diff -u rtems/c/src/lib/libbsp/sparc/leon2/preinstall.am:1.12 rtems/c/src/lib/libbsp/sparc/leon2/preinstall.am:1.13
--- rtems/c/src/lib/libbsp/sparc/leon2/preinstall.am:1.12	Thu Oct  2 11:38:17 2008
+++ rtems/c/src/lib/libbsp/sparc/leon2/preinstall.am	Tue May 11 02:41:00 2010
@@ -141,6 +141,10 @@
 	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
 
+$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
+
 $(PROJECT_INCLUDE)/i2cmst.h: ../../sparc/shared/include/i2cmst.h $(PROJECT_INCLUDE)/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/i2cmst.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/i2cmst.h

diff -u rtems/c/src/lib/libbsp/sparc/leon2/startup/linkcmds:1.10 rtems/c/src/lib/libbsp/sparc/leon2/startup/linkcmds:1.11
--- rtems/c/src/lib/libbsp/sparc/leon2/startup/linkcmds:1.10	Wed Mar 25 12:56:02 2009
+++ rtems/c/src/lib/libbsp/sparc/leon2/startup/linkcmds	Tue May 11 02:41:00 2010
@@ -3,75 +3,20 @@
  *  $Id$
  */
 
-OUTPUT_ARCH(sparc)
-__DYNAMIC  =  0;
-
-/*
- * The memory map looks like this:
- * +--------------------+ <- low memory
- * | .text              |
- * |        etext       |
- * |        ctor list   | the ctor and dtor lists are for
- * |        dtor list   | C++ support
- * |        _endtext    |
- * +--------------------+
- * | .data              | initialized data goes here
- * |        _sdata      |
- * |        _edata      |
- * +--------------------+
- * | .bss               |
- * |        __bss_start | start of bss, cleared by crt0
- * |        _end        | start of heap, used by sbrk()
- * +--------------------+
- * |    heap space      |
- * |        _ENDHEAP    |
- * |    stack space     | 
- * |        __stack     | top of stack
- * +--------------------+ <- high memory
- */
-
-
-/*
- * User modifiable values:
- *
- * _CLOCK_SPEED               in Mhz (used to program the counter/timers)
- *
- * _PROM_SIZE                 size of PROM (permissible values are 128K, 256K,
- *                               512K, 1M, 2M, 4M, 8M and 16M)
- * _RAM_SIZE                  size of RAM (permissible values are 256K, 512K,
- *                               1M, 2M, 4M, 8M, 16M, and 32M)
- *
- */
-
 /* Default values, can be overridden */
 
-_PROM_SIZE = 2M;
-_RAM_SIZE = 4M;
-
-_RAM_START = 0x40000000;
-_RAM_END = _RAM_START + _RAM_SIZE;
-
-_PROM_START = 0x00000000;
-_PROM_END = _PROM_START + _PROM_SIZE;
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
 
-/*
- *  Alternate names without leading _.
- */
-
-PROM_START = _PROM_START;
-PROM_SIZE = _PROM_SIZE;
-PROM_END = _PROM_END;
-
-RAM_START = _RAM_START;
-RAM_SIZE = _RAM_SIZE;
-RAM_END = _RAM_END;
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
 
 /*
  *  Base address of the on-CPU peripherals
  */
 
 _LEON_REG = 0x80000000;
-LEON_REG = 0x80000000;
+LEON_REG = _LEON_REG;
 
 /* these are the maximum values */
 
@@ -81,137 +26,4 @@
   ram     : ORIGIN = 0x40000000, LENGTH = 1024M
 }
 
-/*
- * SPARC monitor assumes this is present to provide proper RTEMS awareness.
- */
-EXTERN(rtems_get_version_string);
-
-/*
- * stick everything in ram (of course)
- */
-SECTIONS
-{
-  .text :
-  {
-    CREATE_OBJECT_SYMBOLS
-    text_start = .;
-    _text_start = .;
-    *(.text*)
-    . = ALIGN (16);
-
-    /*
-     * Special FreeBSD sysctl sections.
-     */
-    . = ALIGN (16);
-    __start_set_sysctl_set = .;
-    *(set_sysctl_*);
-    __stop_set_sysctl_set = ABSOLUTE(.);
-    *(set_domain_*);
-    *(set_pseudo_*);
-
-    *(.eh_frame)
-    . = ALIGN (16);
-
-    *(.gnu.linkonce.t*)
-
-    /*
-     * C++ constructors
-     */
-    /* 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 (*crtbegin?.o(.ctors))
-    /* We don't want to include the .ctor section from
-       the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*crtbegin?.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-
-    _rodata_start = . ;
-    *(.rodata*)
-    *(.gnu.linkonce.r*)
-    _erodata = ALIGN( 0x10 ) ;
-
-    etext = ALIGN(0x10);
-    _etext = .;
-    *(.init)
-    *(.fini)
-    *(.lit)
-    *(.shdata)
-    . = ALIGN (16);
-    _endtext = .;
-  } > ram
-  .rela.dyn       :
-    {
-      *(.rela.init)
-      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-      *(.rela.fini)
-      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
-      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
-      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
-      *(.rela.ctors)
-      *(.rela.dtors)
-      *(.rela.got)
-      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
-    } >ram
-  .data :
-  {
-    data_start = .;
-    _data_start = .;
-    _sdata = . ;
-    *(.data*)
-    *(.gnu.linkonce.d*)
-    *(.gcc_except_table*)
-    . = ALIGN(0x10);
-    edata = .;
-    _edata = .;
-  } > ram
-  .dynamic	  : { *(.dynamic) 	} >ram
-  .jcr		  : { *(.jcr) 		} >ram
-  .got		  : { *(.got) 		} >ram
-  .plt   	  : { *(.plt) 		} >ram
-  .hash		  : { *(.hash)		} >ram
-  .dynrel	  : { *(.dynrel)	} >ram
-  .dynsym	  : { *(.dynsym)	} >ram
-  .dynstr	  : { *(.dynstr)	} >ram
-  .hash		  : { *(.hash)		} >ram
-  .shbss :
-  {
-    *(.shbss)
-  } > ram
-  .bss :
-  {
-    __bss_start = ALIGN(0x8);
-    _bss_start = .;
-    bss_start = .;
-    *(.bss .bss* .gnu.linkonce.b*)
-    *(COMMON)
-    . = ALIGN (16);
-    end = .;
-    _end = ALIGN(0x8);
-    __end = ALIGN(0x8);
-  } > ram
-  .stab . (NOLOAD) :
-  {
-    [ .stab ]
-  }
-  .stabstr . (NOLOAD) :
-  {
-    [ .stabstr ]
-  }
-}
+INCLUDE linkcmds.base

diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.93 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.94
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.93	Fri Dec 11 06:59:43 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog	Tue May 11 02:41:21 2010
@@ -1,3 +1,10 @@
+2010-05-11	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* startup/linkcmds: Include basic linker command file and define only
+	board specific values.  Define RAM and PROM limits only if not defined
+	by command line arguments.
+	* Makefile.am, preinstall.am: Reflect changes above.
+
 2009-12-11	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	PR 1483/cpukit

diff -u rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.26 rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.27
--- rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.26	Mon Nov 23 14:09:22 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am	Tue May 11 02:41:22 2010
@@ -31,7 +31,7 @@
 libbspstart_a_SOURCES = ../../sparc/shared/start.S
 project_lib_DATA = start.$(OBJEXT)
 
-dist_project_lib_DATA += startup/linkcmds
+dist_project_lib_DATA += startup/linkcmds ../shared/startup/linkcmds.base
 
 noinst_LIBRARIES += libbsp.a
 libbsp_a_SOURCES =

diff -u rtems/c/src/lib/libbsp/sparc/leon3/preinstall.am:1.13 rtems/c/src/lib/libbsp/sparc/leon3/preinstall.am:1.14
--- rtems/c/src/lib/libbsp/sparc/leon3/preinstall.am:1.13	Thu Oct  2 11:38:18 2008
+++ rtems/c/src/lib/libbsp/sparc/leon3/preinstall.am	Tue May 11 02:41:23 2010
@@ -73,6 +73,10 @@
 	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
 
+$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
+
 $(PROJECT_INCLUDE)/amba.h: include/amba.h $(PROJECT_INCLUDE)/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/amba.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/amba.h

diff -u rtems/c/src/lib/libbsp/sparc/leon3/startup/linkcmds:1.10 rtems/c/src/lib/libbsp/sparc/leon3/startup/linkcmds:1.11
--- rtems/c/src/lib/libbsp/sparc/leon3/startup/linkcmds:1.10	Wed Mar 25 12:56:04 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/startup/linkcmds	Tue May 11 02:41:23 2010
@@ -3,75 +3,20 @@
  *  $Id$
  */
 
-OUTPUT_ARCH(sparc)
-__DYNAMIC  =  0;
-
-/*
- * The memory map looks like this:
- * +--------------------+ <- low memory
- * | .text              |
- * |        etext       |
- * |        ctor list   | the ctor and dtor lists are for
- * |        dtor list   | C++ support
- * |        _endtext    |
- * +--------------------+
- * | .data              | initialized data goes here
- * |        _sdata      |
- * |        _edata      |
- * +--------------------+
- * | .bss               |
- * |        __bss_start | start of bss, cleared by crt0
- * |        _end        | start of heap, used by sbrk()
- * +--------------------+
- * |    heap space      |
- * |        _ENDHEAP    |
- * |    stack space     | 
- * |        __stack     | top of stack
- * +--------------------+ <- high memory
- */
-
-
-/*
- * User modifiable values:
- *
- * _CLOCK_SPEED               in Mhz (used to program the counter/timers)
- *
- * _PROM_SIZE                 size of PROM (permissible values are 128K, 256K,
- *                               512K, 1M, 2M, 4M, 8M and 16M)
- * _RAM_SIZE                  size of RAM (permissible values are 256K, 512K,
- *                               1M, 2M, 4M, 8M, 16M, and 32M)
- *
- */
-
 /* Default values, can be overridden */
 
-_PROM_SIZE = 2M;
-_RAM_SIZE = 4M;
-
-_RAM_START = 0x40000000;
-_RAM_END = _RAM_START + _RAM_SIZE;
-
-_PROM_START = 0x00000000;
-_PROM_END = _PROM_START + _PROM_SIZE;
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
 
-/*
- *  Alternate names without leading _.
- */
-
-PROM_START = _PROM_START;
-PROM_SIZE = _PROM_SIZE;
-PROM_END = _PROM_END;
-
-RAM_START = _RAM_START;
-RAM_SIZE = _RAM_SIZE;
-RAM_END = _RAM_END;
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
 
 /*
  *  Base address of the on-CPU peripherals
  */
 
 _LEON_REG = 0x80000000;
-LEON_REG = 0x80000000;
+LEON_REG = _LEON_REG;
 
 /* these are the maximum values */
 
@@ -81,137 +26,4 @@
   ram     : ORIGIN = 0x40000000, LENGTH = 1024M
 }
 
-/*
- * SPARC monitor assumes this is present to provide proper RTEMS awareness.
- */
-EXTERN(rtems_get_version_string);
-
-/*
- * stick everything in ram (of course)
- */
-SECTIONS
-{
-  .text :
-  {
-    CREATE_OBJECT_SYMBOLS
-    text_start = .;
-    _text_start = .;
-    *(.text*)
-    . = ALIGN (16);
-
-    /*
-     * Special FreeBSD sysctl sections.
-     */
-    . = ALIGN (16);
-    __start_set_sysctl_set = .;
-    *(set_sysctl_*);
-    __stop_set_sysctl_set = ABSOLUTE(.);
-    *(set_domain_*);
-    *(set_pseudo_*);
-
-    *(.eh_frame)
-    . = ALIGN (16);
-
-    *(.gnu.linkonce.t*)
-
-    /*
-     * C++ constructors
-     */
-    /* 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 (*crtbegin?.o(.ctors))
-    /* We don't want to include the .ctor section from
-       the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*crtbegin?.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-
-    _rodata_start = . ;
-    *(.rodata*)
-    *(.gnu.linkonce.r*)
-    _erodata = ALIGN( 0x10 ) ;
-
-    etext = ALIGN(0x10);
-    _etext = .;
-    *(.init)
-    *(.fini)
-    *(.lit)
-    *(.shdata)
-    . = ALIGN (16);
-    _endtext = .;
-  } > ram
-  .rela.dyn       :
-    {
-      *(.rela.init)
-      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-      *(.rela.fini)
-      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
-      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
-      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
-      *(.rela.ctors)
-      *(.rela.dtors)
-      *(.rela.got)
-      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
-    } >ram
-  .data :
-  {
-    data_start = .;
-    _data_start = .;
-    _sdata = . ;
-    *(.data*)
-    *(.gnu.linkonce.d*)
-    *(.gcc_except_table*)
-    . = ALIGN(0x10);
-    edata = .;
-    _edata = .;
-  } > ram
-  .dynamic	  : { *(.dynamic) 	} >ram
-  .jcr		  : { *(.jcr) 		} >ram
-  .got		  : { *(.got) 		} >ram
-  .plt   	  : { *(.plt) 		} >ram
-  .hash		  : { *(.hash)		} >ram
-  .dynrel	  : { *(.dynrel)	} >ram
-  .dynsym	  : { *(.dynsym)	} >ram
-  .dynstr	  : { *(.dynstr)	} >ram
-  .hash		  : { *(.hash)		} >ram
-  .shbss :
-  {
-    *(.shbss)
-  } > ram
-  .bss :
-  {
-    __bss_start = ALIGN(0x8);
-    _bss_start = .;
-    bss_start = .;
-    *(.bss .bss* .gnu.linkonce.b*)
-    *(COMMON)
-    . = ALIGN (16);
-    end = .;
-    _end = ALIGN(0x8);
-    __end = ALIGN(0x8);
-  } > ram
-  .stab . (NOLOAD) :
-  {
-    [ .stab ]
-  }
-  .stabstr . (NOLOAD) :
-  {
-    [ .stabstr ]
-  }
-}
+INCLUDE linkcmds.base



--

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/20100511/006f7a98/attachment.html>


More information about the vc mailing list