[29.x] guix build failure on ppc with xcb #33488

issue ajtowns opened this issue on September 28, 2025
  1. ajtowns commented at 11:41 PM on September 28, 2025: contributor

    Doing a guix build on the 29.x branch (both with v29.1, v29.2rc1 and f6d49d0a0995ad736c3462bb5cd9d2177d77c970) fails for me on powerpc (and powerpcle) seemingly related to xcb. Previous failures have just given me an error abort after some xcb install commands without indicating what failed, the latest failure gave this error:

    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating xkbcommon.pc
    config.status: creating xkbcommon-x11.pc
    config.status: creating doc/Doxyfile
    config.status: creating src/config.h
    config.status: src/config.h is unchanged
    config.status: executing depfiles commands
    config.status: executing libtool commands
    
            libxkbcommon 0.8.4
    
            libxkbcommon:            yes
            libxkbcommon-x11:        yes
            Wayland utilities:       no
            documentation:           no
    
            default XKB rules:       evdev
            default XKB model:       pc105
            default XKB layout:      us
            default XKB variant:
            default XKB options:
    
            prefix:                  /bitcoin/depends/powerpc64-linux-gnu
            includedir:              ${prefix}/include
            lib dir:                 ${exec_prefix}/lib
            datarootdir:             ${prefix}/share
            XKB config root:         ${datarootdir}/X11/xkb
            X11 locale root:         ${datarootdir}/X11/locale
    
    Building libxkbcommon...
    make[1]: Entering directory '/bitcoin/depends/work/build/powerpc64-linux-gnu/libxkbcommon/0.8.4-527b23ff69b'
    make  all-am
    make[2]: Entering directory '/bitcoin/depends/work/build/powerpc64-linux-gnu/libxkbcommon/0.8.4-527b23ff69b'
      CCLD     libxkbcommon-x11.la
    powerpc64-linux-gnu-ld: warning: /bitcoin/depends/powerpc64-linux-gnu/lib/libxcb-xkb.so has a corrupt string table index - ignoring
    powerpc64-linux-gnu-ld: error: /bitcoin/depends/powerpc64-linux-gnu/lib/libxcb-xkb.so: ELF section name out of range
    collect2: error: ld returned 1 exit status
    make[2]: *** [Makefile:1302: libxkbcommon-x11.la] Error 1
    make[2]: Leaving directory '/bitcoin/depends/work/build/powerpc64-linux-gnu/libxkbcommon/0.8.4-527b23ff69b'
    make[1]: *** [Makefile:1080: all] Error 2
    make[1]: Leaving directory '/bitcoin/depends/work/build/powerpc64-linux-gnu/libxkbcommon/0.8.4-527b23ff69b'
    make: *** [funcs.mk:303: /bitcoin/depends/work/build/powerpc64-linux-gnu/libxkbcommon/0.8.4-527b23ff69b/./.stamp_built] Error 2
    make: Leaving directory '/bitcoin/depends'
    
  2. maflcko added the label Build system on Sep 29, 2025
  3. maflcko commented at 5:42 AM on September 29, 2025: member

    Previous failures have just given me an error abort after some xcb install commands without indicating what failed, the latest failure gave this error:

    So the failure is non-deterministic? Does it happen with a fully clean git repo?

  4. ajtowns commented at 6:23 AM on September 29, 2025: contributor

    Previous failures have just given me an error abort after some xcb install commands without indicating what failed, the latest failure gave this error:

    So the failure is non-deterministic? Does it happen with a fully clean git repo?

    It's part of the "depends" setup, which caches the downloaded source and build between runs afaics? I think that's the source of the differences in error. I tried it from a cleaned out checkout before, but will try again to see the exact error.

  5. ajtowns commented at 6:33 AM on September 29, 2025: contributor

    Ah, there we go; these look like relevant lines:

    $ HOSTS=powerpc64-linux-gnu contrib/guix/guix-build
    ...
    xcb_auth.c:74:37: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       74 | #define AUTH_PROTO_MIT_MAGIC_COOKIE "MIT-MAGIC-COOKIE-1"
          |                                     ^~~~~~~~~~~~~~~~~~~~
    xcb_auth.c:80:5: note: in expansion of macro 'AUTH_PROTO_MIT_MAGIC_COOKIE'
       80 |     AUTH_PROTO_MIT_MAGIC_COOKIE,
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    ...
    libtool: warning: relinking 'libxcb-randr.la'
    libtool: install: (cd /bitcoin/depends/work/build/powerpc64-linux-gnu/libxcb/1.14-3622160b92f/src; /bin/sh "/bitcoin/depends/work/build/powerpc64-linux-gnu/libxcb/1.14-3622160b92f/libtool"  --silent --tag CC --mode=relink powerpc64-linux-gnu-gcc -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wlogical-op -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -I//bitcoin/depends/powerpc64-linux-gnu/include -pipe -std=c11 -O2 -version-info 1:0:1 -no-undefined -L/bitcoin/depends/powerpc64-linux-gnu/lib -o libxcb-randr.la -rpath /bitcoin/depends/powerpc64-linux-gnu/lib randr.lo libxcb.la -inst-prefix-dir /bitcoin/depends/work/staging/powerpc64-linux-gnu/libxcb/1.14-3622160b92f)
    ...
    powerpc64-linux-gnu-ld: warning: /bitcoin/depends/work/staging/powerpc64-linux-gnu/libxcb/1.14-3622160b92f/bitcoin/depends/powerpc64-linux-gnu/lib/libxcb.so has a corrupt string table index - ignoring
    powerpc64-linux-gnu-ld: error: /bitcoin/depends/work/staging/powerpc64-linux-gnu/libxcb/1.14-3622160b92f/bitcoin/depends/powerpc64-linux-gnu/lib/libxcb.so: ELF section name out of range
    collect2: error: ld returned 1 exit status
    libtool:   error: error: relink 'libxcb-randr.la' with the above command before installing it
    make[4]: *** [Makefile:851: install-libLTLIBRARIES] Error 1
    make[4]: *** Waiting for unfinished jobs....
    

    The "install" stuff I was seeing was the unfinished jobs, I guess, and I just didn't look carefully enough to find meatier errors.

    Using guix 1.4.0-9 from debian unstable, on commit f6d49d0a0995ad736c3462bb5cd9d2177d77c970.

  6. bitcoin deleted a comment on Sep 29, 2025
  7. willcl-ark commented at 1:17 PM on September 30, 2025: member

    I suspect might be the same fundamental issue we saw here: #33494 (comment)

    Where a cached package is found in depends (and used) despite the package definition having changed. @ajtowns do you have set/are you using $BASE_CACHE ?

  8. ajtowns commented at 4:42 PM on September 30, 2025: contributor

    No? I just untarred the Xcode SDK in a clean environment, set HOSTS and ran guix-build. The depends/sources files all seem to match the hashes from depends/packages as far as I can see for what that's worth.

  9. willcl-ark commented at 2:01 PM on October 1, 2025: member

    Ah I see.

    FWIW I am using the same guix version via nix but can't reproduce :(

    [100%] Built target check-symbols
    -- Install configuration: "RelWithDebInfo"
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoin-wallet
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoin-wallet.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoind
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoind.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoin-cli
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoin-cli.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoin-tx
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoin-tx.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoin-util
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoin-util.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/bitcoin-qt
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/share/man/man1/bitcoin-qt.1
    -- Installing: /distsrc-base/distsrc-f6d49d0a0995-powerpc64-linux-gnu/installed/bitcoin-f6d49d0a0995/bin/test_bitcoin
    
  10. ajtowns commented at 12:33 AM on October 2, 2025: contributor

    Running guix-build from a mostly clean build directly three times gives me these logs, if that helps:

    https://gist.github.com/ajtowns/e670603ba85bb7720cea8fc5e1215172

    Maybe my guix profile is corrupted or otherwise wrong somehow?

  11. maflcko commented at 7:04 AM on October 2, 2025: member

    I'd try to setup a fresh guix (maybe in a container) and build from there to check if something is wrong with your CPU/memory or the guix install.

    It should be roughly:

    docker run --privileged -it --rm ubuntu:24.04
    
    (inside the container, assuming the guix apt package still exists:)
    
    export DEBIAN_FRONTEND=noninteractive && apt update && apt install git vim htop guix bash curl make -y && git clone https://github.com/bitcoin/bitcoin.git --depth=1 /bitcoin-core && cd /bitcoin-core && groupadd --system guixbuild && for i in `seq -w 1 10`; do useradd -g guixbuild -G guixbuild -d /var/empty -s `which nologin` -c "Guix build user $i" --system guixbuilder$i; done
    LC_ALL=en_US.UTF-8 guix-daemon --build-users-group=guixbuild &
    
    HOSTS=powerpc64-linux-gnu V=1 VERBOSE=1 ./contrib/guix/guix-build
    

    It works for me, but I am using different hardware, and I've updated the guix to a more recent one:

    # uname --machine && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    riscv64
    46c169fb02a62391e8d31df45269152bb60185081333b9b345f02fe212d1673b  guix-build-f6d49d0a0995/output/dist-archive/bitcoin-f6d49d0a0995.tar.gz
    2355930789826759937046198efe16a5d01bb1d5e9f731bd46d4f7631e07685f  guix-build-f6d49d0a0995/output/powerpc64-linux-gnu/SHA256SUMS.part
    5a64896ef92dbeb29f37dcb4e5b3eb64e1c06d5fd64c8853b5ed8d3b6b8b0b13  guix-build-f6d49d0a0995/output/powerpc64-linux-gnu/bitcoin-f6d49d0a0995-powerpc64-linux-gnu-debug.tar.gz
    bf262448b9144561bd3adc14a855147154197e4ed4bb9eddfb229add5fb57740  guix-build-f6d49d0a0995/output/powerpc64-linux-gnu/bitcoin-f6d49d0a0995-powerpc64-linux-gnu.tar.gz
    
    # guix describe
    Generation 1    Sep 01 2025 17:43:44    (current)
      guix 5cb84f2
        repository URL: https://codeberg.org/guix/guix.git
        commit: 5cb84f2013c5b1e48a7d0e617032266f1e6059e2
    
  12. maflcko added the label Upstream on Oct 2, 2025
  13. maflcko added the label Questions and Help on Oct 2, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-26 06:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me