Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/support/ld/common.inc b/support/ld/common.inc
- index f749b19..263b474 100644
- --- a/support/ld/common.inc
- +++ b/support/ld/common.inc
- @@ -5,12 +5,12 @@
- */
- OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
- -ENTRY(_start)
- +ENTRY(__start__)
- /*
- * Link against libgcc, libc, and libm
- */
- -GROUP(libgcc.a libc.a libm.a)
- +GROUP(libgcc.a libc.a libm.a libnosys.a)
- /*
- * These force the linker to search for vector table symbols.
- @@ -35,8 +35,8 @@ EXTERN(__msp_init)
- PROVIDE(__msp_init = ORIGIN(ram) + LENGTH(ram));
- /* Reset vector and chip reset entry point */
- -EXTERN(_start)
- -PROVIDE(__exc_reset = _start);
- +EXTERN(__start__)
- +PROVIDE(__exc_reset = __start__);
- /* Heap boundaries, for libmaple */
- EXTERN(_lm_heap_start);
- @@ -166,12 +166,12 @@ SECTIONS
- .bss :
- {
- . = ALIGN(8);
- - _bss = .;
- + __bss_start__ = .;
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN (8);
- - _ebss = .;
- - _end = _ebss;
- + __bss_end__ = .;
- + _end = __bss_end__;
- } > REGION_BSS
- /*
- diff --git a/wirish/start.S b/wirish/start.S
- index 2488895..8b181aa 100644
- --- a/wirish/start.S
- +++ b/wirish/start.S
- @@ -44,9 +44,9 @@
- .code 16
- .thumb_func
- - .globl _start
- - .type _start, %function
- -_start:
- + .globl __start__
- + .type __start__, %function
- +__start__:
- .fnstart
- ldr r1,=__msp_init
- mov sp,r1
- diff --git a/wirish/start_c.c b/wirish/start_c.c
- index 301565c..7a773a7 100644
- --- a/wirish/start_c.c
- +++ b/wirish/start_c.c
- @@ -51,7 +51,7 @@ extern int main(int, char**, char**);
- extern void exit(int) __attribute__((noreturn, weak));
- extern char _data, _edata;
- -extern char _bss, _ebss;
- +extern char __bss_start__, __bss_end__;
- struct rom_img_cfg {
- int *img_start;
- @@ -74,8 +74,8 @@ void __attribute__((noreturn)) start_c(void) {
- }
- /* Zero .bss. */
- - dst = (int*)&_bss;
- - while (dst < (int*)&_ebss) {
- + dst = (int*)&__bss_start__;
- + while (dst < (int*)&__bss_end__) {
- *dst++ = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement