diff --git a/mlibc/libc-gcc+tcc.c b/mlibc/libc-gcc+tcc.c
index c3743c7e..ebdca80b 100644
--- a/mlibc/libc-gcc+tcc.c
+++ b/mlibc/libc-gcc+tcc.c
@@ -18,7 +18,6 @@
* along with Mes. If not, see .
*/
-#define FULL_MALLOC 1
#include
#include
diff --git a/mlibc/libc-gcc.c b/mlibc/libc-gcc.c
index 0ee872e6..32575fcc 100644
--- a/mlibc/libc-gcc.c
+++ b/mlibc/libc-gcc.c
@@ -174,11 +174,9 @@ fputc (int c, int fd)
return 0;
}
-int
-putchar (int c)
+void
+free (void *ptr)
{
- write (STDOUT, (char*)&c, 1);
- return 0;
}
char *g_brk = 0;
@@ -195,14 +193,33 @@ malloc (size_t size)
return p;
}
-#if !FULL_MALLOC
void *
-realloc (void *p, size_t size)
+memcpy (void *dest, void const *src, size_t n)
{
- brk (g_brk + size);
- return g_brk;
+ char* p = dest;
+ char* q = src;
+ while (n--) *p++ = *q++;
+ return dest;
+}
+
+int
+putchar (int c)
+{
+ write (STDOUT, (char*)&c, 1);
+ return 0;
+}
+
+void *
+realloc (void *ptr, size_t size)
+{
+ void *new = malloc (size);
+ if (ptr && new)
+ {
+ memcpy (new, ptr, size);
+ free (ptr);
+ }
+ return new;
}
-#endif
size_t
strlen (char const* s)
diff --git a/mlibc/libc-mes+tcc.c b/mlibc/libc-mes+tcc.c
index c90b4f57..e075768f 100644
--- a/mlibc/libc-mes+tcc.c
+++ b/mlibc/libc-mes+tcc.c
@@ -30,7 +30,6 @@
#include
#if !__GNUC__
-#define FULL_MALLOC 1
#include
int errno;
@@ -139,11 +138,6 @@ fread (void *ptr, size_t size, size_t nmemb, FILE *stream)
return 0;
}
-void
-free (void *ptr)
-{
-}
-
int
fseek (FILE *stream, long offset, int whence)
{
@@ -184,15 +178,6 @@ longjmp (jmp_buf env, int val)
eputs ("longjmp stub\n");
}
-void *
-memcpy (void *dest, void const *src, size_t n)
-{
- char* p = dest;
- char* q = src;
- while (n--) *p++ = *q++;
- return dest;
-}
-
void *
memmove (void *dest, void const *src, size_t n)
{
@@ -363,18 +348,6 @@ calloc (size_t nmemb, size_t size)
return p;
}
-void *
-realloc (void *ptr, size_t size)
-{
- void *new = malloc (size);
- if (ptr && new)
- {
- memcpy (new, ptr, size);
- free (ptr);
- }
- return new;
-}
-
int
vfprintf (FILE* f, char const* format, va_list ap)
{
diff --git a/mlibc/libc-mes.c b/mlibc/libc-mes.c
index 1a351eda..c8abba5f 100644
--- a/mlibc/libc-mes.c
+++ b/mlibc/libc-mes.c
@@ -224,6 +224,11 @@ fgetc (int fd)
return c == 1 ? c : (-1);
}
+void
+free (void *ptr)
+{
+}
+
//#define assert(x) ((x) ? (void)0 : assert_fail (#x))
int
ungetc (int c, int fd)
@@ -328,14 +333,26 @@ malloc (size_t size)
return p;
}
-#if !FULL_MALLOC
void *
-realloc (void *p, size_t size)
+memcpy (void *dest, void const *src, size_t n)
{
- brk (g_brk + size);
- return g_brk;
+ char* p = dest;
+ char* q = src;
+ while (n--) *p++ = *q++;
+ return dest;
+}
+
+void *
+realloc (void *ptr, size_t size)
+{
+ void *new = malloc (size);
+ if (ptr && new)
+ {
+ memcpy (new, ptr, size);
+ free (ptr);
+ }
+ return new;
}
-#endif
int
strncmp (char const* a, char const* b, int length)
diff --git a/scaffold/tests/79-int-array.c b/scaffold/tests/79-int-array.c
index 2658187b..64b2758a 100644
--- a/scaffold/tests/79-int-array.c
+++ b/scaffold/tests/79-int-array.c
@@ -29,15 +29,6 @@ struct foo {
struct foo f;
-void *
-memcpy (void *dest, void const *src, size_t n)
-{
- char* p = dest;
- char* q = src;
- while (n--) *p++ = *q++;
- return dest;
-}
-
int bla[6] = {0,0,11223344, 55667788,0,0};
int g_c[2] = {101, 111};
diff --git a/scaffold/tests/7a-struct-char-array.c b/scaffold/tests/7a-struct-char-array.c
index 3d9c45b2..ea33087a 100644
--- a/scaffold/tests/7a-struct-char-array.c
+++ b/scaffold/tests/7a-struct-char-array.c
@@ -38,26 +38,6 @@ int fill7;
int fill8;
int fill9;
-void *
-memcpy (void *dest, void const *src, int n)
-{
- char* p = dest;
- char* q = src;
- while (n--) *p++ = *q++;
- return dest;
-}
-
-#if __MESC__
-char *
-strcpy (char *dest, char const *src)
-{
- char *p = dest;
- while (*src) *p++ = *src++;
- *p = 0;
- return dest;
-}
-#endif
-
int
test ()
{