summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2008-05-22 23:33:11 +0000
committerTill Straumann <strauman@slac.stanford.edu>2008-05-22 23:33:11 +0000
commita510a776a0795358e4415d59e6fd0b164e0e5d38 (patch)
treef0d3dcf89690aa325b5c31b4437c5be9f20f6c01 /c
parent2008-05-22 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-a510a776a0795358e4415d59e6fd0b164e0e5d38.tar.bz2
2008-05-22 Till Straumann <strauman@slac.stanford.edu>
* shared/startup/linkcmds, shared/startup/zerobss.c: introduced '__bss_end'; assuming that __rtems_end coincides with the end of .bss for the purpose of zeroing .bss is very dangerous.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog7
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/zerobss.c4
3 files changed, 10 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index 34a3055f9c..8b4c853dae 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-22 Till Straumann <strauman@slac.stanford.edu>
+
+ * shared/startup/linkcmds, shared/startup/zerobss.c:
+ introduced '__bss_end'; assuming that __rtems_end
+ coincides with the end of .bss for the purpose of
+ zeroing .bss is very dangerous.
+
2008-05-22 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/console/console.c: Fix typo.
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
index 8df3c12b99..2f0335afe8 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
+++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds
@@ -221,6 +221,7 @@ _SDA_BASE_ = __SDATA_START__ + 0x8000;
*(.bss .bss* .gnu.linkonce.b*)
*(COMMON)
. = ALIGN(16);
+ PROVIDE (__bss_end = .);
} > CODE
. = ALIGN(16);
_end = . ;
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/zerobss.c b/c/src/lib/libbsp/powerpc/shared/startup/zerobss.c
index d1c62384f2..a8303f1a64 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/zerobss.c
+++ b/c/src/lib/libbsp/powerpc/shared/startup/zerobss.c
@@ -21,8 +21,8 @@ void zero_bss()
/* prevent these from being accessed in the short data areas */
extern unsigned long __bss_start[], __SBSS_START__[], __SBSS_END__[];
extern unsigned long __SBSS2_START__[], __SBSS2_END__[];
- extern unsigned long __rtems_end[];
+ extern unsigned long __bss_end[];
memset(__SBSS_START__, 0, ((unsigned) __SBSS_END__) - ((unsigned)__SBSS_START__));
memset(__SBSS2_START__, 0, ((unsigned) __SBSS2_END__) - ((unsigned)__SBSS2_START__));
- memset(__bss_start, 0, ((unsigned) __rtems_end) - ((unsigned)__bss_start));
+ memset(__bss_start, 0, ((unsigned) __bss_end) - ((unsigned)__bss_start));
}