GNU bug report logs - #78377
Cross-Compile - "src/make-prime-list: cannot execute: required file not found"

Previous Next

Package: coreutils;

Reported by: NR <nroycea+gnu <at> gmail.com>

Date: Sun, 11 May 2025 15:44:05 UTC

Severity: normal

Tags: fixed

Merged with 12741

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Pádraig Brady <P <at> draigBrady.com>
To: Collin Funk <collin.funk1 <at> gmail.com>, Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 78377 <at> debbugs.gnu.org
Subject: Re: bug#78377: Cross-Compile - "src/make-prime-list: cannot execute:
 required file not found"
Date: Fri, 16 May 2025 13:15:49 +0100
On 16/05/2025 06:36, Collin Funk wrote:
> Hi Paul,
> 
> Paul Eggert <eggert <at> cs.ucla.edu> writes:
> 
>> Yes, that should work, so long as the build host isn't a Microsoft
>> Windows platform that would require $(BUILD_EXEEXT). And that should
>> be good enough; we don't need the full power of AX_PROG_CC_FOR_BUILD
>> from the Autoconf Archive.
> 
> Here is a patch that worked in an x86 docker container with an arm64
> cross compiler.
> 
> Can we just assume that crc will always be used and depend on
> build-cc.m4? I guess the more robust way to do things is to do the
> following in bootstrap.conf:
> 
>      bootstrap_post_import_hook ()
>      {
>        $gnulib_tool --copy-file m4/build-cc.m4
>      }
> 
> Like we do for tests/init.sh.

Well given we also need to call gl_BUILD_CC perhaps the
best way would be to have a separate build-cc gnulib module
and have the crc module depend on that. I'm fine just depending
on crc for now though, though I can see a build-cc gnulib module
being generally useful.

Talking about crc, given our crctab.c has expanded recently,
it probably makes sense to generate that at build time also.

The patch looks good, and I tested with:
make BUILD_CC=clang BUILD_CFLAGS=-m32 V=1

I'll apply later and squash the following in
to avoid `make syntax-check` failures,
and remove a stale entry from .gitignore.

thank you!
Pádraig

diff --git a/.gitignore b/.gitignore
index bafeb2bc5..ba7344994 100644
--- a/.gitignore
+++ b/.gitignore
@@ -201,7 +201,6 @@
 /src/fs-kernel-magic
 /src/fs-latest-magic.h
 /src/fs-magic
-/src/make-prime-list
 /src/primes.h
 /src/single-binary.mk
 /src/version.c
diff --git a/cfg.mk b/cfg.mk
index e147d4ae7..fa032f52e 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -869,7 +869,7 @@ exclude_file_name_regexp--sc_system_h_headers = \
   ^src/((system|copy|chown-core|find-mount-point)\.h|make-prime-list\.c)$$

 _src := (false|lbracket|chown-(chgrp|chown)
-_src := $(_src)|ls-(dir|ls|vdir)|tac-pipe|uname-(arch|uname))
+_src := $(_src)|ls-(dir|ls|vdir)|make-prime-list|tac-pipe|uname-(arch|uname))
 _gl_src = (xdecto.max|cl-strtold)
 exclude_file_name_regexp--sc_require_config_h_first = \
   (^lib/buffer-lcm\.c|gl/lib/$(_gl_src)\.c|src/$(_src)\.c)$$
@@ -921,8 +921,10 @@ exclude_file_name_regexp--sc_prohibit_operator_at_end_of_line = \
 exclude_file_name_regexp--sc_error_message_uppercase = ^src/factor\.c$$
 exclude_file_name_regexp--sc_prohibit_atoi_atof = ^src/make-prime-list\.c$$

-# Exception here as we don't want __attribute elided on non GCC
-exclude_file_name_regexp--sc_prohibit-gl-attributes = ^src/libstdbuf\.c$$
+# Exception here as we don't want __attribute elided on non GCC for stdbuf
+# and we don't want to depend on gnulib for make-prime-list
+exclude_file_name_regexp--sc_prohibit-gl-attributes = \
+  ^src/(make-prime-list|libstdbuf)\.c$$

 exclude_file_name_regexp--sc_prohibit_uppercase_id_est = \.diff$$
 exclude_file_name_regexp--sc_ensure_dblspace_after_dot_before_id_est = \.diff$$
diff --git a/src/local.mk b/src/local.mk
index 833c714e1..68c7db63a 100644
--- a/src/local.mk
+++ b/src/local.mk
@@ -559,8 +559,8 @@ $(top_srcdir)/src/primes.h: $(top_srcdir)/src/make-prime-list.c
          $(MKDIR_P) $(top_srcdir)/src/primes-tmp \
          && (cd $(top_srcdir)/src/primes-tmp \
              && $(BUILD_CC) $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) \
-               $(BUILD_LDFLAGS) -o make-prime-list$(EXEEXT) \
-               $(abs_top_srcdir)/src/make-prime-list.c) \
+               $(BUILD_LDFLAGS) -o make-prime-list$(EXEEXT) \
+               $(abs_top_srcdir)/src/make-prime-list.c) \
          && rm -f $@ $@-t \
          && $(top_srcdir)/src/primes-tmp/make-prime-list$(EXEEXT) \
            5000 > $@-t \





This bug report was last modified today.

Previous Next


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