Subject: Re: bug#72725: [core-updates] [i686-linux] guile-static fails to build
From: Ludovic Courtès <[email-masked]>
To: Ricardo Wurmus <[email-masked]>
Cc: [email-masked]
Date: Thu, 22 Aug 2024 13:59:28 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ludovic Courtès <[email-masked]> skribis:

> Ricardo Wurmus <[email-masked]> skribis:
>
>> Here is how guile-static fails:
>>
>>   CCLD     guile
>> lto-wrapper: warning: using serial compilation of 22 LTRANS jobs
>> ld: /tmp/guix-build-guile-static-3.0.9.drv-0/ccfveS8L.ltrans14.ltrans.o: in function `scm_dlopen':
>> /tmp/guix-build-guile-static-3.0.9.drv-0/guile-3.0.9/libguile/<artificial>:78:(.text+0x2d): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
>> ld: /tmp/guix-build-guile-static-3.0.9.drv-0/ccfveS8L.ltrans14.ltrans.o: in function `scm_tmpnam':
>> /tmp/guix-build-guile-static-3.0.9.drv-0/guile-3.0.9/libguile/posix.c:1757:(.text+0x1f62): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
>> ld: /tmp/guix-build-guile-static-3.0.9.drv-0/ccfveS8L.ltrans3.ltrans.o: in function `scm_odd_p':
>> /tmp/guix-build-guile-static-3.0.9.drv-0/guile-3.0.9/libguile/numbers.c:490:(.text+0x4a02): undefined reference to `fmod'
>> ld: /tmp/guix-build-guile-static-3.0.9.drv-0/ccfveS8L.ltrans3.ltrans.o: in function `scm_even_p':
>> /tmp/guix-build-guile-static-3.0.9.drv-0/guile-3.0.9/libguile/numbers.c:517:(.text+0x4af2): undefined reference to `fmod'
>
> The ‘fmod’ symbol is missing from the i686-linux libm.a, but it’s
> available in the x86_64 libm-2.39.a:

This is an upstream bug, fixed in glibc 2.40 (glibc commit
0b716305dfb48c2d13ed4f7d06c082b90c1d226f):

  https://sourceware.org/bugzilla/show_bug.cgi?id=31488

Fixed in commit 87cc46aefce0072dc83e667d85a59a34eecfd89f.

Thanks,
Ludo’.