Enabling operating mode non-threaded (aka CONFIG_LWIP_NOTHREADS)
disables the socket API from lwip. This commit makes it so that our
socket-related glue code isn't added to the build if this option is
enabled.
Signed-off-by: Felipe Huici <felipe.huici@xxxxxxxxx>
---
Makefile.uk | 2 +-
include/netdb.h | 7 +++----
include/sys/socket.h | 2 ++
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Makefile.uk b/Makefile.uk
index 56ebcfc..5054ef4 100644
--- a/Makefile.uk
+++ b/Makefile.uk
@@ -80,6 +80,7 @@ LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/proto.c
LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/host.c
LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/serv.c
LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/inet.c|unikraft
+LIBLWIP_SRCS-$(CONFIG_LWIP_DNS) += $(LIBLWIP_BASE)/getnameinfo.c|unikraft
endif
LIBLWIP_SRCS-$(CONFIG_LWIP_THREADS) += $(LIBLWIP_BASE)/mutex.c|unikraft
LIBLWIP_SRCS-$(CONFIG_LWIP_THREADS) += $(LIBLWIP_BASE)/semaphore.c|unikraft
@@ -91,7 +92,6 @@ LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/time.c|unikraft
LIBLWIP_SRCS-y += $(LIBLWIP_BASE)/sendfile.c|unikraft
LIBLWIP_SRCS-$(CONFIG_LWIP_SOCKET) += $(LIBLWIP_BASE)/sockets.c|unikraft
LIBLWIP_SOCKETS_FLAGS-y += -Wno-cast-function-type
-LIBLWIP_SRCS-$(CONFIG_LWIP_DNS) += $(LIBLWIP_BASE)/getnameinfo.c|unikraft
LIBLWIP_SRCS-y += $(LIBLWIP_EXTRACTED)/core/init.c
LIBLWIP_SRCS-y += $(LIBLWIP_EXTRACTED)/core/def.c
LIBLWIP_SRCS-y += $(LIBLWIP_EXTRACTED)/core/inet_chksum.c
diff --git a/include/netdb.h b/include/netdb.h
index 7742012..59d0bd7 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -23,6 +23,9 @@ int getaddrinfo(const char *node, const char *service,
struct addrinfo **res);
void freeaddrinfo(struct addrinfo *res);
+int getnameinfo(const struct sockaddr *addr, socklen_t addrlen,
+ char *host, socklen_t hostlen,
+ char *serv, socklen_t servlen, int flags);
#endif /* LWIP_DNS && LWIP_SOCKET && !(LWIP_COMPAT_SOCKETS) */
@@ -74,10 +77,6 @@ void setprotoent(int stayopen);
#define EAI_SYSTEM -11
#define EAI_OVERFLOW -12
-int getnameinfo(const struct sockaddr *addr, socklen_t addrlen,
- char *host, socklen_t hostlen,
- char *serv, socklen_t servlen, int flags);
-
struct servent *getservbyname(const char *name, const char *proto);
struct servent *getservbyport(int port, const char *proto);
int getservbyport_r(int port, const char *prots, struct servent *se,
diff --git a/include/sys/socket.h b/include/sys/socket.h
index 8007cb8..8f6ecbc 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -38,6 +38,7 @@ extern "C" {
#endif
#include <uk/config.h>
+#if CONFIG_LWIP_SOCKETS
#if CONFIG_HAVE_LIBC
#include <fcntl.h>
#include <poll.h>
@@ -105,4 +106,5 @@ int socketpair(int domain, int type, int protocol, int
sv[2]);
}
#endif
+#endif /* CONFIG_LWIP_SOCKETS */
#endif /* _UK_LWIP_SOCKET_H_ */