nderjung / unikraft

Personal fork of Unikraft core for development branches
Other
1 stars 0 forks source link

Compilation Fail with lwip #4

Open gabriele-scivoletto opened 3 years ago

gabriele-scivoletto commented 3 years ago

Describe the bug

The compilation process fails when trying to build posix-socket and lwip

Steps to reproduce

libs: libuuid: https://github.com/unikraft/lib-libuuid (staging) lwip: https://github.com/unikraft/lib-lwip (staging) newlib: https://github.com/unikraft/lib-newlib (staging) pthread-embedded: https://github.com/unikraft/lib-pthread-embedded (staging) python3: https://github.com/unikraft/lib-python3 (staging) zlib: https://github.com/unikraft/lib-zlib (staging)

kernel unikraft: https://github.com/nderjung/unikraft (nderjung/ukunixsock)

.config

#
# Automatically generated file; DO NOT EDIT.
# Unikraft/0.4.0~28d3336 Configuration
#
CONFIG_UK_FULLVERSION="0.4.0~28d3336"
CONFIG_UK_CODENAME="Rhea"
CONFIG_UK_ARCH="x86_64"
CONFIG_UK_BASE="/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft"
CONFIG_UK_APP="/home/ubuntu/temp/uk-event-manager"
CONFIG_UK_DEFNAME="uk-event-manager"

#
# Architecture Selection
#
CONFIG_ARCH_X86_64=y
# CONFIG_ARCH_ARM_64 is not set
# CONFIG_ARCH_ARM_32 is not set
# CONFIG_MARCH_X86_64_NATIVE is not set
CONFIG_MARCH_X86_64_GENERIC=y
# CONFIG_MARCH_X86_64_NOCONA is not set
# CONFIG_MARCH_X86_64_CORE2 is not set
# CONFIG_MARCH_X86_64_COREI7 is not set
# CONFIG_MARCH_X86_64_COREI7AVX is not set
# CONFIG_MARCH_X86_64_COREI7AVXI is not set
# CONFIG_MARCH_X86_64_ATOM is not set
# CONFIG_MARCH_X86_64_K8 is not set
# CONFIG_MARCH_X86_64_K8SSE3 is not set
# CONFIG_MARCH_X86_64_AMDFAM10 is not set
# CONFIG_MARCH_X86_64_BTVER1 is not set
# CONFIG_MARCH_X86_64_BDVER1 is not set
# CONFIG_MARCH_X86_64_BDVER2 is not set
# CONFIG_MARCH_X86_64_BDVER3 is not set
# CONFIG_MARCH_X86_64_BTVER2 is not set
CONFIG_STACK_SIZE_PAGE_ORDER=10
# end of Architecture Selection

#
# Platform Configuration
#
CONFIG_PLAT_KVM=y

#
# Console Options
#
CONFIG_KVM_KERNEL_SERIAL_CONSOLE=y
CONFIG_KVM_KERNEL_VGA_CONSOLE=y
CONFIG_KVM_DEBUG_SERIAL_CONSOLE=y
CONFIG_KVM_DEBUG_VGA_CONSOLE=y

#
# Serial console configuration
#
CONFIG_KVM_SERIAL_BAUD_115200=y
# CONFIG_KVM_SERIAL_BAUD_57600 is not set
# CONFIG_KVM_SERIAL_BAUD_38400 is not set
# CONFIG_KVM_SERIAL_BAUD_19200 is not set
# end of Serial console configuration
# end of Console Options

CONFIG_KVM_PCI=y
CONFIG_VIRTIO_BUS=y

#
# Virtio
#
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_9P=y
# end of Virtio

# CONFIG_PLAT_LINUXU is not set
# CONFIG_PLAT_XEN is not set

#
# Platform Interface Options
#
# CONFIG_UKPLAT_MEMRNAME is not set
# end of Platform Interface Options

CONFIG_HZ=100
# end of Platform Configuration

