Thanks! Committing, despite the weird change in the top line of the
makefile, which I see you've undone in the next patch :-)

--
Nadav Har'El
[email protected]


On Mon, Jul 27, 2020 at 7:43 PM Waldemar Kozaczuk <[email protected]>
wrote:

> Apparently some of the network and string functions are implemented
> using macros in glibc and it seems that OSv used to depend on
> the glibc headers (maybe) and the commit
> 0ac3dd155ac0a8f4606fcb9abf3c7785da395214 by Avi Kivity
> modified those files to #undef those functions.
>
> It looks like we do not have to do it anymore so this patch
> simply removes those files from libc/ folder and changes
> Makefile to point back to the musl equivalent ones.
>
> Signed-off-by: Waldemar Kozaczuk <[email protected]>
> ---
>  Makefile              | 26 +++++++++++++-------------
>  libc/network/htonl.c  |  9 ---------
>  libc/network/htons.c  |  9 ---------
>  libc/network/ntohl.c  |  9 ---------
>  libc/network/ntohs.c  |  9 ---------
>  libc/string/strchr.c  | 10 ----------
>  libc/string/strcmp.c  |  8 --------
>  libc/string/strcspn.c | 20 --------------------
>  libc/string/strdup.c  | 14 --------------
>  libc/string/strncmp.c | 10 ----------
>  libc/string/strpbrk.c |  8 --------
>  libc/string/strsep.c  | 14 --------------
>  libc/string/strspn.c  | 21 ---------------------
>  13 files changed, 13 insertions(+), 154 deletions(-)
>  delete mode 100644 libc/network/htonl.c
>  delete mode 100644 libc/network/htons.c
>  delete mode 100644 libc/network/ntohl.c
>  delete mode 100644 libc/network/ntohs.c
>  delete mode 100644 libc/string/strchr.c
>  delete mode 100644 libc/string/strcmp.c
>  delete mode 100644 libc/string/strcspn.c
>  delete mode 100644 libc/string/strdup.c
>  delete mode 100644 libc/string/strncmp.c
>  delete mode 100644 libc/string/strpbrk.c
>  delete mode 100644 libc/string/strsep.c
>  delete mode 100644 libc/string/strspn.c
>
> diff --git a/Makefile b/Makefile
> index 0c0f665b..28f4f575 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1,4 +1,4 @@
> -# OSv makefile
> +# O./libc/string/strdup.cSv makefile
>  #
>  # Copyright (C) 2015 Cloudius Systems, Ltd.
>  # This work is open source software, licensed under the terms of the
> @@ -1344,10 +1344,10 @@ musl += multibyte/wctomb.o
>
>  $(out)/libc/multibyte/mbsrtowcs.o: CFLAGS += -Imusl/src/multibyte
>
> -libc += network/htonl.o
> -libc += network/htons.o
> -libc += network/ntohl.o
> -libc += network/ntohs.o
> +musl += network/htonl.o
> +musl += network/htons.o
> +musl += network/ntohl.o
> +musl += network/ntohs.o
>  libc += network/gethostbyname_r.o
>  musl += network/gethostbyname2_r.o
>  musl += network/gethostbyaddr_r.o
> @@ -1576,13 +1576,13 @@ musl += string/strcasecmp.o
>  musl += string/strcasestr.o
>  libc += string/strcat.o
>  libc += string/__strcat_chk.o
> -libc += string/strchr.o
> +musl += string/strchr.o
>  libc += string/strchrnul.o
> -libc += string/strcmp.o
> +musl += string/strcmp.o
>  libc += string/strcpy.o
>  libc += string/__strcpy_chk.o
> -libc += string/strcspn.o
> -libc += string/strdup.o
> +musl += string/strcspn.o
> +musl += string/strdup.o
>  libc += string/strerror_r.o
>  libc += string/strlcat.o
>  libc += string/strlcpy.o
> @@ -1590,18 +1590,18 @@ libc += string/strlen.o
>  musl += string/strncasecmp.o
>  libc += string/strncat.o
>  libc += string/__strncat_chk.o
> -libc += string/strncmp.o
> +musl += string/strncmp.o
>  libc += string/strncpy.o
>  libc += string/__strncpy_chk.o
>  libc += string/__strndup.o
>  musl += string/strndup.o
>  musl += string/strnlen.o
> -libc += string/strpbrk.o
> +musl += string/strpbrk.o
>  musl += string/strrchr.o
> -libc += string/strsep.o
> +musl += string/strsep.o
>  libc += string/stresep.o
>  libc += string/strsignal.o
> -libc += string/strspn.o
> +musl += string/strspn.o
>  musl += string/strstr.o
>  libc += string/strtok.o
>  libc += string/strtok_r.o
> diff --git a/libc/network/htonl.c b/libc/network/htonl.c
> deleted file mode 100644
> index cd8fb684..00000000
> --- a/libc/network/htonl.c
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#include <netinet/in.h>
> -#include <byteswap.h>
> -
> -#undef htonl
> -uint32_t htonl(uint32_t n)
> -{
> -       union { int i; char c; } u = { 1 };
> -       return u.c ? bswap_32(n) : n;
> -}
> diff --git a/libc/network/htons.c b/libc/network/htons.c
> deleted file mode 100644
> index 99a064b0..00000000
> --- a/libc/network/htons.c
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#include <netinet/in.h>
> -#include <byteswap.h>
> -
> -#undef htons
> -uint16_t htons(uint16_t n)
> -{
> -       union { int i; char c; } u = { 1 };
> -       return u.c ? bswap_16(n) : n;
> -}
> diff --git a/libc/network/ntohl.c b/libc/network/ntohl.c
> deleted file mode 100644
> index 0e5b4ea8..00000000
> --- a/libc/network/ntohl.c
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#include <netinet/in.h>
> -#include <byteswap.h>
> -
> -#undef ntohl
> -uint32_t ntohl(uint32_t n)
> -{
> -       union { int i; char c; } u = { 1 };
> -       return u.c ? bswap_32(n) : n;
> -}
> diff --git a/libc/network/ntohs.c b/libc/network/ntohs.c
> deleted file mode 100644
> index 745fe737..00000000
> --- a/libc/network/ntohs.c
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#include <netinet/in.h>
> -#include <byteswap.h>
> -
> -#undef ntohs
> -uint16_t ntohs(uint16_t n)
> -{
> -       union { int i; char c; } u = { 1 };
> -       return u.c ? bswap_16(n) : n;
> -}
> diff --git a/libc/string/strchr.c b/libc/string/strchr.c
> deleted file mode 100644
> index fde21673..00000000
> --- a/libc/string/strchr.c
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -#include <string.h>
> -
> -char *__strchrnul(const char *, int);
> -
> -#undef strchr
> -char *strchr(const char *s, int c)
> -{
> -       char *r = __strchrnul(s, c);
> -       return *(unsigned char *)r == (unsigned char)c ? r : 0;
> -}
> diff --git a/libc/string/strcmp.c b/libc/string/strcmp.c
> deleted file mode 100644
> index a4a4b623..00000000
> --- a/libc/string/strcmp.c
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#include <string.h>
> -
> -#undef strcmp
> -int strcmp(const char *l, const char *r)
> -{
> -       for (; *l==*r && *l && *r; l++, r++);
> -       return *(unsigned char *)l - *(unsigned char *)r;
> -}
> diff --git a/libc/string/strcspn.c b/libc/string/strcspn.c
> deleted file mode 100644
> index bcb9dc77..00000000
> --- a/libc/string/strcspn.c
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -#include <string.h>
> -
> -#define BITOP(a,b,op) \
> - ((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof
> *(a))))
> -
> -char *__strchrnul(const char *, int);
> -
> -#undef strcspn
> -size_t strcspn(const char *s, const char *c)
> -{
> -       const char *a = s;
> -       size_t byteset[32/sizeof(size_t)];
> -
> -       if (!c[0] || !c[1]) return __strchrnul(s, *c)-a;
> -
> -       memset(byteset, 0, sizeof byteset);
> -       for (; *c && BITOP(byteset, *(unsigned char *)c, |=); c++);
> -       for (; *s && !BITOP(byteset, *(unsigned char *)s, &); s++);
> -       return s-a;
> -}
> diff --git a/libc/string/strdup.c b/libc/string/strdup.c
> deleted file mode 100644
> index ca6a36c7..00000000
> --- a/libc/string/strdup.c
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -#include <stdlib.h>
> -#include <string.h>
> -#include "libc.h"
> -
> -#undef __strdup
> -char *__strdup(const char *s)
> -{
> -       size_t l = strlen(s);
> -       char *d = malloc(l+1);
> -       if (!d) return NULL;
> -       return memcpy(d, s, l+1);
> -}
> -
> -weak_alias(__strdup, strdup);
> diff --git a/libc/string/strncmp.c b/libc/string/strncmp.c
> deleted file mode 100644
> index f1de1539..00000000
> --- a/libc/string/strncmp.c
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -#include <string.h>
> -
> -#undef strncmp
> -int strncmp(const char *_l, const char *_r, size_t n)
> -{
> -       const unsigned char *l=(void *)_l, *r=(void *)_r;
> -       if (!n--) return 0;
> -       for (; *l && *r && n && *l == *r ; l++, r++, n--);
> -       return *l - *r;
> -}
> diff --git a/libc/string/strpbrk.c b/libc/string/strpbrk.c
> deleted file mode 100644
> index b194ff1d..00000000
> --- a/libc/string/strpbrk.c
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#include <string.h>
> -
> -#undef strpbrk
> -char *strpbrk(const char *s, const char *b)
> -{
> -       s += strcspn(s, b);
> -       return *s ? (char *)s : 0;
> -}
> diff --git a/libc/string/strsep.c b/libc/string/strsep.c
> deleted file mode 100644
> index b64557c4..00000000
> --- a/libc/string/strsep.c
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -#define _GNU_SOURCE
> -#include <string.h>
> -
> -#undef strsep
> -char *strsep(char **str, const char *sep)
> -{
> -       char *s = *str, *end;
> -       if (!s) return NULL;
> -       end = s + strcspn(s, sep);
> -       if (*end) *end++ = 0;
> -       else end = 0;
> -       *str = end;
> -       return s;
> -}
> diff --git a/libc/string/strspn.c b/libc/string/strspn.c
> deleted file mode 100644
> index 10d2c9f0..00000000
> --- a/libc/string/strspn.c
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -#include <string.h>
> -
> -#define BITOP(a,b,op) \
> - ((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof
> *(a))))
> -
> -#undef strspn
> -size_t strspn(const char *s, const char *c)
> -{
> -       const char *a = s;
> -       size_t byteset[32/sizeof(size_t)] = { 0 };
> -
> -       if (!c[0]) return 0;
> -       if (!c[1]) {
> -               for (; *s == *c; s++);
> -               return s-a;
> -       }
> -
> -       for (; *c && BITOP(byteset, *(unsigned char *)c, |=); c++);
> -       for (; *s && BITOP(byteset, *(unsigned char *)s, &); s++);
> -       return s-a;
> -}
> --
> 2.25.1
>
> --
> You received this message because you are subscribed to the Google Groups
> "OSv Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/osv-dev/20200727164350.10609-1-jwkozaczuk%40gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/CANEVyjsqWQh_1_zZ6P7vrmgDSPMp%3Ds0atUTVTi7UpRY6wuKMgg%40mail.gmail.com.

Reply via email to