libc: use the SDCC setjmp not one we inherited from somewhere
authorAlan Cox <alan@linux.intel.com>
Sun, 17 May 2015 15:23:52 +0000 (16:23 +0100)
committerAlan Cox <alan@linux.intel.com>
Sun, 17 May 2015 15:23:52 +0000 (16:23 +0100)
The SDCC one saves the bits SDCC needs and so actually works with SDCC. It's
also way smaller, cleaner and only uses legal instructions

Library/include/setjmp.h
Library/libs/Makefile
Library/tools/libclean

index 479e471..d240a75 100644 (file)
@@ -7,7 +7,9 @@
 /* FIXME: need to add alt registers */
 typedef int jmp_buf[7];
 
-int setjmp __P((jmp_buf env));
+int __setjmp __P((jmp_buf env));
 void longjmp __P((jmp_buf env, int rv));
 
+#define setjmp(x)      __setjmp(x)
+
 #endif
index 92a469f..deb8376 100644 (file)
@@ -32,7 +32,7 @@ SRC_C += localtim.c localtim_r.c lseek.c lsearch.c lstat.c ltoa.c ltostr.c
 SRC_C += malloc.c mkfifo.c mkstemps.c nanosleep.c opendir.c pause.c perror.c
 SRC_C += popen.c printf.c putenv.c putgetch.c putpwent.c pwent.c qsort.c
 SRC_C += raise.c rand.c readdir.c readlink.c realloc.c regerror.c
-SRC_C += regsub.c remove.c rewind.c rindex.c setbuffer.c setenv.c setjmp.c
+SRC_C += regsub.c remove.c rewind.c rindex.c setbuffer.c setenv.c
 SRC_C += setlocale.c setvbuf.c settimeofday.c sleep.c sprintf.c 
 SRC_C += stat.c stdio0.c stime.c
 SRC_C += strcasecmp.c strcasestr.c strdup.c stricmp.c strlcpy.c strncasecmp.c
index 7a56b4a..1f7d793 100755 (executable)
@@ -20,7 +20,7 @@ cp ${SDCC_LIB}/z80/z80.lib tmp.lib
 #      Need to review setjmp and maybe a couple of others
 #
 #
-sdar d tmp.lib putchar.rel heap.rel fstubs.rel setjmp.rel errno.rel
+sdar d tmp.lib putchar.rel heap.rel fstubs.rel errno.rel
 sdar d tmp.lib rand.rel _calloc.rel _malloc.rel _realloc.rel _free.rel
 sdar d tmp.lib printf_large.rel puts.rel gets.rel assert.rel time.rel
 sdar d tmp.lib tolower.rel toupper.rel _ltoa.rel _itoa.rel abs.rel