package/libwebsockets: needs dynamic library
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Fri, 19 Mar 2021 21:29:00 +0000 (22:29 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 20 Mar 2021 20:04:43 +0000 (21:04 +0100)
kismets fails to build statically with libwebsockets since commit
14522a8f9d272204763c49a21ebce5653430c612 because libwebsockets does not
specify any Libs.Private field in its pkg-config file resulting in the
following failure:

configure:10659: checking for lws_client_connect_via_info in -lwebsockets
configure:10684: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/bin/arm-linux-g++ -std=gnu++17 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O2   -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp -lwebsockets  -latomic -lz >&5
/usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libwebsockets.a(tls.c.o): in function `alpn_cb':
tls.c:(.text+0x24): undefined reference to `SSL_select_next_proto'

As it is not trivial to specify Libs.Private with cmake buildsystem
(i.e. LIB_LIST contains the list of libraries but in the "cmake format"
with full paths and ';'), just disable static build with libwebsockets.

Fixes:
 - http://autobuild.buildroot.org/results/9fc7891b61b1c487b95f07c59b802dd98ef71e3a

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/libwebsockets/Config.in
package/libwebsockets/libwebsockets.mk
package/ttyd/Config.in

index dff6688e83dbf77511d53f8ca8c72261fab2b136..d7b529cafd55e7aa7da810ed8a1b032b55c11b6a 100644 (file)
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_LIBWEBSOCKETS
        bool "libwebsockets"
+       depends on !BR2_STATIC_LIBS
        select BR2_PACKAGE_ZLIB
        help
          Libwebsockets is a lightweight pure C library built to use
@@ -7,3 +8,6 @@ config BR2_PACKAGE_LIBWEBSOCKETS
          in both directions.
 
          https://libwebsockets.org/
+
+comment "libwebsockets needs a toolchain w/ dynamic library"
+       depends on BR2_STATIC_LIBS
index 6f752f998e5dfee930f4190cea4165fb447aeb57..c25686d3855391d166f107303150f46d13279b65 100644 (file)
@@ -69,10 +69,6 @@ else
 LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=OFF
 endif
 
-ifeq ($(BR2_STATIC_LIBS),y)
-LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SHARED=OFF
-endif
-
 ifeq ($(BR2_SHARED_LIBS),y)
 LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF
 endif
index df710fbac3633551f87d4fdb1e99fa43fe206fab..ecc705b17e94d38cca7c46425ef500eb2b75e426 100644 (file)
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_TTYD
        bool "ttyd"
-       depends on !BR2_STATIC_LIBS # libuv
+       depends on !BR2_STATIC_LIBS # libuv, libwebsockets
        depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
        depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv, json-c
        depends on BR2_USE_MMU # libuv