GNU bug report logs - #78960
VPATH build fails

Previous Next

Package: coreutils;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Sat, 5 Jul 2025 10:00:02 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

To reply to this bug, email your comments to 78960 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-coreutils <at> gnu.org:
bug#78960; Package coreutils. (Sat, 05 Jul 2025 10:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Haible <bruno <at> clisp.org>:
New bug report received and forwarded. Copy sent to bug-coreutils <at> gnu.org. (Sat, 05 Jul 2025 10:00:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bug-coreutils <at> gnu.org
Subject: VPATH build fails
Date: Sat, 05 Jul 2025 11:59:19 +0200
Hi,

The coreutils CI build part that does a "make distcheck" today fails,
whereas on 2025-06-30 it succeeded [1].

The problem can be reproduced as follows:

1)
$ ./bootstrap --no-git --gnulib-srcdir=$GNULIB_SRCDIR
$ ./configure
$ make
$ make dist

2)
Unpack the tarball, cd into its directory.

3)
$ mkdir bb
$ cd bb
$ ../configure
$ make V=1
...
depbase=`echo src/pinky.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -MT src/pinky.o -MD -MP -MF $depbase.Tpo -c -o src/pinky.o ../src/pinky.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc   -g -O2 -Wl,--as-needed  -o src/pinky src/pinky.o src/libver.a lib/libcoreutils.a   lib/libcoreutils.a   
rm -f src/speedlist.h
/arch/local/x86_64-linux/bin/mkdir -p src
( for opt in -dM -xdumpmacros -qshowmacros -PD; do \
                gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -E $opt ../src/termios.c 2>&1 && break; \
            done ) | /bin/bash ../src/speedgen src/speedlist.ht
chmod a-w src/speedlist.ht
mv src/speedlist.ht src/speedlist.h
depbase=`echo src/stty.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -MT src/stty.o -MD -MP -MF $depbase.Tpo -c -o src/stty.o src/stty.c &&\
mv -f $depbase.Tpo $depbase.Po
cc1: fatal error: src/stty.c: No such file or directory
compilation terminated.
make[2]: *** [Makefile:13092: src/stty.o] Error 1
make[2]: Leaving directory '/COREUTILS/coreutils/coreutils-20250411/bb'
make[1]: *** [Makefile:23441: all-recursive] Error 1
make[1]: Leaving directory '/COREUTILS/coreutils/coreutils-20250411/bb'
make: *** [Makefile:9356: all] Error 2

Comparing the compilation commands for pinky.c and stty.c, you can see
that ../src/pinky.c and src/stty.c are referenced. But in a VPATH build,
src/stty.c does not exist.

This is caused by commit 017fc50bb6797ac2d71e46fef8f559acb0f44c5d.
If I locally revert this commit, "make V=1" succeeds.

Bruno

[1] https://github.com/coreutils/ci-check/actions







Reply sent to Pádraig Brady <P <at> draigBrady.com>:
You have taken responsibility. (Sat, 05 Jul 2025 12:09:05 GMT) Full text and rfc822 format available.

Notification sent to Bruno Haible <bruno <at> clisp.org>:
bug acknowledged by developer. (Sat, 05 Jul 2025 12:09:06 GMT) Full text and rfc822 format available.

Message #10 received at 78960-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Bruno Haible <bruno <at> clisp.org>, 78960-done <at> debbugs.gnu.org
Subject: Re: bug#78960: VPATH build fails
Date: Sat, 5 Jul 2025 13:08:31 +0100
On 05/07/2025 10:59, Bruno Haible via GNU coreutils Bug Reports wrote:
> Hi,
> 
> The coreutils CI build part that does a "make distcheck" today fails,
> whereas on 2025-06-30 it succeeded [1].
> 
> The problem can be reproduced as follows:
> 
> 1)
> $ ./bootstrap --no-git --gnulib-srcdir=$GNULIB_SRCDIR
> $ ./configure
> $ make
> $ make dist
> 
> 2)
> Unpack the tarball, cd into its directory.
> 
> 3)
> $ mkdir bb
> $ cd bb
> $ ../configure
> $ make V=1
> ...
> depbase=`echo src/pinky.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -MT src/pinky.o -MD -MP -MF $depbase.Tpo -c -o src/pinky.o ../src/pinky.c &&\
> mv -f $depbase.Tpo $depbase.Po
> gcc   -g -O2 -Wl,--as-needed  -o src/pinky src/pinky.o src/libver.a lib/libcoreutils.a   lib/libcoreutils.a
> rm -f src/speedlist.h
> /arch/local/x86_64-linux/bin/mkdir -p src
> ( for opt in -dM -xdumpmacros -qshowmacros -PD; do \
>                  gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -E $opt ../src/termios.c 2>&1 && break; \
>              done ) | /bin/bash ../src/speedgen src/speedlist.ht
> chmod a-w src/speedlist.ht
> mv src/speedlist.ht src/speedlist.h
> depbase=`echo src/stty.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> gcc  -I. -I.. -I./lib  -Ilib -I../lib -Isrc -I../src    -g -O2 -MT src/stty.o -MD -MP -MF $depbase.Tpo -c -o src/stty.o src/stty.c &&\
> mv -f $depbase.Tpo $depbase.Po
> cc1: fatal error: src/stty.c: No such file or directory
> compilation terminated.
> make[2]: *** [Makefile:13092: src/stty.o] Error 1
> make[2]: Leaving directory '/COREUTILS/coreutils/coreutils-20250411/bb'
> make[1]: *** [Makefile:23441: all-recursive] Error 1
> make[1]: Leaving directory '/COREUTILS/coreutils/coreutils-20250411/bb'
> make: *** [Makefile:9356: all] Error 2
> 
> Comparing the compilation commands for pinky.c and stty.c, you can see
> that ../src/pinky.c and src/stty.c are referenced. But in a VPATH build,
> src/stty.c does not exist.
> 
> This is caused by commit 017fc50bb6797ac2d71e46fef8f559acb0f44c5d.
> If I locally revert this commit, "make V=1" succeeds.
> 
> Bruno
> 
> [1] https://github.com/coreutils/ci-check/actions

