summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile21
-rw-r--r--Rules.mak17
-rw-r--r--include/stdlib.h2
-rw-r--r--include/unistd.h6
-rw-r--r--libc/stdlib/malloc-simple/alloc.c7
-rw-r--r--libc/stdlib/malloc/malloc.c19
-rw-r--r--libc/sysdeps/linux/common/syscalls.c6
7 files changed, 38 insertions, 40 deletions
diff --git a/Makefile b/Makefile
index 7791f66cc..a9c40cd5c 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/Rules.mak b/Rules.mak
index 4367ae62d..3d9689c1b 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -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>