#
# Library Configuration
#
CONFIG_LIB9PFS=y
CONFIG_LIBDEVFS=y
CONFIG_LIBDEVFS_AUTOMOUNT=y
CONFIG_LIBDEVFS_DEV_NULL_ZERO=y
CONFIG_LIBDEVFS_DEV_NULL=y
CONFIG_LIBDEVFS_DEV_ZERO=y
# CONFIG_LIBFDT is not set
CONFIG_LIBPOSIX_LIBDL=y
CONFIG_LIBPOSIX_PROCESS=y
CONFIG_LIBPOSIX_SOCKET=y
CONFIG_LIBPOSIX_SYSINFO=y
CONFIG_LIBPOSIX_USER=y
CONFIG_LIBRAMFS=y
CONFIG_LIBSYSCALL_SHIM=y
# CONFIG_LIBSYSCALL_SHIM_LIBCSTUBS is not set
# CONFIG_LIBSYSCALL_SHIM_HANDLER is not set
# CONFIG_LIBSYSCALL_SHIM_DEBUG is not set
CONFIG_LIBUK9P=y
CONFIG_LIBUKALLOC=y
# CONFIG_LIBUKALLOC_IFSTATS is not set
CONFIG_LIBUKALLOCBBUDDY=y
CONFIG_LIBUKARGPARSE=y
# CONFIG_LIBUKBLKDEV is not set
CONFIG_LIBUKBOOT=y
CONFIG_LIBUKBOOT_BANNER=y
CONFIG_LIBUKBOOT_MAXNBARGS=60
CONFIG_LIBUKBOOT_INITALLOC=y
CONFIG_LIBUKBUS=y
CONFIG_LIBUKDEBUG=y
CONFIG_LIBUKDEBUG_PRINTK=y
# CONFIG_LIBUKDEBUG_PRINTK_INFO is not set
# CONFIG_LIBUKDEBUG_PRINTK_WARN is not set
CONFIG_LIBUKDEBUG_PRINTK_ERR=y
# CONFIG_LIBUKDEBUG_PRINTK_CRIT is not set
# CONFIG_LIBUKDEBUG_PRINTD is not set
# CONFIG_LIBUKDEBUG_NOREDIR is not set
CONFIG_LIBUKDEBUG_REDIR_PRINTD=y
# CONFIG_LIBUKDEBUG_REDIR_PRINTK is not set
CONFIG_LIBUKDEBUG_PRINT_TIME=y
# CONFIG_LIBUKDEBUG_PRINT_STACK is not set
CONFIG_LIBUKDEBUG_ENABLE_ASSERT=y
# CONFIG_LIBUKDEBUG_TRACEPOINTS is not set
CONFIG_LIBUKLIBPARAM=y
CONFIG_LIBUKLOCK=y
CONFIG_LIBUKLOCK_SEMAPHORE=y
CONFIG_LIBUKLOCK_MUTEX=y
# CONFIG_LIBUKMMAP is not set
CONFIG_LIBUKMPI=y
CONFIG_LIBUKMPI_MBOX=y
CONFIG_LIBUKNETDEV=y
CONFIG_LIBUKNETDEV_MAXNBQUEUES=1
CONFIG_LIBUKNETDEV_DISPATCHERTHREADS=y
CONFIG_LIBUKSCHED=y
CONFIG_LIBUKSCHEDCOOP=y
CONFIG_LIBUKSGLIST=y
CONFIG_LIBUKSWRAND=y
# CONFIG_LIBUKSWRAND_MWC is not set
CONFIG_LIBUKSWRAND_CHACHA=y
CONFIG_LIBUKSWRAND_INITIALSEED_TIME=y
# CONFIG_LIBUKSWRAND_INITIALSEED_USECONSTANT is not set
# CONFIG_LIBUKSWRAND_DEVFS is not set
CONFIG_LIBUKTIME=y
CONFIG_LIBUKTIMECONV=y
CONFIG_LIBUKUNIXSOCK=y
CONFIG_LIBVFSCORE=y

