Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e435d02
commit ee66b4f
Showing
6 changed files
with
81 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,28 @@ | ||
#include <new.h> | ||
#include "new.h" | ||
|
||
void * operator new(size_t size) | ||
{ | ||
return malloc(size); | ||
} | ||
|
||
void * operator new[](size_t size) | ||
{ | ||
return malloc(size); | ||
} | ||
|
||
void operator delete(void * ptr) | ||
{ | ||
free(ptr); | ||
} | ||
} | ||
|
||
void operator delete[](void * ptr) | ||
{ | ||
free(ptr); | ||
} | ||
|
||
int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; | ||
void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; | ||
void __cxa_guard_abort (__guard *) {}; | ||
//int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; | ||
//void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; | ||
//void __cxa_guard_abort (__guard *) {}; | ||
|
||
void __cxa_pure_virtual(void) {}; | ||
//void __cxa_pure_virtual(void) {}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#include "new.h" | ||
|
||
void * operator new(size_t size) | ||
{ | ||
return malloc(size); | ||
} | ||
|
||
void * operator new[](size_t size) | ||
{ | ||
return malloc(size); | ||
} | ||
|
||
void operator delete(void * ptr) | ||
{ | ||
free(ptr); | ||
} | ||
|
||
void operator delete[](void * ptr) | ||
{ | ||
free(ptr); | ||
} | ||
|
||
//int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; | ||
//void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; | ||
//void __cxa_guard_abort (__guard *) {}; | ||
|
||
//void __cxa_pure_virtual(void) {}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/* Header to define new/delete operators as they aren't provided by avr-gcc by default | ||
Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 | ||
*/ | ||
|
||
#ifndef NEW_H | ||
#define NEW_H | ||
|
||
#ifdef __cplusplus | ||
|
||
#include <stdlib.h> | ||
|
||
void * operator new(size_t size); | ||
void * operator new[](size_t size); | ||
void operator delete(void * ptr); | ||
void operator delete[](void * ptr); | ||
|
||
__extension__ typedef int __guard __attribute__((mode (__DI__))); | ||
|
||
extern "C" int __cxa_guard_acquire(__guard *); | ||
extern "C" void __cxa_guard_release (__guard *); | ||
extern "C" void __cxa_guard_abort (__guard *); | ||
extern "C" void __cxa_pure_virtual(void); | ||
|
||
#endif // __cplusplus | ||
|
||
#endif |