Advertisement
Guest User

libmaple-gcc-arm-embedded.patch

a guest
Jul 18th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. diff --git a/support/ld/common.inc b/support/ld/common.inc
  2. index f749b19..263b474 100644
  3. --- a/support/ld/common.inc
  4. +++ b/support/ld/common.inc
  5. @@ -5,12 +5,12 @@
  6.   */
  7.  
  8.  OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
  9. -ENTRY(_start)
  10. +ENTRY(__start__)
  11.  
  12.  /*
  13.   * Link against libgcc, libc, and libm
  14.   */
  15. -GROUP(libgcc.a libc.a libm.a)
  16. +GROUP(libgcc.a libc.a libm.a libnosys.a)
  17.  
  18.  /*
  19.   * These force the linker to search for vector table symbols.
  20. @@ -35,8 +35,8 @@ EXTERN(__msp_init)
  21.  PROVIDE(__msp_init = ORIGIN(ram) + LENGTH(ram));
  22.  
  23.  /* Reset vector and chip reset entry point */
  24. -EXTERN(_start)
  25. -PROVIDE(__exc_reset = _start);
  26. +EXTERN(__start__)
  27. +PROVIDE(__exc_reset = __start__);
  28.  
  29.  /* Heap boundaries, for libmaple */
  30.  EXTERN(_lm_heap_start);
  31. @@ -166,12 +166,12 @@ SECTIONS
  32.      .bss :
  33.        {
  34.          . = ALIGN(8);
  35. -        _bss = .;
  36. +        __bss_start__ = .;
  37.          *(.bss .bss.* .gnu.linkonce.b.*)
  38.          *(COMMON)
  39.          . = ALIGN (8);
  40. -        _ebss = .;
  41. -        _end = _ebss;
  42. +        __bss_end__ = .;
  43. +        _end = __bss_end__;
  44.        } > REGION_BSS
  45.  
  46.      /*
  47. diff --git a/wirish/start.S b/wirish/start.S
  48. index 2488895..8b181aa 100644
  49. --- a/wirish/start.S
  50. +++ b/wirish/start.S
  51. @@ -44,9 +44,9 @@
  52.          .code 16
  53.          .thumb_func
  54.  
  55. -        .globl _start
  56. -        .type _start, %function
  57. -_start:
  58. +        .globl __start__
  59. +        .type __start__, %function
  60. +__start__:
  61.          .fnstart
  62.          ldr r1,=__msp_init
  63.          mov sp,r1
  64. diff --git a/wirish/start_c.c b/wirish/start_c.c
  65. index 301565c..7a773a7 100644
  66. --- a/wirish/start_c.c
  67. +++ b/wirish/start_c.c
  68. @@ -51,7 +51,7 @@ extern int main(int, char**, char**);
  69.  extern void exit(int) __attribute__((noreturn, weak));
  70.  
  71.  extern char _data, _edata;
  72. -extern char _bss, _ebss;
  73. +extern char __bss_start__, __bss_end__;
  74.  
  75.  struct rom_img_cfg {
  76.      int *img_start;
  77. @@ -74,8 +74,8 @@ void __attribute__((noreturn)) start_c(void) {
  78.      }
  79.  
  80.      /* Zero .bss. */
  81. -    dst = (int*)&_bss;
  82. -    while (dst < (int*)&_ebss) {
  83. +    dst = (int*)&__bss_start__;
  84. +    while (dst < (int*)&__bss_end__) {
  85.          *dst++ = 0;
  86.      }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement