Skip to content

Commit

Permalink
Fix linking error with lld linkers (#438)
Browse files Browse the repository at this point in the history
When using lld linker, build fails with

ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../lib64/Scrt1.o is incompatible with elf32-i386
ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../lib64/crti.o is incompatible with elf32-i386
ld.lld: error: /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux

The fix is to check pkg-config first, and not force manual -L /usr/lib.
If pkg-config succeeded, then we don't bother with -L /usr/lib

Our guess is this what the actual intention was based upon the coments

if pkg-config is installed and openssl has installed a .pc file,
then use that information and don't search ssldirs

First found on gentoo linux with llvm profile, please check out Bug:
section of the commit for more info and a complete build log.

Bug: https://bugs.gentoo.org/905442

Signed-off-by: Brahmajit Das <[email protected]>
Co-authored-by: Sam James <[email protected]>
  • Loading branch information
listout and thesamesam authored Nov 2, 2023
1 parent 7a3f478 commit 9b4bdca
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions m4/ax_check_openssl.m4
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,20 @@ AC_DEFUN([AX_CHECK_OPENSSL], [
])
AS_IF([test "${with_openssl}" != "no"], [
# if pkg-config is installed and openssl has installed a .pc file,
# then use that information and don't search ssldirs
AC_PATH_PROG([PKG_CONFIG], [pkg-config])
if test x"$PKG_CONFIG" != x""; then
OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
if test $? = 0; then
OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
found=true
fi
fi
])
AS_IF([test "${with_openssl}" != "no" && test ! ${found}], [
OPENSSL_INCLUDES=
for ssldir in $ssldirs; do
AC_MSG_CHECKING([for openssl/ssl.h in $ssldir])
Expand All @@ -69,20 +83,6 @@ AC_DEFUN([AX_CHECK_OPENSSL], [
AC_MSG_RESULT([no])
])
done])
AS_IF([test "${with_openssl}" != "no" && test ! ${found}], [
# if pkg-config is installed and openssl has installed a .pc file,
# then use that information and don't search ssldirs
AC_PATH_PROG([PKG_CONFIG], [pkg-config])
if test x"$PKG_CONFIG" != x""; then
OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
if test $? = 0; then
OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
found=true
fi
fi
])
AS_IF([test "${with_openssl}" != "no" && test ${found}], [
Expand Down

0 comments on commit 9b4bdca

Please sign in to comment.