Skip to content

Commit 305c377

Browse files
fanquakerustyrussell
authored andcommitted
build: fix linking to libsodium on macOS
Currently on I see link failures like the following: ```bash ./configure <snip> checking for libsodium with IETF chacha20 variants... yes <snip> ar libccan.a ld ccan/ccan/cdump/tools/cdump-enumstr ld: library 'sodium' not found clang: error: linker command failed with exit code 1 (use -v to see invocation) ``` The configure check passes under Clang here. Changelog-Fixed: build: fix linking against libsodium on macOS.
1 parent f054b3b commit 305c377

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ LIBRARY_PATH := /usr/local/lib
263263
endif
264264

265265
CPPFLAGS += -DCLN_NEXT_VERSION="\"$(CLN_NEXT_VERSION)\"" -DPKGLIBEXECDIR="\"$(pkglibexecdir)\"" -DBINDIR="\"$(bindir)\"" -DPLUGINDIR="\"$(plugindir)\"" -DCCAN_TAL_NEVER_RETURN_NULL=1
266-
CFLAGS = $(CPPFLAGS) $(CWARNFLAGS) $(CDEBUGFLAGS) $(COPTFLAGS) -I $(CCANDIR) $(EXTERNAL_INCLUDE_FLAGS) -I . -I$(CPATH) $(SQLITE3_CFLAGS) $(POSTGRES_INCLUDE) $(FEATURES) $(COVFLAGS) $(DEV_CFLAGS) -DSHACHAIN_BITS=48 -DJSMN_PARENT_LINKS $(PIE_CFLAGS) $(COMPAT_CFLAGS) $(CSANFLAGS)
266+
CFLAGS = $(CPPFLAGS) $(CWARNFLAGS) $(CDEBUGFLAGS) $(COPTFLAGS) -I $(CCANDIR) $(EXTERNAL_INCLUDE_FLAGS) -I . -I$(CPATH) $(SQLITE3_CFLAGS) $(SODIUM_CFLAGS) $(POSTGRES_INCLUDE) $(FEATURES) $(COVFLAGS) $(DEV_CFLAGS) -DSHACHAIN_BITS=48 -DJSMN_PARENT_LINKS $(PIE_CFLAGS) $(COMPAT_CFLAGS) $(CSANFLAGS)
267267

268268
# If CFLAGS is already set in the environment of make (to whatever value, it
269269
# does not matter) then it would export it to subprocesses with the above value

configure

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,13 @@ if command -v "${PKG_CONFIG}" >/dev/null; then
355355
SQLITE3_LDLIBS="$("${PKG_CONFIG}" --silence-errors --libs sqlite3 || :)"
356356
fi
357357

358+
SODIUM_CFLAGS=""
359+
SODIUM_LDLIBS="-lsodium"
360+
if command -v "${PKG_CONFIG}" >/dev/null; then
361+
SODIUM_CFLAGS="$("${PKG_CONFIG}" --silence-errors --cflags libsodium || :)"
362+
SODIUM_LDLIBS="$("${PKG_CONFIG}" --silence-errors --libs libsodium || :)"
363+
fi
364+
358365
POSTGRES_INCLUDE=""
359366
POSTGRES_LDLIBS=""
360367
if command -v "${PG_CONFIG}" >/dev/null; then
@@ -365,7 +372,7 @@ fi
365372
# Clean up on exit.
366373
trap "rm -f $CONFIG_VAR_FILE.$$" 0
367374

368-
$CONFIGURATOR --extra-tests --autotools-style --var-file=$CONFIG_VAR_FILE.$$ --header-file=$CONFIG_HEADER.$$ --configurator-cc="$CONFIGURATOR_CC" --wrapper="$CONFIGURATOR_WRAPPER" "$CC" ${CWARNFLAGS-$BASE_WARNFLAGS} $CDEBUGFLAGS $COPTFLAGS $CSANFLAGS -I$CPATH -L$LIBRARY_PATH $SQLITE3_CFLAGS $POSTGRES_INCLUDE <<EOF
375+
$CONFIGURATOR --extra-tests --autotools-style --var-file=$CONFIG_VAR_FILE.$$ --header-file=$CONFIG_HEADER.$$ --configurator-cc="$CONFIGURATOR_CC" --wrapper="$CONFIGURATOR_WRAPPER" "$CC" ${CWARNFLAGS-$BASE_WARNFLAGS} $CDEBUGFLAGS $COPTFLAGS $CSANFLAGS -I$CPATH -L$LIBRARY_PATH $SQLITE3_CFLAGS $SODIUM_CFLAGS $POSTGRES_INCLUDE <<EOF
369376
370377
var=HAVE_ZLIB
371378
desc=zlib support
@@ -388,7 +395,7 @@ int main(void)
388395
var=HAVE_GOOD_LIBSODIUM
389396
desc=libsodium with IETF chacha20 variants
390397
style=DEFINES_EVERYTHING|EXECUTE|MAY_NOT_COMPILE
391-
link=-lsodium
398+
link=$SODIUM_LDLIBS
392399
code=
393400
#include <sodium.h>
394401
#include <stdio.h>
@@ -553,6 +560,8 @@ add_var SQLITE3_CFLAGS "$SQLITE3_CFLAGS"
553560
add_var SQLITE3_LDLIBS "$SQLITE3_LDLIBS"
554561
add_var POSTGRES_INCLUDE "$POSTGRES_INCLUDE"
555562
add_var POSTGRES_LDLIBS "$POSTGRES_LDLIBS"
563+
add_var SODIUM_CFLAGS "$SODIUM_CFLAGS"
564+
add_var SODIUM_LDLIBS "$SODIUM_LDLIBS"
556565
add_var VALGRIND "$VALGRIND"
557566
add_var DEBUGBUILD "$DEBUGBUILD"
558567
add_var COMPAT "$COMPAT" $CONFIG_HEADER.$$

external/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ EXTERNAL_INCLUDE_FLAGS += -I external/libsodium/src/libsodium/include \
5050
-I $(TARGET_DIR)/libsodium-build/src/libsodium/include
5151
EXTERNAL_LIBS += ${TARGET_DIR}/libsodium.a
5252
else
53-
LDLIBS += -lsodium
53+
LDLIBS += $(SODIUM_LDLIBS)
5454
endif
5555

5656
ifeq ($(HAVE_ZLIB),1)

0 commit comments

Comments
 (0)