bedcd1cd39
Fix the following static build failure with libpsl raised since bump to version 8.6.0 in commit5cee6b6be6
: configure:28830: /home/autobuild/autobuild/instance-6/output-1/host/bin/aarch64_be-buildroot-linux-musl-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -g0 -static -Werror-implicit-function-declaration -Wno-system-headers -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/autobuild/autobuild/instance-6/output-1/host/aarch64_be-buildroot-linux-musl/sysroot/usr/include -static -L/home/autobuild/autobuild/instance-6/output-1/host/bin/../aarch64_be-buildroot-linux-musl/sysroot/usr/lib -L/home/autobuild/autobuild/instance-6/output-1/host/aarch64_be-buildroot-linux-musl/sysroot/usr/lib conftest.c -lpsl -lmbedtls -lmbedx509 -lmbedcrypto -lz -latomic >&5 /home/autobuild/autobuild/instance-6/output-1/host/lib/gcc/aarch64_be-buildroot-linux-musl/11.4.0/../../../../aarch64_be-buildroot-linux-musl/bin/ld: /home/autobuild/autobuild/instance-6/output-1/host/bin/../aarch64_be-buildroot-linux-musl/sysroot/usr/lib/libpsl.a(psl.c.o): in function `is_public_suffix': psl.c:(.text+0x2a8): undefined reference to `idn2_lookup_u8' [...] checking for library containing psl_builtin... no configure: error: libpsl was not found Fixes:5cee6b6be6
- http://autobuild.buildroot.org/results/1fb15e1a99472c403d0d3b1a688902f32e78d002 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
110 lines
3.4 KiB
Diff
110 lines
3.4 KiB
Diff
From 9b3f67e267d1fa8d7867655d133bdbf8830a0ab3 Mon Sep 17 00:00:00 2001
|
|
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
Date: Thu, 15 Feb 2024 20:59:25 +0100
|
|
Subject: [PATCH] configure.ac: find libpsl with pkg-config
|
|
|
|
Find libpsl with pkg-config to avoid static build failures.
|
|
|
|
Ref: http://autobuild.buildroot.org/results/1fb15e1a99472c403d0d3b1a688902f32e78d002
|
|
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
Closes #12947
|
|
|
|
Upstream: https://github.com/curl/curl/commit/9b3f67e267d1fa8d7867655d133bdbf8830a0ab3
|
|
---
|
|
configure.ac | 79 ++++++++++++++++++++++++++++++++++++++++++++--------
|
|
docs/TODO | 7 -----
|
|
2 files changed, 67 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index cd0e2d07d8d164..09d5364f4de575 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -2075,19 +2075,74 @@ dnl **********************************************************************
|
|
dnl Check for libpsl
|
|
dnl **********************************************************************
|
|
|
|
-AC_ARG_WITH(libpsl,
|
|
- AS_HELP_STRING([--without-libpsl],
|
|
- [disable support for libpsl]),
|
|
- with_libpsl=$withval,
|
|
- with_libpsl=yes)
|
|
-curl_psl_msg="no (libpsl disabled)"
|
|
-if test $with_libpsl != "no"; then
|
|
- AC_SEARCH_LIBS(psl_builtin, psl,
|
|
- [curl_psl_msg="enabled";
|
|
- AC_DEFINE([USE_LIBPSL], [1], [PSL support enabled])
|
|
- ],
|
|
- [AC_MSG_ERROR([libpsl was not found]) ]
|
|
+dnl Default to compiler & linker defaults for LIBPSL files & libraries.
|
|
+OPT_LIBPSL=off
|
|
+AC_ARG_WITH(libpsl,dnl
|
|
+AS_HELP_STRING([--with-libpsl=PATH],[Where to look for libpsl, PATH points to the LIBPSL installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
|
|
+AS_HELP_STRING([--without-libpsl], [disable LIBPSL]),
|
|
+ OPT_LIBPSL=$withval)
|
|
+
|
|
+if test X"$OPT_LIBPSL" != Xno; then
|
|
+ dnl backup the pre-libpsl variables
|
|
+ CLEANLDFLAGS="$LDFLAGS"
|
|
+ CLEANCPPFLAGS="$CPPFLAGS"
|
|
+ CLEANLIBS="$LIBS"
|
|
+
|
|
+ case "$OPT_LIBPSL" in
|
|
+ yes)
|
|
+ dnl --with-libpsl (without path) used
|
|
+ CURL_CHECK_PKGCONFIG(libpsl)
|
|
+
|
|
+ if test "$PKGCONFIG" != "no" ; then
|
|
+ LIB_PSL=`$PKGCONFIG --libs-only-l libpsl`
|
|
+ LD_PSL=`$PKGCONFIG --libs-only-L libpsl`
|
|
+ CPP_PSL=`$PKGCONFIG --cflags-only-I libpsl`
|
|
+ else
|
|
+ dnl no libpsl pkg-config found
|
|
+ LIB_PSL="-lpsl"
|
|
+ fi
|
|
+
|
|
+ ;;
|
|
+ off)
|
|
+ dnl no --with-libpsl option given, just check default places
|
|
+ LIB_PSL="-lpsl"
|
|
+ ;;
|
|
+ *)
|
|
+ dnl use the given --with-libpsl spot
|
|
+ LIB_PSL="-lpsl"
|
|
+ PREFIX_PSL=$OPT_LIBPSL
|
|
+ ;;
|
|
+ esac
|
|
+
|
|
+ dnl if given with a prefix, we set -L and -I based on that
|
|
+ if test -n "$PREFIX_PSL"; then
|
|
+ LD_PSL=-L${PREFIX_PSL}/lib$libsuff
|
|
+ CPP_PSL=-I${PREFIX_PSL}/include
|
|
+ fi
|
|
+
|
|
+ LDFLAGS="$LDFLAGS $LD_PSL"
|
|
+ CPPFLAGS="$CPPFLAGS $CPP_PSL"
|
|
+ LIBS="$LIB_PSL $LIBS"
|
|
+
|
|
+ AC_CHECK_LIB(psl, psl_builtin,
|
|
+ [
|
|
+ AC_CHECK_HEADERS(libpsl.h,
|
|
+ curl_psl_msg="enabled"
|
|
+ LIBPSL_ENABLED=1
|
|
+ AC_DEFINE(USE_LIBPSL, 1, [if libpsl is in use])
|
|
+ AC_SUBST(USE_LIBPSL, [1])
|
|
+ )
|
|
+ ],
|
|
+ dnl not found, revert back to clean variables
|
|
+ LDFLAGS=$CLEANLDFLAGS
|
|
+ CPPFLAGS=$CLEANCPPFLAGS
|
|
+ LIBS=$CLEANLIBS
|
|
)
|
|
+
|
|
+ if test X"$OPT_LIBPSL" != Xoff &&
|
|
+ test "$LIBPSL_ENABLED" != "1"; then
|
|
+ AC_MSG_ERROR([libpsl libs and/or directories were not found where specified!])
|
|
+ fi
|
|
fi
|
|
AM_CONDITIONAL([USE_LIBPSL], [test "$curl_psl_msg" = "enabled"])
|
|
|