#
# vfscore: Configuration
#
CONFIG_LIBVFSCORE_PIPE_SIZE_ORDER=16
CONFIG_LIBVFSCORE_AUTOMOUNT_ROOTFS=y
# CONFIG_LIBVFSCORE_ROOTFS_RAMFS is not set
CONFIG_LIBVFSCORE_ROOTFS_9PFS=y
# CONFIG_LIBVFSCORE_ROOTFS_CUSTOM is not set
CONFIG_LIBVFSCORE_ROOTFS="9pfs"
CONFIG_LIBVFSCORE_ROOTDEV="fs0"
CONFIG_LIBVFSCORE_ROOTFLAGS=0x0
CONFIG_LIBVFSCORE_ROOTOPTS=""
# end of vfscore: Configuration

CONFIG_HAVE_BOOTENTRY=y
CONFIG_HAVE_LIBC=y
CONFIG_HAVE_TIME=y
CONFIG_HAVE_SCHED=y
CONFIG_HAVE_NW_STACK=y
CONFIG_LIBPTHREAD_EMBEDDED=y
CONFIG_LIBPTHREAD_EMBEDDED_MAX_SIMUL_THREADS=32
CONFIG_LIBPTHREAD_EMBEDDED_MAX_TLS=32
# CONFIG_LIBPTHREAD_EMBEDDED_UTEST is not set
CONFIG_LIBLWIP=y

#
# Netif drivers
#
CONFIG_LWIP_UKNETDEV=y
# CONFIG_LWIP_UKNETDEV_POLLONLY is not set
CONFIG_LWIP_UKNETDEV_SCRATCH=64
# end of Netif drivers

CONFIG_LWIP_AUTOIFACE=y
# CONFIG_LWIP_NOTHREADS is not set
CONFIG_LWIP_THREADS=y
CONFIG_LWIP_HEAP=y
# CONFIG_LWIP_POOLS is not set
CONFIG_LWIP_NETIF_EXT_STATUS_CALLBACK=y
CONFIG_LWIP_NETIF_STATUS_PRINT=y
# CONFIG_LWIP_HAVE_LOOPIF is not set
CONFIG_LWIP_IPV4=y
CONFIG_LWIP_IPV6=y
CONFIG_LWIP_UDP=y
CONFIG_LWIP_TCP=y
CONFIG_LWIP_TCP_MSS=1460
CONFIG_LWIP_WND_SCALE=y
# CONFIG_LWIP_TCP_KEEPALIVE is not set
# CONFIG_LWIP_TCP_TIMESTAMPS is not set
CONFIG_LWIP_NUM_TCPCON=64
CONFIG_LWIP_NUM_TCPLISTENERS=64
CONFIG_LWIP_ICMP=y
# CONFIG_LWIP_IGMP is not set
# CONFIG_LWIP_SNMP is not set
CONFIG_LWIP_DHCP=y
CONFIG_LWIP_DNS=y
CONFIG_LWIP_DNS_MAX_SERVERS=2
CONFIG_LWIP_DNS_TABLE_SIZE=32
CONFIG_LWIP_SOCKET=y
CONFIG_LWIP_SOCKET_SELECT_GENERIC_FDS=y
CONFIG_LWIP_SOCKET_PPOLL=y
# CONFIG_LWIP_DEBUG is not set
CONFIG_LIBZLIB=y
CONFIG_LIBUUID=y
CONFIG_LIBNEWLIBM=y
CONFIG_LIBNEWLIBC=y
CONFIG_LIBNEWLIBC_WANT_IO_C99_FORMATS=y
CONFIG_LIBNEWLIBC_LINUX_ERRNO_EXTENSIONS=y
CONFIG_LIBNEWLIBC_CRYPT=y
CONFIG_LIBPYTHON3=y
CONFIG_LIBPYTHON3_PYTHONHOME="/lib/python3.7"
CONFIG_LIBPYTHON3_PYTHONPATH="/lib/python3.7"
CONFIG_LIBPYTHON3_TMPDIR="/tmp"
CONFIG_LIBPYTHON3_MAIN_FUNCTION=y
CONFIG_LIBPYTHON3_EXTENSIONS=y
CONFIG_LIBPYTHON3_EXTENSION_EXPAT=y
CONFIG_LIBPYTHON3_EXTENSION_LIBMPDEC=y
CONFIG_LIBPYTHON3_EXTENSION_UUID=y
CONFIG_LIBPYTHON3_EXTENSION_ZLIB=y
# end of Library Configuration

