_sbrk: undefined reference to `end' problem

 

gcc 使用newlib-nano时编译错误

/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/librdimon_nano.a(rdimon-syscalls.o): In function `_sbrk':
/build/newlib-jo3xW1/newlib-2.4.0.20160527/build_nano/arm-none-eabi/thumb/v7-m/libgloss/arm/../../../../../../libgloss/arm/syscalls.c:601: undefined reference to `end'

 

需要在ld链接脚本文件中  PROVIDE(end = .);

    .bss :
    {
        . = ALIGN(4);
        __bss_start__ = .;
        *(.bss*)
        *(COMMON)
        . = ALIGN(4);
        __bss_end__ = .;
    } > RAM
    
    .heap (COPY):
    {
        __end__ = .;
        PROVIDE(end = .);
        *(.heap*)
        __HeapLimit = .;
    } > RAM

 

https://github.com/iNvEr7/qemu-learn/blob/master/semihosting-newlib/main.ld

 

posted @ 2021-03-24 13:15  sinferwu  阅读(1111)  评论(0编辑  收藏  举报