Hi Mathieu,
I'm using the attached patch to build guile-lzlib for the 64bit Hurd.
When configure tries to detect the shared library name, the Hurd's gcc-14 says
--8<---------------cut here---------------start------------->8---
x86_64-pc-gnu-gcc conftest.c -o conftest -llz -Wl,--verbose
foo.c: In function ‘main’:
foo.c:1:22: error: implicit declaration of function ‘LZ_decompress_open’
[-Wimplicit-function-declaration]
1 | int main () { return LZ_decompress_open(); }
| ^~~~~~~~~~~~~~~~~~
--8<---------------cut here---------------end--------------->8---
The solution could be to compile using -Wno-implicit-function-declaration,
or to just declare the function, which is what this patch does.
Greetings,
Janneke
>From 80dcd31562827f4b6d085affe9d9f22164f7ed34 Mon Sep 17 00:00:00 2001
From: Janneke Nieuwenhuizen <[email protected]>
Date: Fri, 15 Nov 2024 16:18:29 +0100
Subject: [PATCH] build: Support the 64bit Hurd.
* configure.ac: When cross-compiling declare LZ_decompress_open before
using it in conftest.c.
---
configure.ac | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 50dc5ac..4c56768 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,7 +32,10 @@ AC_DEFUN([GUILE_LIBLZ_FILE_NAME], [
[if test "$cross_compiling" = yes; then
# When cross-compiling, we cannot rely on 'ldd'. Instead, look
# the output of 'ld --verbose', assuming we're using GNU ld.
- echo 'int main () { return LZ_decompress_open(); }' > conftest.c
+ cat > conftest.c <<EOF
+int LZ_decompress_open ();
+int main () { return LZ_decompress_open(); }
+EOF
guile_cv_liblz_libdir="\
`$CC conftest.c -o conftest$EXEEXT -llz -Wl,--verbose 2>/dev/null \
| grep -E '^/.*/liblz\.(a|so)'`"
--
2.46.0
--
Janneke Nieuwenhuizen <[email protected]> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com