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 <jann...@gnu.org> 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 <jann...@gnu.org> | GNU LilyPond https://LilyPond.org Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com