diff options
| -rw-r--r-- | Makefile | 21 | ||||
| -rw-r--r-- | Rules.mak | 17 | ||||
| -rw-r--r-- | include/stdlib.h | 2 | ||||
| -rw-r--r-- | include/unistd.h | 6 | ||||
| -rw-r--r-- | libc/stdlib/malloc-simple/alloc.c | 7 | ||||
| -rw-r--r-- | libc/stdlib/malloc/malloc.c | 19 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/syscalls.c | 6 | 
7 files changed, 38 insertions, 40 deletions
@@ -150,23 +150,36 @@ uClibc_config.h: Config  	@if [ "$(HAS_MMU)" = "true" ] ; then \  	    echo "#define __UCLIBC_HAS_MMU__ 1" >> uClibc_config.h ; \  	else \ -	    echo "#define __UCLIBC_HAS_MMU__ 0" >> uClibc_config.h ; \ +	    echo "#undef __UCLIBC_HAS_MMU__" >> uClibc_config.h ; \  	fi  	@if [ "$(HAS_FLOATS)" = "true" ] ; then \  	    echo "#define __UCLIBC_HAS_FLOATS__ 1" >> uClibc_config.h ; \  	else \ -	    echo "#define __UCLIBC_HAS_FLOATS__ 0" >> uClibc_config.h ; \ +	    echo "#undef __UCLIBC_HAS_FLOATS__" >> uClibc_config.h ; \  	fi  	@if [ "$(HAS_LONG_LONG)" = "true" ] ; then \  	    echo "#define __UCLIBC_HAS_LONG_LONG__ 1" >> uClibc_config.h ; \  	else \ -	    echo "#define __UCLIBC_HAS_LONG_LONG__ 0" >> uClibc_config.h ; \ +	    echo "#undef __UCLIBC_HAS_LONG_LONG__" >> uClibc_config.h ; \  	fi  	@if [ "$(HAS_LOCALE)" = "true" ] ; then \  	    echo "#define __UCLIBC_HAS_LOCALE__ 1" >> uClibc_config.h ; \  	    echo "#define __UCLIBC_LOCALE_DIR \""$(LOCALE_DIR)"\"" >> uClibc_config.h ; \  	else \ -	    echo "#define __UCLIBC_HAS_LOCALE__ 0" >> uClibc_config.h ; \ +	    echo "#undef __UCLIBC_HAS_LOCALE__" >> uClibc_config.h ; \ +	fi +	@if [ "$(TARGET_ARCH)" = "m68k" ] ; then \ +	    echo "#define __VFORK_MACRO__ 1" >> uClibc_config.h ; \ +	    echo "#define const" >> uClibc_config.h ; \ +	    echo "#define __const" >> uClibc_config.h ; \ +	    echo "#define __extension" >> uClibc_config.h ; \ +	else \ +	    echo "#undef __VFORK_MACRO__" >> uClibc_config.h ; \ +	fi +	@if [ "$(TARGET_ARCH)" = "sh" ] ; then \ +	    echo "#define NO_UNDERSCORES 1" >> uClibc_config.h ; \ +	else \ +	    echo "#undef NO_UNDERSCORES" >> uClibc_config.h ; \  	fi  .PHONY: dummy @@ -51,23 +51,6 @@ ifndef $(PREFIX)      PREFIX = `pwd`/_install  endif -ifneq ($(strip $(HAS_MMU)),true) -    CFLAGS += -D__HAS_NO_MMU__ -endif - -ifneq ($(strip $(HAS_FLOATS)),true) -    CFLAGS += -D__HAS_NO_FLOATS__ -endif - -ifeq ($(strip $(TARGET_ARCH)),m68k) -    CFLAGS += -D__VFORK_MACRO__ -Dconst= -D__const= -D__extension__=  -endif - - -ifeq ($(strip $(TARGET_ARCH)),sh) -    CFLAGS +=  -DNO_UNDERSCORES -endif -  NATIVE_ARCH = $(shell uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/' -e 's/arm.*/arm/g' -e 's/m68k.*/m68k/')  # It turns out the currently, function-sections causes ldelf2flt to segfault. diff --git a/include/stdlib.h b/include/stdlib.h index f802d337e..6102eea5a 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -48,7 +48,7 @@ extern long strtol __P ((const char * nptr, char ** endptr, int base));  extern unsigned long strtoul __P ((const char * nptr, char ** endptr, int base));  extern long long strtoll __P ((const char * nptr, char ** endptr, int base));  extern unsigned long long strtoull __P ((const char * nptr, char ** endptr, int base)); -#ifndef __HAS_NO_FLOATS__ +#ifdef __UCLIBC_HAS_FLOATS__  /*TODO: extern char * gcvt __P ((double number, size_t ndigit, char * buf)); */  extern double strtod __P ((const char * nptr, char ** endptr));  #endif diff --git a/include/unistd.h b/include/unistd.h index 916d972a0..16deb1ac3 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -646,10 +646,10 @@ extern int setegid __P ((__gid_t __gid));  /* Clone the calling process, creating an exact copy.     Return -1 for errors, 0 to the new process,     and the process ID of the new process to the old process.  */ -#ifdef __HAS_NO_MMU__ -#define fork fork_not_available_on_mmuless_systems -#else +#ifdef __UCLIBC_HAS_MMU__  extern __pid_t fork __P ((void)); +#else +#define fork fork_not_available_on_mmuless_systems  #endif  #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c index ed1c381a5..02231fbed 100644 --- a/libc/stdlib/malloc-simple/alloc.c +++ b/libc/stdlib/malloc-simple/alloc.c @@ -1,3 +1,4 @@ +#include <features.h>  #include <unistd.h>  #include <stdio.h>  #include <stdlib.h> @@ -67,10 +68,10 @@ void *calloc(size_t num, size_t size)  void *malloc(size_t len)  {  	void *result = mmap((void *) 0, len, PROT_READ | PROT_WRITE, -#ifdef __HAS_NO_MMU__ -						MAP_SHARED | MAP_ANONYMOUS, 0, 0 -#else +#ifdef __UCLIBC_HAS_MMU__  						MAP_PRIVATE | MAP_ANONYMOUS, 0, 0 +#else +						MAP_SHARED | MAP_ANONYMOUS, 0, 0  #endif  						    ); diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c index b5cfee3f0..95dda3da5 100644 --- a/libc/stdlib/malloc/malloc.c +++ b/libc/stdlib/malloc/malloc.c @@ -55,6 +55,7 @@  #define _POSIX_SOURCE  #define _XOPEN_SOURCE +#include <features.h>  #include <sys/types.h>  #include <unistd.h>  #include <limits.h> @@ -177,10 +178,10 @@ void *__hunk_alloc(int size)  			(p =  			 (Hunk_t *) mmap(HUNK_MSTART, HUNK_MSIZE,  							 PROT_READ | PROT_WRITE, -#ifdef __HAS_NO_MMU__ -							 MAP_SHARED | MAP_ANONYMOUS -#else +#ifdef __UCLIBC_HAS_MMU__  							 MAP_PRIVATE | MAP_ANONYMOUS +#else +							 MAP_SHARED | MAP_ANONYMOUS  #endif  							 , 0, 0)) == (Hunk_t *) MAP_FAILED)  		  // { @@ -483,10 +484,10 @@ static Block_t *bl_mapnew(size_t size)  	map_size = PAGE_ALIGN(size);  	pt = mmap(LARGE_MSTART, map_size, PROT_READ | PROT_WRITE | PROT_EXEC, -#ifdef __HAS_NO_MMU__ -							 MAP_SHARED | MAP_ANONYMOUS -#else +#ifdef __UCLIBC_HAS_MMU__  							 MAP_PRIVATE | MAP_ANONYMOUS +#else +							 MAP_SHARED | MAP_ANONYMOUS  #endif  							 , 0, 0); @@ -511,10 +512,10 @@ void __bl_uncommit(Block_t * b)  #if M_DOTRIMMING  	mmap(u_start, u_end - u_start, PROT_READ | PROT_WRITE | PROT_EXEC, -#ifdef __HAS_NO_MMU__ -							 MAP_SHARED | MAP_ANONYMOUS |MAP_FIXED -#else +#ifdef __UCLIBC_HAS_MMU__  							 MAP_PRIVATE | MAP_ANONYMOUS |MAP_FIXED +#else +							 MAP_SHARED | MAP_ANONYMOUS |MAP_FIXED  #endif  							 , 0, 0);  #endif diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index 56d9685d1..4244d9be8 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -38,7 +38,7 @@ _syscall1(void, _exit, int, status);  //#define __NR_fork             2  #ifdef L_fork -#ifndef __HAS_NO_MMU__ +#ifdef __UCLIBC_HAS_MMU__  #include <unistd.h>  _syscall0(pid_t, fork);  #endif @@ -683,7 +683,7 @@ _syscall2(int, statfs, const char *, path, struct statfs *, buf);  _syscall2(int, fstatfs, int, fd, struct statfs *, buf);  #endif -#ifndef __HAS_NO_MMU__ +#ifdef __UCLIBC_HAS_MMU__  //#define __NR_ioperm           101  #ifdef L_ioperm  #include <sys/io.h> @@ -802,7 +802,7 @@ int fstat(int filedes, struct libc_stat *buf)  //#define __NR_olduname         109 -#ifndef __HAS_NO_MMU__ +#ifdef __UCLIBC_HAS_MMU__  //#define __NR_iopl             110  #ifdef L_iopl  #include <sys/io.h>  | 
