genode/libports/lib/mk/lwip.mk
Josef Söntgen 69fd7e1c32 libports: update lwip to STABLE-1.4.1-RC1
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.
2012-08-15 14:31:18 +02:00

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