Эх сурвалжийг харах

Fix build problems caused by "_end" -> "__bss_end__" rename

Commit 44c6e65 "rename _end to __bss_end__ broke building of a large
number of systems (at least all PowerPC?):

libstubs.o: In function `app_startup':
examples/standalone/stubs.c:197: undefined reference to `__bss_end__'

The rename should not be done for the files in the
examples/standalone/ directory, as these are not using the code from
start.S, but do their own BSS clearing, and either use their own
linker scripts or the ones provided by the compilers.

Signed-off-by: Po-Yu Chuang <ratbert@faraday-tech.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
Wolfgang Denk 14 жил өмнө
parent
commit
7ec830d580

+ 1 - 1
examples/standalone/mips.lds

@@ -55,5 +55,5 @@ SECTIONS
 	.sbss (NOLOAD) : { *(.sbss) }
 	.sbss (NOLOAD) : { *(.sbss) }
 	.bss (NOLOAD)  : { *(.bss) . = ALIGN(4); }
 	.bss (NOLOAD)  : { *(.bss) . = ALIGN(4); }
 
 
-	__bss_end__ = .;
+	_end = .;
 }
 }

+ 1 - 1
examples/standalone/sparc.lds

@@ -57,5 +57,5 @@ SECTIONS
 	}
 	}
 	. = ALIGN(4);
 	. = ALIGN(4);
 	__bss_end = .;
 	__bss_end = .;
-	__bss_end__ = .;
+	_end = .;
 }
 }

+ 2 - 2
examples/standalone/stubs.c

@@ -187,14 +187,14 @@ void __attribute__((unused)) dummy(void)
 #include <_exports.h>
 #include <_exports.h>
 }
 }
 
 
-extern unsigned long __bss_start, __bss_end__;
+extern unsigned long __bss_start, _end;
 
 
 void app_startup(char * const *argv)
 void app_startup(char * const *argv)
 {
 {
 	unsigned char * cp = (unsigned char *) &__bss_start;
 	unsigned char * cp = (unsigned char *) &__bss_start;
 
 
 	/* Zero out BSS */
 	/* Zero out BSS */
-	while (cp < (unsigned char *)&__bss_end__) {
+	while (cp < (unsigned char *)&_end) {
 		*cp++ = 0;
 		*cp++ = 0;
 	}
 	}