net/usockets: Fix build

-fPIC was missing in some cases, and this was somehow flying on 14
but was failing on 15.

Reported by:	fallout
This commit is contained in:
Yuri Victorovich 2024-01-21 23:35:50 -08:00
parent f6791ce3e2
commit cfdad59b52
3 changed files with 20 additions and 18 deletions

View File

@ -20,6 +20,7 @@ GH_ACCOUNT= uNetworking
GH_PROJECT= uSockets
MAKE_ARGS= WITH_OPENSSL=1
CXXFLAGS+= -fPIC
ALL_TARGET= default
@ -32,7 +33,7 @@ do-install:
do-test: # tests fail to compile: https://github.com/uNetworking/uSockets/issues/213
cd ${WRKSRC} && \
${CXX} -o test tests/sni_test.c ${STAGEDIR}${PREFIX}/lib/libuSockets.so && \
${CC} ${CFLAGS} -o test tests/sni_test.c ${STAGEDIR}${PREFIX}/lib/libuSockets.so && \
./test
.include <bsd.port.mk>

View File

@ -1,25 +1,11 @@
--- Makefile.orig 2023-12-28 02:58:25 UTC
+++ Makefile
@@ -77,18 +77,18 @@ ifeq ($(WITH_ASIO),1)
$(CC) $(CFLAGS) -O3 -c src/*.c src/eventing/*.c src/crypto/*.c src/io_uring/*.c
# Also link in Boost Asio support
ifeq ($(WITH_ASIO),1)
- $(CXX) $(CXXFLAGS) -Isrc -std=c++14 -flto -O3 -c src/eventing/asio.cpp
+ $(CXX) $(CXXFLAGS) -Isrc -fPIC -std=c++14 -flto -O3 -c src/eventing/asio.cpp
endif
# For now we do rely on C++17 for OpenSSL support but we will be porting this work to C11
ifeq ($(WITH_OPENSSL),1)
- $(CXX) $(CXXFLAGS) -std=c++17 -flto -O3 -c src/crypto/*.cpp
+ $(CXX) $(CXXFLAGS) -fPIC -std=c++17 -flto -O3 -c src/crypto/*.cpp
endif
ifeq ($(WITH_BORINGSSL),1)
- $(CXX) $(CXXFLAGS) -std=c++17 -flto -O3 -c src/crypto/*.cpp
+ $(CXX) $(CXXFLAGS) -fPIC -std=c++17 -flto -O3 -c src/crypto/*.cpp
@@ -88,7 +88,7 @@ endif
$(CXX) $(CXXFLAGS) -std=c++17 -flto -O3 -c src/crypto/*.cpp
endif
# Create a static library (try windows, then unix)
- lib.exe /out:uSockets.a *.o || $(AR) rvs uSockets.a *.o
+ lib.exe /out:uSockets.a *.o || $(CXX) -shared -o libuSockets.so *.o -lssl
+ $(CXX) -shared -o libuSockets.so *.o -lssl
# BoringSSL needs cmake and golang
.PHONY: boringssl

View File

@ -0,0 +1,15 @@
--- tests/sni_test.c.orig 2024-01-22 07:32:06 UTC
+++ tests/sni_test.c
@@ -1,10 +1,10 @@
-extern "C" {
+//extern "C" {
void *sni_new();
void sni_free(void *sni, void (*cb)(void *user));
int sni_add(void *sni, const char *hostname, void *user);
void *sni_remove(void *sni, const char *hostname);
void *sni_find(void *sni, const char *hostname);
-}
+//}
#include <assert.h>
#include <stdio.h>