#
# Build Options
#
# CONFIG_OPTIMIZE_NONE is not set
CONFIG_OPTIMIZE_PERF=y
# CONFIG_OPTIMIZE_SIZE is not set

#
# Hint: Specify a CPU type to get most benefits from performance optimization
#
# CONFIG_OPTIMIZE_DEADELIM is not set
# CONFIG_OPTIMIZE_LTO is not set
# CONFIG_DEBUG_SYMBOLS_LVL0 is not set
# CONFIG_DEBUG_SYMBOLS_LVL1 is not set
# CONFIG_DEBUG_SYMBOLS_LVL2 is not set
CONFIG_DEBUG_SYMBOLS_LVL3=y
# CONFIG_OPTIMIZE_SYMFILE is not set
CONFIG_OPTIMIZE_COMPRESS=y
# CONFIG_RECORD_BUILDTIME is not set
CONFIG_CROSS_COMPILE=""
# end of Build Options

#
# Application Options
#
CONFIG_UK_NAME="uk-event-manager"

kraft.yaml

---
specification: '0.5'
name: uk-event-manager
unikraft:
  version: 825b115
  kconfig:
    - CONFIG_LIBUK9P=y
    - CONFIG_LIB9PFS=y
    - CONFIG_LIBDEVFS=y
    - CONFIG_LIBDEVFS_AUTOMOUNT=y
    - CONFIG_LIBVFSCORE_AUTOMOUNT_ROOTFS=y
    - CONFIG_LIBVFSCORE_ROOTFS_9PFS=y
    - CONFIG_LIBUKLIBPARAM=y
    - CONFIG_LIBVFSCORE_ROOTDEV="fs0"
targets:
  - architecture: x86_64
    platform: kvm
libraries:
  pthread-embedded:
    version: c59d7d6
  lwip:
    version: 34d9e5f
  zlib:
    version: 64356a7
  libuuid:
    version: 51dd7bf
  newlib:
    version: 78263bd
  python3:
    version: 3d526bd
    kconfig:
      - CONFIG_LIBPYTHON3=y
      - CONFIG_LIBPYTHON3_EXTENSIONS=y
      - CONFIG_LIBPYTHON3_EXTENSION_EXPAT=y
      - CONFIG_LIBPYTHON3_EXTENSION_LIBMPDEC=y
      - CONFIG_LIBPYTHON3_EXTENSION_UUID=y
      - CONFIG_LIBPYTHON3_EXTENSION_ZLIB=y
      - CONFIG_LIBPYTHON3_MAIN_FUNCTION=y
volumes:
  fs0:
    driver: 9pfs
    source: ./minrootfs.tgz

Expected behavior

No response

Which architectures were you using or does this bug affect?

No response

Which platforms were you using or does this bug affect?

No response

Relevant log output

