Hello, Rostislav Svoboda <rostislav.svob...@gmail.com> writes:
> The warning appears also for guile@2.0 and later. guile@1.8 works fine: > > ``` > $ guix shell --emulate-fhs --container guile@1.8 > [env]$ exit > $ guix shell --emulate-fhs --container guile@2.0 > ldconfig: /lib/libguile-2.0.so.22.8.1-gdb.scm is not an ELF file - it > has the wrong magic bytes at the start. > > [env]$ > ``` The error is harmless. AFAIU ldconfig ignores the non-ELF file and compiles the ld cache with the ELF shared libraries. libguile-…-gdb.scm is a GDB extension file¹ that GDB auto-loads when debugging programs using libguile.so². From the beginning of said .scm file: ;;; Commentary: ;;; ;;; This file defines GDB extensions to pretty-print 'SCM' objects, and ;;; to walk Guile's virtual machine stack. ;;; ;;; This file is installed under a name that follows the convention that ;;; allows GDB to auto-load it anytime the user is debugging libguile ;;; (info "(gdb) objfile-gdbdotext file"). In distros using the Filesystem Hierarchy Standard, this file is installed in GDB's data directory instead of /lib, so ldconfig doesn't run into it. For example, in Debian/Ubuntu: $ dpkg -L guile-3.0-dev | grep gdb.scm /usr/share/gdb/auto-load/libguile-3.0.so.1.6.0-gdb.scm Unfortunately, in the case of Guix the auto-load directory is in GDB's own immutable installation directory so Guile can't put it there: $ gdb -q (gdb) show auto-load scripts-directory List of directories from which to load auto-loaded scripts is $debugdir:$datadir/auto-load. (gdb) show data-directory GDB's data directory is "/gnu/store/i6x19fvlb1ladc3hcg70hnkcq6i6x232-gdb-14.2/share/gdb". One way to improve that would be to propose a patch to upstream GDB so that additional auto-load scripts directories could be specified via an environment variable. Then Guile and other packages that provided GDB extentions (such as libstdc++) could install them in their respective /gnu/store/…-package/share/gdb/auto-load directories, and the Guix profile could set the GDB environment variable to point to them. -- Thiago ¹ https://sourceware.org/gdb/current/onlinedocs/gdb.html/Guile.html ² https://sourceware.org/gdb/current/onlinedocs/gdb.html/objfile_002dgdbdotext-file.html