I did test a VPATH build from `make dist`,
but only a parallel build with `make -j4`, which does pass.

I pushed the following which passes both types of builds here.
Marking this as done.

cheers,
Padraig

diff --git a/src/local.mk b/src/local.mk
index 537032578..fb763c4db 100644
--- a/src/local.mk
+++ b/src/local.mk
@@ -708,7 +708,7 @@ src/version.h: Makefile
 # -PD: MSVC (usable with a wrapper such as cccl from the SWIG project)
 getmacopts = -dM -xdumpmacros -qshowmacros -PD

-CLEANFILES += src/speedlist.h
+BUILT_SOURCES += src/speedlist.h
 src/speedlist.h: src/termios.c lib/config.h src/speedgen
        $(AM_V_GEN)rm -f $@
        $(AM_V_at)${MKDIR_P} src
@@ -718,8 +718,6 @@ src/speedlist.h: src/termios.c lib/config.h src/speedgen
        $(AM_V_at)chmod a-w $@t
        $(AM_V_at)mv $@t $@

-src/stty.c: src/speedlist.h
-
 # Generates a list of macro invocations like:
 #   SINGLE_BINARY_PROGRAM(program_name_str, main_name)
 # once for each program list on $(single_binary_progs). Note that





Information forwarded to bug-coreutils <at> gnu.org:
bug#78960; Package coreutils. (Sat, 05 Jul 2025 14:55:02 GMT) Full text and rfc822 format available.

Message #13 received at 78960-done <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: 78960-done <at> debbugs.gnu.org,
 Pádraig Brady <P <at> draigbrady.com>
Subject: Re: bug#78960: VPATH build fails
Date: Sat, 05 Jul 2025 16:54:20 +0200
Pádraig Brady wrote:
> I pushed the following which passes both types of builds here.
> Marking this as done.
> 
> cheers,
> Padraig
> 
> diff --git a/src/local.mk b/src/local.mk
> index 537032578..fb763c4db 100644
> --- a/src/local.mk
> +++ b/src/local.mk
> @@ -708,7 +708,7 @@ src/version.h: Makefile
>   # -PD: MSVC (usable with a wrapper such as cccl from the SWIG project)
>   getmacopts = -dM -xdumpmacros -qshowmacros -PD
> 
> -CLEANFILES += src/speedlist.h
> +BUILT_SOURCES += src/speedlist.h
>   src/speedlist.h: src/termios.c lib/config.h src/speedgen
>          $(AM_V_GEN)rm -f $@
>          $(AM_V_at)${MKDIR_P} src
> @@ -718,8 +718,6 @@ src/speedlist.h: src/termios.c lib/config.h src/speedgen
>          $(AM_V_at)chmod a-w $@t
>          $(AM_V_at)mv $@t $@
> 
> -src/stty.c: src/speedlist.h
> -
>   # Generates a list of macro invocations like:
>   #   SINGLE_BINARY_PROGRAM(program_name_str, main_name)
>   # once for each program list on $(single_binary_progs). Note that
> 

That's better. But now, "make distcheck" fails in a different way,
namely in dist-check.mk line 127:

...
rm -f Makefile
make[3]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05'
(cd /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test && mv coreutils-2025-07-05 coreutils-2025-07-05.old	\
  && ${TAR-tar} -Jxf - ) < coreutils-2025-07-05.tar.xz
find /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05 -name .deps | xargs -r rmdir
diff -ur /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05
Only in /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old/src: speedlist.h
make[2]: *** [dist-check.mk:116: my-distcheck] Error 1
make[2]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils'
make[1]: *** [Makefile:25823: distcheck-hook] Error 2
make[1]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils'
make: *** [Makefile:23735: distcheck] Error 1

Bruno







Information forwarded to bug-coreutils <at> gnu.org:
bug#78960; Package coreutils. (Sat, 05 Jul 2025 21:16:01 GMT) Full text and rfc822 format available.