CC      libposix_socket: socket.o

     1%            8/1361 [ 4.29file/s]/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c: In function ‘getnameinfo’:
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:378:45: warning: unused parameter ‘sa’ [-Wunused-parameter]
  378 | getnameinfo(const struct sockaddr *restrict sa, socklen_t sl,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:378:59: warning: unused parameter ‘sl’ [-Wunused-parameter]
  378 | getnameinfo(const struct sockaddr *restrict sa, socklen_t sl,
      |                                                 ~~~~~~~~~~^~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:379:26: warning: unused parameter ‘node’ [-Wunused-parameter]
  379 |           char *restrict node, socklen_t nodelen, char *restrict serv,
      |           ~~~~~~~~~~~~~~~^~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:379:42: warning: unused parameter ‘nodelen’ [-Wunused-parameter]
  379 |           char *restrict node, socklen_t nodelen, char *restrict serv,
      |                                ~~~~~~~~~~^~~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:379:66: warning: unused parameter ‘serv’ [-Wunused-parameter]
  379 |           char *restrict node, socklen_t nodelen, char *restrict serv,
      |                                                   ~~~~~~~~~~~~~~~^~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:380:21: warning: unused parameter ‘servlen’ [-Wunused-parameter]
  380 |           socklen_t servlen, int flags)
      |           ~~~~~~~~~~^~~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:380:34: warning: unused parameter ‘flags’ [-Wunused-parameter]
  380 |           socklen_t servlen, int flags)
      |                              ~~~~^~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c: At top level:
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:467:1: error: conflicting types for ‘recv’
  467 | recv(int sock, void *buf, size_t len, int flags)
      | ^~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:93:5: note: previous declaration of ‘recv’ was here
   93 | int recv(int s, void *mem, size_t len, int flags);
      |     ^~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:505:1: error: conflicting types for ‘recvfrom’
  505 | recvfrom(int sock, void *buf, size_t len, int flags,
      | ^~~~~~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:94:5: note: previous declaration of ‘recvfrom’ was here
   94 | int recvfrom(int s, void *mem, size_t len, int flags,
      |     ^~~~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:544:1: error: conflicting types for ‘recvmsg’
  544 | recvmsg(int sock, struct msghdr *msg, int flags)
      | ^~~~~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:96:5: note: previous declaration of ‘recvmsg’ was here
   96 | int recvmsg(int s, struct msghdr *msg, int flags);
      |     ^~~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:582:1: error: conflicting types for ‘send’
  582 | send(int sock, const void *buf, size_t len, int flags)
      | ^~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:97:5: note: previous declaration of ‘send’ was here
   97 | int send(int s, const void *dataptr, size_t size, int flags);
      |     ^~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:620:1: error: conflicting types for ‘sendmsg’
  620 | sendmsg(int sock, const struct msghdr *msg, int flags)
      | ^~~~~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:98:5: note: previous declaration of ‘sendmsg’ was here
   98 | int sendmsg(int s, const struct msghdr *message, int flags);
      |     ^~~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:658:1: error: conflicting types for ‘sendto’
  658 | sendto(int sock, const void *buf, size_t len, int flags,
      | ^~~~~~
In file included from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket_driver.h:49,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/include/uk/socket.h:56,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:35:
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/lwip/include/sys/socket.h:99:5: note: previous declaration of ‘sendto’ was here
   99 | int sendto(int s, const void *dataptr, size_t size, int flags,
      |     ^~~~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c: In function ‘socketpair’:
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:741:1: warning: label ‘EXIT’ defined but not used [-Wunused-label]
  741 | EXIT:
      | ^~~~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:704:34: warning: unused variable ‘u2’ [-Wunused-variable]
  704 |   struct posix_socket_file *u1, *u2;
      |                                  ^~
/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/lib/posix-socket/socket.c:704:29: warning: unused variable ‘u1’ [-Wunused-variable]
  704 |   struct posix_socket_file *u1, *u2;
      |                             ^~
make[1]: *** [/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/support/build/Makefile.build:27: /home/ubuntu/temp/uk-event-manager/build/libposix_socket/socket.o] Error 1
make: *** [Makefile:970: sub-make] Error 2
Esteban-Mtz commented 3 years ago

Hello @gabriele-scivoletto,

I have the same problem. I hope to use this functionalities soon in our use-case.

Best Regards.