Merge pull request #2498 from toyowata/master

Fix multiple definition errors in GCC_CR build
pull/2557/head
Sam Grove 2016-08-26 09:22:49 -05:00 committed by GitHub
commit 23ffafa682
9 changed files with 6 additions and 53 deletions

View File

@ -752,7 +752,7 @@ extern "C" void __iar_argc_argv() {
// Provide implementation of _sbrk (low-level dynamic memory allocation
// routine) for GCC_ARM which compares new heap pointer with MSP instead of
// SP. This make it compatible with RTX RTOS thread stacks.
#if defined(TOOLCHAIN_GCC_ARM)
#if defined(TOOLCHAIN_GCC_ARM) || defined(TOOLCHAIN_GCC_CR)
// Linker defined symbol used by _sbrk to indicate where heap should start.
extern "C" int __end__;
@ -803,7 +803,7 @@ extern "C" caddr_t _sbrk(int incr) {
#endif
#endif
#if defined TOOLCHAIN_GCC_ARM
#if defined(TOOLCHAIN_GCC_ARM) || defined(TOOLCHAIN_GCC_CR)
extern "C" void _exit(int return_code) {
#else
namespace std {
@ -827,7 +827,7 @@ extern "C" void exit(int return_code) {
while (1);
}
#if !defined(TOOLCHAIN_GCC_ARM)
#if !defined(TOOLCHAIN_GCC_ARM) && !defined(TOOLCHAIN_GCC_CR)
} //namespace std
#endif

View File

@ -191,11 +191,3 @@ AFTER_VECTORS void IntDefaultHandler (void) {}
int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {return 0;}
}
#include <stdlib.h>
void *operator new(size_t size) {return malloc(size);}
void *operator new[](size_t size){return malloc(size);}
void operator delete(void *p) {free(p);}
void operator delete[](void *p) {free(p);}

View File

@ -1,7 +1,7 @@
/* mbed - LPC11U35 linker script
* Based linker script generated by Code Red Technologies Red Suite 4.1
*/
GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
MEMORY
{

View File

@ -152,14 +152,6 @@ AFTER_VECTORS void PendSV_Handler (void) {while(1){}}
AFTER_VECTORS void SysTick_Handler (void) {while(1){}}
AFTER_VECTORS void IntDefaultHandler(void) {while(1){}}
#include <stdlib.h>
void *operator new (size_t size) {return malloc(size);}
void *operator new[](size_t size) {return malloc(size);}
void operator delete (void *p) {free(p);}
void operator delete[](void *p) {free(p);}
int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {
return 0;
}

View File

@ -1,7 +1,8 @@
/* mbed - LPC1114 linker script
* Based linker script generated by Code Red Technologies Red Suite 4.1
*/
GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
MEMORY
{
/* Define each memory region */

View File

@ -152,14 +152,6 @@ AFTER_VECTORS void PendSV_Handler (void) {while(1){}}
AFTER_VECTORS void SysTick_Handler (void) {while(1){}}
AFTER_VECTORS void IntDefaultHandler(void) {while(1){}}
#include <stdlib.h>
void *operator new (size_t size) {return malloc(size);}
void *operator new[](size_t size) {return malloc(size);}
void operator delete (void *p) {free(p);}
void operator delete[](void *p) {free(p);}
int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {
return 0;
}

View File

@ -209,11 +209,3 @@ AFTER_VECTORS void IntDefaultHandler (void) {}
int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {return 0;}
}
#include <stdlib.h>
void *operator new(size_t size) {return malloc(size);}
void *operator new[](size_t size){return malloc(size);}
void operator delete(void *p) {free(p);}
void operator delete[](void *p) {free(p);}

View File

@ -173,11 +173,3 @@ AFTER_VECTORS void IntDefaultHandler (void) {}
int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {return 0;}
}
#include <stdlib.h>
void *operator new(size_t size) {return malloc(size);}
void *operator new[](size_t size){return malloc(size);}
void operator delete(void *p) {free(p);}
void operator delete[](void *p) {free(p);}

View File

@ -428,11 +428,3 @@ void IntDefaultHandler(void)
{
}
}
#include <stdlib.h>
void *operator new(size_t size) {return malloc(size);}
void *operator new[](size_t size){return malloc(size);}
void operator delete(void *p) {free(p);}
void operator delete[](void *p) {free(p);}