diff options
Diffstat (limited to 'newlib/libc/sys/rtems/crt0.c')
-rw-r--r-- | newlib/libc/sys/rtems/crt0.c | 95 |
1 files changed, 10 insertions, 85 deletions
diff --git a/newlib/libc/sys/rtems/crt0.c b/newlib/libc/sys/rtems/crt0.c index 47332b752..e77b52eaf 100644 --- a/newlib/libc/sys/rtems/crt0.c +++ b/newlib/libc/sys/rtems/crt0.c @@ -1,3 +1,4 @@ +void rtems_provides_crt0( void ) {} /* * RTEMS Fake crt0 * @@ -10,10 +11,6 @@ * but this is enough to satisfy the autoconf macro AC_PROG_CC. */ -#include <reent.h> - -void rtems_provides_crt0( void ) {} /* dummy symbol so file always has one */ - /* RTEMS provides some of its own routines including a Malloc family */ void *malloc() { return 0; } @@ -22,68 +19,16 @@ void free() { ; } void abort() { ; } int raise() { return -1; } -#if defined(__GNUC__) -/* - * stubs for libstdc++ rtems-threads support functions from gcc/gthr-rtems.h - */ -int rtems_gxx_once() { return -1; } -int rtems_gxx_key_create() { return -1; } -int rtems_gxx_key_delete() { return -1; } -void *rtems_gxx_getspecific() { return 0; } -int rtems_gxx_setspecific() { return -1; } - -void rtems_gxx_mutex_init() { } -int rtems_gxx_mutex_lock() { return -1; } -int rtems_gxx_mutex_trylock() { return -1; } -int rtems_gxx_mutex_unlock() { return -1; } - -void rtems_gxx_recursive_mutex_init() { } -int rtems_gxx_recursive_mutex_lock() { return -1; } -int rtems_gxx_recursive_mutex_trylock() { return -1; } -int rtems_gxx_recursive_mutex_unlock() { return -1; } -#endif - -/* stubs for functions from reent.h */ -int _close_r (struct _reent *r, int fd) { return -1; } -#if NOT_USED_BY_RTEMS -int _execve_r (struct _reent *r, char *, char **, char **) { return -1; } -#endif -int _fcntl_r ( struct _reent *ptr, int fd, int cmd, int arg ) { return -1;} -#if NOT_USED_BY_RTEMS -int _fork_r (struct _reent *r) { return -1; } -#endif -int _fstat_r (struct _reent *r, int fd, struct stat *buf) { return -1; } -int _getpid_r (struct _reent *r) { return -1; } -int _kill_r ( struct _reent *r, int pid, int sig ) { return -1; } -int _link_r ( struct _reent *ptr, const char *existing, const char *new) { return -1; } -_off_t _lseek_r ( struct _reent *ptr, int fd, _off_t offset, int whence ) { return -1; } -int _open_r (struct _reent *r, const char *buf, int flags, int mode) { return -1; } -_ssize_t _read_r (struct _reent *r, int fd, void *buf, size_t nbytes) { return -1; } -#if NOT_USED_BY_RTEMS -void *_sbrk_r (struct _reent *r, ptrdiff_t) { return -1; } -#endif -int _stat_r (struct _reent *r, const char *path, struct stat *buf) { return -1; } -_CLOCK_T_ _times_r (struct _reent *r, struct tms *ptms) { return -1; } -int _unlink_r (struct _reent *r, const char *path) { return -1; } -#if NOT_USED_BY_RTEMS -int _wait_r (struct _reent *r, int *) { return -1; } +/* gcc 2.8.1 implicitly can generate references to these for at + * least sparc-elf */ +#if (__GNUC__ == 2) && (__GNUC_MINOR__ == 8) +strcmp() {} +strcpy() {} +strlen() {} +memcmp() {} +memcpy() {} +memset() {} #endif -_ssize_t _write_r (struct _reent *r, int fd, const void *buf, size_t nbytes) { return -1; } - -int isatty( int fd ) { return -1; } - -_realloc_r() {} -_calloc_r() {} -_malloc_r() {} -_free_r() {} - -/* gcc can implicitly generate references to these */ -/* strcmp() {} */ -/* strcpy() {} */ -/* strlen() {} */ -/* memcmp() {} */ -/* memcpy() {} */ -/* memset() {} */ /* The PowerPC expects certain symbols to be defined in the linker script. */ @@ -95,14 +40,6 @@ _free_r() {} int __FIXUP_START__; int __FIXUP_END__; int __EXCEPT_START__; int __EXCEPT_END__; int __init; int __fini; - int __CTOR_LIST__; int __CTOR_END__; - int __DTOR_LIST__; int __DTOR_END__; -#endif - -/* The SH expects certain symbols to be defined in the linker script. */ - -#if defined(__sh__) -int __EH_FRAME_BEGIN__; #endif /* The hppa expects this to be defined in the real crt0.s. @@ -117,10 +54,6 @@ int __EH_FRAME_BEGIN__; asm ( "\$global\$:"); */ - asm (".text"); - asm (".global"); - asm (".EXPORT $$dyncall,ENTRY"); - asm ("$$dyncall:"); int atexit(void (*function)(void)) { return 0; } #endif @@ -139,11 +72,3 @@ asm (".equ V_FILL, 65" ); asm (".equ V_BSD_OS, 66" ); asm (".equ V_EPI_OS, 69" ); #endif - -#if defined(__AVR__) -/* - * Initial stack pointer address "__stack" - * hard coded into GCC instead of providing it through ldscripts - */ -const char* __stack ; -#endif |