Message #16 received at 78960-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Bruno Haible <bruno <at> clisp.org>, 78960-done <at> debbugs.gnu.org
Subject: Re: bug#78960: VPATH build fails
Date: Sat, 5 Jul 2025 22:15:15 +0100
On 05/07/2025 15:54, Bruno Haible wrote:
> Pádraig Brady wrote:
>> I pushed the following which passes both types of builds here.
>> Marking this as done.
>>
>> cheers,
>> Padraig
>>
>> diff --git a/src/local.mk b/src/local.mk
>> index 537032578..fb763c4db 100644
>> --- a/src/local.mk
>> +++ b/src/local.mk
>> @@ -708,7 +708,7 @@ src/version.h: Makefile
>>    # -PD: MSVC (usable with a wrapper such as cccl from the SWIG project)
>>    getmacopts = -dM -xdumpmacros -qshowmacros -PD
>>
>> -CLEANFILES += src/speedlist.h
>> +BUILT_SOURCES += src/speedlist.h
>>    src/speedlist.h: src/termios.c lib/config.h src/speedgen
>>           $(AM_V_GEN)rm -f $@
>>           $(AM_V_at)${MKDIR_P} src
>> @@ -718,8 +718,6 @@ src/speedlist.h: src/termios.c lib/config.h src/speedgen
>>           $(AM_V_at)chmod a-w $@t
>>           $(AM_V_at)mv $@t $@
>>
>> -src/stty.c: src/speedlist.h
>> -
>>    # Generates a list of macro invocations like:
>>    #   SINGLE_BINARY_PROGRAM(program_name_str, main_name)
>>    # once for each program list on $(single_binary_progs). Note that
>>
> 
> That's better. But now, "make distcheck" fails in a different way,
> namely in dist-check.mk line 127:
> 
> ...
> rm -f Makefile
> make[3]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05'
> (cd /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test && mv coreutils-2025-07-05 coreutils-2025-07-05.old	\
>    && ${TAR-tar} -Jxf - ) < coreutils-2025-07-05.tar.xz
> find /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05 -name .deps | xargs -r rmdir
> diff -ur /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05
> Only in /home/runner/work/ci-check/ci-check/coreutils/tests/torture/coreutils/test/coreutils-2025-07-05.old/src: speedlist.h
> make[2]: *** [dist-check.mk:116: my-distcheck] Error 1
> make[2]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils'
> make[1]: *** [Makefile:25823: distcheck-hook] Error 2
> make[1]: Leaving directory '/home/runner/work/ci-check/ci-check/coreutils'
> make: *** [Makefile:23735: distcheck] Error 1

`make distcheck` passes here with the following, which I've just pushed.

cheers,
Padraig

commit fd59e4a955970b2a6c2796578f1bc8b57604f731 (HEAD -> master)Author: Pádraig Brady <P <at> draigBrady.com>
Date:   Sat Jul 5 17:45:00 2025 +0100

    build: avoid make distcheck error

    * src/local.mk: Similarly to commit v8.22-156-g09937e9d0
    track speedlist.h with nodist_src_stty_SOURCES and DISTCLEANFILES
    to ensure the make distcheck manifest comparison passes.
    Addresses https://bug.gnu.org/78960

diff --git a/src/local.mk b/src/local.mk
index fb763c4db..50957a8cd 100644
--- a/src/local.mk
+++ b/src/local.mk
@@ -371,6 +371,9 @@ src___SOURCES = src/lbracket.c
 nodist_src_coreutils_SOURCES = src/coreutils.h
 src_coreutils_SOURCES = src/coreutils.c

+nodist_src_stty_SOURCES = src/speedlist.h
+src_stty_SOURCES = src/stty.c
+
 src_cp_SOURCES = src/cp.c $(copy_sources) $(selinux_sources)
 src_date_SOURCES = src/date.c src/show-date.c
 src_dir_SOURCES = src/ls.c src/ls-dir.c
@@ -709,6 +712,7 @@ src/version.h: Makefile
 getmacopts = -dM -xdumpmacros -qshowmacros -PD

 BUILT_SOURCES += src/speedlist.h
+DISTCLEANFILES += src/speedlist.h
 src/speedlist.h: src/termios.c lib/config.h src/speedgen
        $(AM_V_GEN)rm -f $@
        $(AM_V_at)${MKDIR_P} src





Information forwarded to bug-coreutils <at> gnu.org:
bug#78960; Package coreutils. (Sun, 06 Jul 2025 01:21:02 GMT) Full text and rfc822 format available.

Message #19 received at 78960-done <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: 78960-done <at> debbugs.gnu.org,
 Pádraig Brady <P <at> draigbrady.com>
Subject: Re: bug#78960: VPATH build fails
Date: Sun, 06 Jul 2025 03:20:19 +0200
Pádraig Brady wrote:
> `make distcheck` passes here with the following, which I've just pushed.

I confirm that the CI now passes again.

Bruno







This bug report was last modified 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.