• Bug#1105564: phalanx: FTBFS with make --shuffle=reverse: Fatal error: c

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:30:18 2025
    Source: phalanx
    Version: 25-1.1
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-shuffle

    Hi,

    GNU Make now has a --shuffle option that simulates non-deterministic ordering of target prerequisites. See https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous work in Debian by Santiago Vila: https://people.debian.org/~sanvila/make-shuffle/

    This package fails to build with make --shuffle=reverse.
    This is likely to be caused by a missing dependency in
    debian/rules or an upstream Makefile.

    More information about this mass bug filing is available at https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

    Relevant part (hopefully):
    make[1]: Entering directory '/build/reproducible-path/phalanx-25' makefile:45: update target '.o/easy.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c easy.c -o .o/easy.o
    makefile:45: update target '.o/learn.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c learn.c -o .o/learn.o
    makefile:45: update target '.o/endgame.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c endgame.c -o .o/endgame.o
    makefile:45: update target '.o/killers.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c killers.c -o .o/killers.o
    makefile:45: update target '.o/book.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c book.c -o .o/book.o
    makefile:45: update target '.o/levels.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c levels.c -o .o/levels.o
    makefile:45: update target '.o/static.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c static.c -o .o/static.o
    makefile:45: update target '.o/hash.o' due to: target does not exist
    cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/phalanx-25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGNUFUN -DPBOOK_
    DIR=\"/usr/share/phalanx\" -DSBOOK_DIR=\"/usr/share/phalanx\" -DLEARN_DIR=\"/var/games\" -DLEARN_FILE=\"phalanx.learn\" -c hash.c -o .o/hash.o
    book.c: In function ‘myfread’:
    book.c:29:35: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    29 | { for( j=0; j!=ISI; j++ ) fread( (char*)ptr+i+j, 1, 1, stream ); }
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    book.c:30:35: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    30 | for( j=0; i+j<size; j++ ) fread( (char*)ptr+i+j, 1, 1, stream );
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    book.c: In function ‘linSB’:
    book.c:99:22: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    99 | if(!feof(f)) fgets(s,80,f); /* skip to the first \n */
    | ^~~~~~~~~~~~~
    book.c:103:17: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    103 | fgets(s,100,f);
    | ^~~~~~~~~~~~~~
    book.c: In function ‘binSB’:
    book.c:123:22: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    123 | if(!feof(f)) fgets(s,80,f); /* skip to the first \n */
    | ^~~~~~~~~~~~~
    book.c:125:22: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    125 | if(!feof(f)) fgets(s,100,f);
    | ^~~~~~~~~~~~~~
    book.c: In function ‘bk’:
    book.c:474:19: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    474 | fgets(t,126,Eco);
    | ^~~~~~~~~~~~~~~~
    Assembler messages:
    Fatal error: can't create .o/learn.o: No such file or directory
    make[1]: *** [makefile:45: .o/learn.o] Error 1 shuffle=reverse


    The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/reverse/phalanx_25-1.1_unstable_reverse.log

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)