mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 15:02:25 +00:00
69fd7e1c32
The new version works fine but there is an issue with connect() that needs the included patch: There is no actual handling of EALREADY in lwip. It sets errno to EALREADY when the connection was established. Unfortunatly this is really bad because most programs expect to receive errno EISCONN if the connection was successfully established. So this behaviour breaks Qt4 and several noux/net packages (like lynx) because those programs end up in an endless loop trying to connect via an already connected socket. The longterm solution would be fixing the wrong behaviour in lwip (there are already bug-reports on lwip's mailinglist) but for now, it works well enough to simple change lwip's err_to_errno table to set errno to EISCONN when the connection was established.
48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
#
|
|
# lwIP TCP/IP library
|
|
#
|
|
# The library implementes TCP and UDP as well as DNS and DHCP.
|
|
#
|
|
|
|
include $(REP_DIR)/ports/lwip.inc
|
|
|
|
LWIP_DIR = $(REP_DIR)/contrib/$(LWIP)
|
|
|
|
# Genode platform files
|
|
SRC_CC = nic.cc printf.cc sys_arch.cc
|
|
|
|
# Core files
|
|
SRC_C = init.c mem.c memp.c netif.c pbuf.c stats.c udp.c raw.c sys.c \
|
|
tcp.c tcp_in.c tcp_out.c dhcp.c dns.c timers.c def.c
|
|
|
|
# IPv4 files
|
|
SRC_C += icmp.c inet.c ip_addr.c ip.c ip_frag.c inet_chksum.c
|
|
|
|
# API files
|
|
SRC_C += err.c api_lib.c api_msg.c netbuf.c netdb.c netifapi.c sockets.c \
|
|
tcpip.c
|
|
|
|
# Network interface files
|
|
SRC_C += etharp.c
|
|
|
|
LIBS = thread cxx alarm signal libc timed_semaphore
|
|
|
|
D_OPTS = ERRNO
|
|
D_OPTS := $(addprefix -D,$(D_OPTS))
|
|
CC_DEF += $(D_OPTS)
|
|
|
|
INC_DIR += $(REP_DIR)/include/lwip \
|
|
$(LWIP_DIR)/src/include \
|
|
$(LWIP_DIR)/src/include/ipv4 \
|
|
$(LWIP_DIR)/src/include/api \
|
|
$(LWIP_DIR)/src/include/netif \
|
|
$(REP_DIR)/src/lib/lwip/include
|
|
|
|
vpath %.cc $(REP_DIR)/src/lib/lwip/platform
|
|
vpath %.c $(LWIP_DIR)/src/core
|
|
vpath %.c $(LWIP_DIR)/src/core/ipv4
|
|
vpath %.c $(LWIP_DIR)/src/api
|
|
vpath %.c $(LWIP_DIR)/src/netif
|
|
|
|
SHARED_LIB = yes
|