diff -u sdcc/device/lib/Makefile.orig sdcc/device/lib/Makefile
--- sdcc/device/lib/Makefile.orig	2007-03-06 09:55:01.000000000 -0600
+++ sdcc/device/lib/Makefile	2007-03-06 09:58:32.000000000 -0600
@@ -242,7 +242,7 @@
 model-mcs51-stack-auto:
 	if [ "`grep mcs51 $(top_builddir)ports.build`" = mcs51 ]; then \
 	  for model in $(MODELS); do \
-	    $(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
+	    $(MAKE) MODELFLAGS="--model-$$model --stack-auto --int-long-reent --float-reent" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
 	  done \
 	fi
 
diff -u sdcc/device/include/stdarg.h.orig sdcc/device/include/stdarg.h 
--- sdcc/device/include/stdarg.h.orig	2007-03-11 13:21:15.000000000 -0600
+++ sdcc/device/include/stdarg.h	2007-03-11 13:26:59.000000000 -0600
@@ -25,9 +25,9 @@
 
 #else
 
-typedef	unsigned char __data * va_list ;
-#define va_arg(marker,type) *((type __data * )(marker -= sizeof(type)))
-#define	va_start(marker,first) { marker = (va_list) ((char __data * )&first); }
+typedef	unsigned char * va_list ;
+#define va_arg(marker,type) *((type * )(marker -= sizeof(type)))
+#define	va_start(marker,first) { marker = (va_list) ((char * )&first); }
 
 #endif
 
