ref: 51ab7caf2cfe53f509d758b154ad01f315da1ce2
parent: 54374eb1baef2600d9fd2aabd08f71a16d50a392
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Sat Mar 4 03:01:44 EST 2017
[libc] Undef all the libc symbols before the implementation Any function of the library can be implemented using a macro, so in the implementation file is a good idea to undef the name of the function to avoid problems.
--- a/libc/src/atexit.c
+++ b/libc/src/atexit.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <stdlib.h>
+#undef atexit
extern void (*_atexitf[_ATEXIT_MAX])(void);
--- a/libc/src/atoi.c
+++ b/libc/src/atoi.c
@@ -2,6 +2,7 @@
#include <ctype.h>
#include <stdlib.h>
+#undef atoi
int
atoi(const char *s)
--- a/libc/src/ctype.c
+++ b/libc/src/ctype.c
@@ -2,6 +2,7 @@
#define __USE_MACROS
#include <ctype.h>
+#undef ctype
unsigned char _ctype[255] = {
_C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */
--- a/libc/src/exit.c
+++ b/libc/src/exit.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <stdlib.h>
+#undef exit
void (*_atexitf[_ATEXIT_MAX])(void);
--- a/libc/src/localeconv.c
+++ b/libc/src/localeconv.c
@@ -1,5 +1,6 @@
#include <locale.h>
#include <limits.h>
+#undef localeconv
struct lconv *
localeconv(void)
--- a/libc/src/memchr.c
+++ b/libc/src/memchr.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef memchr
void *
memchr(const void *s, int c, size_t n)
--- a/libc/src/memcmp.c
+++ b/libc/src/memcmp.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef memcmp
int
memcmp(const void *s1, const void *s2, size_t n)
--- a/libc/src/memcpy.c
+++ b/libc/src/memcpy.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef memcpy
void *
memcpy(void * restrict dst, const void * restrict src, size_t n)
--- a/libc/src/memmove.c
+++ b/libc/src/memmove.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef memmove
void *
memmove(void *dst, const void *src, size_t n)
--- a/libc/src/memset.c
+++ b/libc/src/memset.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef memset
void *
memset(void *s, int c, size_t n)
--- a/libc/src/rand.c
+++ b/libc/src/rand.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <stdlib.h>
+#undef rand
static int next;
--- a/libc/src/setlocale.c
+++ b/libc/src/setlocale.c
@@ -2,6 +2,7 @@
#include <locale.h>
#include <stddef.h>
+#undef setlocale
char *
setlocale(int category, const char *locale)
--- a/libc/src/strcat.c
+++ b/libc/src/strcat.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strcat
char *
strcat(char * restrict dst, const char * restrict src)
--- a/libc/src/strchr.c
+++ b/libc/src/strchr.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strchr
char *
strchr(const char *s, int c)
--- a/libc/src/strcmp.c
+++ b/libc/src/strcmp.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strcmp
int
strcmp(const char *s1, const char *s2)
--- a/libc/src/strcoll.c
+++ b/libc/src/strcoll.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strcoll
int
strcoll(const char *s1, const char *s2)
--- a/libc/src/strcpy.c
+++ b/libc/src/strcpy.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strcpy
char *
strcpy(char * restrict dst, const char * restrict src)
--- a/libc/src/strcspn.c
+++ b/libc/src/strcspn.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strcspn
size_t
strcspn(const char *s1, const char *s2)
--- a/libc/src/strlen.c
+++ b/libc/src/strlen.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strlen
size_t
strlen(const char *s)
--- a/libc/src/strncat.c
+++ b/libc/src/strncat.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strncat
char *
strncat(char * restrict dst, const char * restrict src, size_t n)
--- a/libc/src/strncmp.c
+++ b/libc/src/strncmp.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strncmp
int
strncmp(const char *s1, const char *s2, size_t n)
--- a/libc/src/strncpy.c
+++ b/libc/src/strncpy.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strncpy
char *
strncpy(char * restrict dst, const char * restrict src, size_t n)
--- a/libc/src/strpbrk.c
+++ b/libc/src/strpbrk.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strpbrk
char *
strpbrk(const char *s1, const char *s2)
--- a/libc/src/strrchr.c
+++ b/libc/src/strrchr.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strrchr
char *
strrchr(const char *s, int c)
--- a/libc/src/strspn.c
+++ b/libc/src/strspn.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strspn
size_t
strspn(const char *s1, const char *s2)
--- a/libc/src/strstr.c
+++ b/libc/src/strstr.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strstr
char *
strstr(const char *s1, const char *s2)
--- a/libc/src/strtok.c
+++ b/libc/src/strtok.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strtok
char *
strtok(char * restrict s, const char * restrict delim)
--- a/libc/src/strxfrm.c
+++ b/libc/src/strxfrm.c
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include <string.h>
+#undef strxfrm
size_t
strxfrm(char * restrict dst, const char * restrict src, size_t n)
--- a/libc/src/tolower.c
+++ b/libc/src/tolower.c
@@ -2,6 +2,7 @@
#define __USE_MACROS
#include <ctype.h>
+#undef tolower
int
tolower(int c)