grass icon indicating copy to clipboard operation
grass copied to clipboard

r.mapcalc: simplify Makefile rule

Open nilason opened this issue 1 year ago • 8 comments

Minor simplification of #3415.

nilason avatar Feb 15 '24 10:02 nilason

I made a test:

cd raster/r.mapcalc/
make clean
make -j21
make -j21
make -j21

Only at the 3rd run make reports: make: Nothing to be done for 'first'.

I'd expect to see it at the second run of make.

neteler avatar Feb 15 '24 18:02 neteler

I made a test:

cd raster/r.mapcalc/
make clean
make -j21
make -j21
make -j21

Only at the 3rd run make reports: make: Nothing to be done for 'first'.

I'd expect to see it at the second run of make.

For me it does show at second run. Maybe you need to distclean?

nilason avatar Feb 15 '24 18:02 nilason

The makefile for r.mapcalc is called at different places throughout a full build. Maybe it comes into play when that makefile is run by multiple submakefiles.

Also, I saw in another comment that you were using gnu make 4.4.1. Probably you could have better luck finding badly defined dependencies by adding --shuffle to force using different ordering but still respecting the dependencies of the targets.

On failures it adds the seed to reproduce.

echoix avatar Feb 15 '24 19:02 echoix

Also, I saw in another comment that you were using gnu make 4.4.1. Probably you could have better luck finding badly defined dependencies by adding --shuffle to force using different ordering but still respecting the dependencies of the targets.

Sure, here the result (without the r.mapcalc Makefile PR applied):

make distclean

# inject --shuffle into main Makefile:
sed -i 's+$(MAKE)+$(MAKE) --shuffle+g' Makefile

configure ...

make -j21

cat error.log
GRASS GIS 8.4.0dev 25bc70d0f5 compilation log
--------------------------------------------------
Started compilation: Thu Feb 15 09:36:42 PM CET 2024
--
Errors in:
/home/mneteler/software/grass_main/python/grass/benchmark
/home/mneteler/software/grass_main/python/grass/experimental
/home/mneteler/software/grass_main/python/grass/grassdb
/home/mneteler/software/grass_main/python/grass/gunittest
/home/mneteler/software/grass_main/python/grass/imaging
/home/mneteler/software/grass_main/python/grass/jupyter
/home/mneteler/software/grass_main/python/grass/pydispatch
/home/mneteler/software/grass_main/python/grass/pygrass
/home/mneteler/software/grass_main/python/grass/script
/home/mneteler/software/grass_main/python/grass/semantic_label
/home/mneteler/software/grass_main/python/grass/temporal
/home/mneteler/software/grass_main/scripts/r.in.wms
/home/mneteler/software/grass_main/gui/wxpython
--
...
--
Finished compilation: Thu Feb 15 09:37:57 PM CET 2024

So I re-ran this entirely and the errors were the same.

neteler avatar Feb 15 '24 21:02 neteler

So I re-ran this entirely and the errors were the same.

Interesting. Did this happen before this PR (ie. before and after #3415 was merged)?

nilason avatar Feb 15 '24 21:02 nilason

Interesting. Did this happen before this PR (ie. before and after #3415 was merged)?

I only tried now after the other PR merge. But perhaps G83 is close enough?

make distclean

# inject --shuffle into main Makefile:
sed -i 's+$(MAKE)+$(MAKE) --shuffle+g' Makefile

configure ...

make -j21

cat error.log
GRASS GIS 8.3.2dev 7bcd38ce24 compilation log
--------------------------------------------------
Started compilation: Thu Feb 15 10:29:51 PM CET 2024
--
Errors in:
/home/mneteler/software/grass83/python/grass/app
/home/mneteler/software/grass83/python/grass/benchmark
/home/mneteler/software/grass83/python/grass/exceptions
/home/mneteler/software/grass83/python/grass/grassdb
/home/mneteler/software/grass83/python/grass/gunittest
/home/mneteler/software/grass83/python/grass/imaging
/home/mneteler/software/grass83/python/grass/jupyter
/home/mneteler/software/grass83/python/grass/pydispatch
/home/mneteler/software/grass83/python/grass/pygrass
/home/mneteler/software/grass83/python/grass/script
/home/mneteler/software/grass83/python/grass/semantic_label
/home/mneteler/software/grass83/python/grass/temporal
/home/mneteler/software/grass83/python/grass/utils
/home/mneteler/software/grass83/scripts/r.in.wms
/home/mneteler/software/grass83/gui/wxpython
--
In case of errors please change into the directory with error and run 'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you will
also get errors from anything which uses the library.
--
Finished compilation: Thu Feb 15 10:31:23 PM CET 2024

neteler avatar Feb 15 '24 21:02 neteler

For Python, I have some randomish failures, but always at least 20 failures with -j10. I count the failures with the amout of times shuffle= is present in my log, since the seed is outputted on errors.

My repro steps (ubuntu 22.04 on WSL2)

export MAKEFLAGS=
# export LD_LIBRARY_PATH=$HOME/install/lib
# rm -rf $HOME/install
# mkdir $HOME/install
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
# Call only for the configure step, with all the configure options chosen, and stop when configure is finished
# CFLAGS='-fPIC' CXXFLAGS='-fPIC ' .github/workflows/build_ubuntu-22.04.sh $HOME/install | tee compilationlog0.log
./configure \
    --prefix="$HOME/install/" \
    --enable-largefile \
    --with-cxx \
    --with-zstd \
    --with-bzlib \
    --with-blas \
    --with-lapack \
    --with-readline \
    --with-openmp \
    --with-pdal \
    --with-pthread \
    --with-tiff \
    --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos \
    --with-sqlite \
    --with-fftw \
    --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog12.log

My makeflags include grouping the output per target, debug output, trace, shuffle, and print directory. https://www.gnu.org/software/make/manual/html_node/Options-Summary.html I don't have to change the makefiles to add --shuffle. But I do need to redirect 2 to 1 to see the failures, since it seems stderr is lost otherwise (at least for tee, and since so much is going on I can't really read on the terminal before the buffer is full).

Here is an example of a section for the python/grass/benchmark folder. The on another run it didn't have problems, but the python/grass/app did, for similar reasons. Note that the debug output is grouped by target.

Compilation log 8

I lost that file after I copied it, so I can't attach it.

 File 'first' does not exist.
  File 'default' does not exist.
 Must remake target 'default'.
 Successfully remade target file 'default'.
Must remake target 'first'.
Successfully remade target file 'first'.
GNU Make 4.4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Enabled shuffle mode: 4006159299
Updating makefiles....
Updating goal targets....
 File 'first' does not exist.
  File 'pre' does not exist.
 Must remake target 'pre'.
 Successfully remade target file 'pre'.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
    File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark' does not exist.
   Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark'.
    File '__init__.pyc' does not exist.
   Must remake target '__init__.pyc'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.py' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
    File 'plots.pyc' does not exist.
   Must remake target 'plots.pyc'.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:16: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark' due to: target does not exist
mkdir -p /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.py'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.py'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
    File 'runners.pyc' does not exist.
   Must remake target 'runners.pyc'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.py'.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.py' due to: target does not exist
/usr/bin/install -c -m 644 app.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.pyc' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.pyc'.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.py' due to: target does not exist
/usr/bin/install -c -m 644 plots.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.py'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.pyc' does not exist.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.py' due to: target does not exist
/usr/bin/install -c -m 644 runners.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
 File 'first' does not exist.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.py' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.py'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.pyc' does not exist.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.py' due to: target does not exist
/usr/bin/install -c -m 644 __main__.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
 File 'first' does not exist.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.pyc' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.pyc'.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py' due to: target does not exist
/usr/bin/install -c -m 644 results.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
 File 'first' does not exist.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc'.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.py' due to: target does not exist
/usr/bin/install -c -m 644 __init__.py /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
 File 'first' does not exist.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target 'plots.pyc' due to: target does not exist
python3 -m py_compile plots.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
 File 'first' does not exist.
  File 'default' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc' does not exist.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' does not exist.
  Must remake target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc'.
   File '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc' does not exist.
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' due to: target does not exist
/usr/bin/install -c -m 644 plots.pyc /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc
/usr/bin/install: cannot stat 'plots.pyc': No such file or directory
make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc] Error 1 shuffle=4006159299
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
make[5]: *** Waiting for unfinished jobs....
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target 'runners.pyc' due to: target does not exist
python3 -m py_compile runners.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.pyc' due to: target does not exist
python3 -m py_compile /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__main__.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc' due to: target does not exist
python3 -m py_compile /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target '__init__.pyc' due to: target does not exist
python3 -m py_compile __init__.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'
make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
../../../include/Make/Python.make:5: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.pyc' due to: target does not exist
python3 -m py_compile /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.py
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'

The interesting bits are here: For pyc file, since Python 3.2 (Python 3.2 was released on February 20th, 2011), pyc files are placed in a __pycache__ directory, but our rule for pyc files seem to have been untouched for 16 years, in January 2009 https://github.com/OSGeo/grass/blame/25bc70d0f56d4fe6e9b426803459aad499e41251/include/Make/Python.make#L4

make[5]: Entering directory '/home/e-c/grass/python/grass/benchmark'
Makefile:19: update target '/home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc' due to: target does not exist
/usr/bin/install -c -m 644 plots.pyc /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc
/usr/bin/install: cannot stat 'plots.pyc': No such file or directory
make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/plots.pyc] Error 1 shuffle=4006159299
make[5]: Leaving directory '/home/e-c/grass/python/grass/benchmark'

So obviously, the .pyc files can't be found, since they arent in the same folder as the .py files, and more than that, they have an interpreter-specific suffix before the .pyc extension inside the __pycache__ directory. There would also be these lines that could be problematic https://github.com/OSGeo/grass/blame/25bc70d0f56d4fe6e9b426803459aad499e41251/include/Make/Script.make#L12-L14

So it explains all but the scripts/r.in.wms and gui/wxpython failures.

Details with main 25bc70d0f56d4fe6e9b426803459aad499e41251

Repro:

git checkout 25bc70d0f56d4fe6e9b426803459aad499e41251
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure \
    --prefix="$HOME/install/" \
    --enable-largefile \
    --with-cxx \
    --with-zstd \
    --with-bzlib \
    --with-blas \
    --with-lapack \
    --with-readline \
    --with-openmp \
    --with-pdal \
    --with-pthread \
    --with-tiff \
    --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos \
    --with-sqlite \
    --with-fftw \
    --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog13.log
ag shuffle= compilationlog13.log --stats
ag --after=1 --before=4  shuffle= compilationlog13.log --stats
16430:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/data.pyc] Error 1 shuffle=1222960748
16541:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/__init__.pyc] Error 1 shuffle=1222960748
16619:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/exceptions/__init__.pyc] Error 1 shuffle=1222960748
16702:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/create.pyc] Error 1 shuffle=1222960748
16834:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/config.pyc] Error 1 shuffle=1222960748
17036:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/main.pyc] Error 1 shuffle=1222960748
17043:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/checkers.pyc] Error 1 shuffle=1222960748
17049:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/case.pyc] Error 1 shuffle=1222960748
17166:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/images2ims.pyc] Error 1 shuffle=1222960748
17338:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/map.pyc] Error 1 shuffle=1222960748
17500:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/__init__.pyc] Error 1 shuffle=1222960748
17609:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/errors.pyc] Error 1 shuffle=1222960748
17799:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/raster3d.pyc] Error 1 shuffle=1222960748
17806:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/db.pyc] Error 1 shuffle=1222960748
17920:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/__init__.pyc] Error 1 shuffle=1222960748
18355:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/extract.pyc] Error 1 shuffle=1222960748
18362:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/base.pyc] Error 1 shuffle=1222960748
18462:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/download.pyc] Error 1 shuffle=1222960748
96461:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/core/gcmd.pyc] Error 1 shuffle=1222960748
96492:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/vdigit/wxdisplay.pyc] Error 1 shuffle=1222960748
98803:make: *** [Makefile:71: default] Error 1 shuffle=1222960748
21 matches
1 files contained matches
1 files searched
8070239 bytes searched
0.016319 seconds

Full debug log (7.7 MB): compilationlog13.log

Details with main 3d06ba2d5192b112f24e4f6c9cdc39369e87eb54 (before r.mapcalc dependency)

Repro:

git checkout 3d06ba2d5192b112f24e4f6c9cdc39369e87eb54
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure \
    --prefix="$HOME/install/" \
    --enable-largefile \
    --with-cxx \
    --with-zstd \
    --with-bzlib \
    --with-blas \
    --with-lapack \
    --with-readline \
    --with-openmp \
    --with-pdal \
    --with-pthread \
    --with-tiff \
    --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos \
    --with-sqlite \
    --with-fftw \
    --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog14.log
ag shuffle= compilationlog14.log --stats
ag --after=1 --before=4  shuffle= compilationlog14.log --stats
16361:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/data.pyc] Error 1 shuffle=3359768792
16470:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/app.pyc] Error 1 shuffle=3359768792
16551:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/exceptions/__init__.pyc] Error 1 shuffle=3359768792
16650:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/__init__.pyc] Error 1 shuffle=3359768792
16657:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/mapset.pyc] Error 1 shuffle=3359768792
16663:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/create.pyc] Error 1 shuffle=3359768792
16806:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/config.pyc] Error 1 shuffle=3359768792
16974:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/__init__.pyc] Error 1 shuffle=3359768792
17164:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/operations.pyc] Error 1 shuffle=3359768792
17171:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/images2swf.pyc] Error 1 shuffle=3359768792
17351:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/reprojection_renderer.pyc] Error 1 shuffle=3359768792
17358:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/map.pyc] Error 1 shuffle=3359768792
17528:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/errors.pyc] Error 1 shuffle=3359768792
17535:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/robust.pyc] Error 1 shuffle=3359768792
17707:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/messages/__init__.pyc] Error 1 shuffle=3359768792
17790:make[6]: *** [Makefile:33: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/modules/__init__.pyc] Error 1 shuffle=3359768792
17797:make[6]: *** [Makefile:33: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/modules/shortcuts.pyc] Error 1 shuffle=3359768792
17945:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/raster/segment.pyc] Error 1 shuffle=3359768792
17956:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/raster/raster_type.pyc] Error 1 shuffle=3359768792
18107:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/vector/abstract.pyc] Error 1 shuffle=3359768792
18211:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/gis/region.pyc] Error 1 shuffle=3359768792
18484:make[6]: *** [Makefile:29: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/rpc/base.pyc] Error 1 shuffle=3359768792
18668:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/raster3d.pyc] Error 1 shuffle=3359768792
18679:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/db.pyc] Error 1 shuffle=3359768792
18777:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/__init__.pyc] Error 1 shuffle=3359768792
19226:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/stds_import.pyc] Error 1 shuffle=3359768792
19237:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/temporal_vector_algebra.pyc] Error 1 shuffle=3359768792
19336:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/download.pyc] Error 1 shuffle=3359768792
44508:make[4]: [Makefile:17: thumbnails] Error 1 (ignored) shuffle=3359768792
85428:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/srs.pyc] Error 1 shuffle=3359768792
96887:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/iscatt/frame.pyc] Error 1 shuffle=3359768792
96894:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/animation/g.gui.animation.pyc] Error 1 shuffle=3359768792
96900:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/vdigit/preferences.pyc] Error 1 shuffle=3359768792
98952:make: *** [Makefile:71: default] Error 1 shuffle=3359768792
34 matches
1 files contained matches
1 files searched
8055614 bytes searched
0.019161 seconds

Full compilation log: compilationlog14.log

Retry again:

git checkout 3d06ba2d5192b112f24e4f6c9cdc39369e87eb54
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure --prefix="$HOME/install/" --enable-largefile \
    --with-cxx --with-zstd --with-bzlib --with-blas --with-lapack \
    --with-readline --with-openmp --with-pdal --with-pthread \
    --with-tiff --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos --with-sqlite --with-fftw --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog15.log
ag shuffle= compilationlog15.log --stats
ag --after=1 --before=4  shuffle= compilationlog15.log --stats

only 17 matches this time

16416:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/data.pyc] Error 1 shuffle=2810300836
16423:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/__init__.pyc] Error 1 shuffle=2810300836
16542:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc] Error 1 shuffle=2810300836
16817:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/create.pyc] Error 1 shuffle=2810300836
16998:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/__init__.pyc] Error 1 shuffle=2810300836
17149:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/__init__.pyc] Error 1 shuffle=2810300836
17156:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/images2ims.pyc] Error 1 shuffle=2810300836
17325:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/setup.pyc] Error 1 shuffle=2810300836
17492:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/robust.pyc] Error 1 shuffle=2810300836
17596:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/__init__.pyc] Error 1 shuffle=2810300836
17807:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/core.pyc] Error 1 shuffle=2810300836
18253:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/univar_statistics.pyc] Error 1 shuffle=2810300836
18358:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/__init__.pyc] Error 1 shuffle=2810300836
45228:make[4]: [Makefile:17: thumbnails] Error 1 (ignored) shuffle=2810300836
81573:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_gdal_drv.pyc] Error 1 shuffle=2810300836
95631:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/core/settings.pyc] Error 1 shuffle=2810300836
97999:make: *** [Makefile:71: default] Error 1 shuffle=2810300836
17 matches
1 files contained matches
1 files searched
7974089 bytes searched
0.017566 seconds

Retry again:

git checkout 3d06ba2d5192b112f24e4f6c9cdc39369e87eb54
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure --prefix="$HOME/install/" --enable-largefile \
    --with-cxx --with-zstd --with-bzlib --with-blas --with-lapack \
    --with-readline --with-openmp --with-pdal --with-pthread \
    --with-tiff --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos --with-sqlite --with-fftw --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog16.log
ag shuffle= compilationlog16.log --stats
ag --after=1 --before=4  shuffle= compilationlog16.log --stats
16347:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/data.pyc] Error 1 shuffle=2901808682
16460:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc] Error 1 shuffle=2901808682
16538:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/exceptions/__init__.pyc] Error 1 shuffle=2901808682
16629:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/mapset.pyc] Error 1 shuffle=2901808682
16750:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/create.pyc] Error 1 shuffle=2901808682
16933:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/__init__.pyc] Error 1 shuffle=2901808682
16940:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/loader.pyc] Error 1 shuffle=2901808682
16946:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/utils.pyc] Error 1 shuffle=2901808682
17086:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/operations.pyc] Error 1 shuffle=2901808682
17284:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/map3d.pyc] Error 1 shuffle=2901808682
17291:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/interactivemap.pyc] Error 1 shuffle=2901808682
17301:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/setup.pyc] Error 1 shuffle=2901808682
17448:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/saferef.pyc] Error 1 shuffle=2901808682
17566:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/errors.pyc] Error 1 shuffle=2901808682
17743:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/raster3d.pyc] Error 1 shuffle=2901808682
17853:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/__init__.pyc] Error 1 shuffle=2901808682
18231:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/c_libraries_interface.pyc] Error 1 shuffle=2901808682
18339:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/download.pyc] Error 1 shuffle=2901808682
33956:make[4]: [Makefile:17: thumbnails] Error 1 (ignored) shuffle=2901808682
84863:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_cap_parsers.pyc] Error 1 shuffle=2901808682
95675:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/vnet/vnet_utils.pyc] Error 1 shuffle=2901808682
95690:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/wxplot/__init__.pyc] Error 1 shuffle=2901808682
98048:make: *** [Makefile:71: default] Error 1 shuffle=2901808682
23 matches
1 files contained matches
1 files searched
7995610 bytes searched
0.018379 seconds

It was only 23 matches, so the 34 problems was a "bad" seed (3359768792), but a "good" seed to trigger failures. I retried the 3359768792 seed and got back 30 matches, most of them were exactly the same files, the rest were in the same folders, except 1. The changes were only with pyc files. Not bad for reproducing the same ordering.

With this PR branch 16f0fc27559843b3f3b09ef219ba47f21116bc5f

Firest run:

git fetch https://github.com/OSGeo/grass.git pull/3425/head:fix_rmapcalc_make
git switch fix_rmapcalc_make
git checkout 16f0fc27559843b3f3b09ef219ba47f21116bc5f
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure --prefix="$HOME/install/" --enable-largefile \
    --with-cxx --with-zstd --with-bzlib --with-blas --with-lapack \
    --with-readline --with-openmp --with-pdal --with-pthread \
    --with-tiff --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos --with-sqlite --with-fftw --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog18.log
ag shuffle= compilationlog18.log --stats
ag --after=1 --before=4  shuffle= compilationlog18.log --stats
16366:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/__init__.pyc] Error 1 shuffle=3861392006
16489:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/results.pyc] Error 1 shuffle=3861392006
16651:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/mapset.pyc] Error 1 shuffle=3861392006
16770:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/__init__.pyc] Error 1 shuffle=3861392006
16939:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/invoker.pyc] Error 1 shuffle=3861392006
17090:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/__init__.pyc] Error 1 shuffle=3861392006
17288:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/timeseriesmap.pyc] Error 1 shuffle=3861392006
17295:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/map3d.pyc] Error 1 shuffle=3861392006
17474:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/errors.pyc] Error 1 shuffle=3861392006
17583:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/errors.pyc] Error 1 shuffle=3861392006
17760:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/__init__.pyc] Error 1 shuffle=3861392006
17865:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/reader.pyc] Error 1 shuffle=3861392006
18248:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/aggregation.pyc] Error 1 shuffle=3861392006
18350:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/__init__.pyc] Error 1 shuffle=3861392006
81704:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_base.pyc] Error 1 shuffle=3861392006
96177:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/rlisetup/g.gui.rlisetup.pyc] Error 1 shuffle=3861392006
98789:make: *** [Makefile:71: default] Error 1 shuffle=3861392006
17 matches
1 files contained matches
1 files searched
8087116 bytes searched
0.018825 seconds

second run:

git fetch https://github.com/OSGeo/grass.git pull/3425/head:fix_rmapcalc_make
git switch fix_rmapcalc_make
git checkout 16f0fc27559843b3f3b09ef219ba47f21116bc5f
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j10 --trace --shuffle --debug'
make --version
./configure --prefix="$HOME/install/" --enable-largefile \
    --with-cxx --with-zstd --with-bzlib --with-blas --with-lapack \
    --with-readline --with-openmp --with-pdal --with-pthread \
    --with-tiff --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos --with-sqlite --with-fftw --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog19.log
ag shuffle= compilationlog19.log --stats
ag --after=1 --before=4  shuffle= compilationlog19.log --stats
16376:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/__init__.pyc] Error 1 shuffle=2465814246
16494:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc] Error 1 shuffle=2465814246
16649:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/create.pyc] Error 1 shuffle=2465814246
16793:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/data.pyc] Error 1 shuffle=2465814246
16957:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/runner.pyc] Error 1 shuffle=2465814246
16972:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/__init__.pyc] Error 1 shuffle=2465814246
17098:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/__init__.pyc] Error 1 shuffle=2465814246
17283:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/utils.pyc] Error 1 shuffle=2465814246
17455:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/errors.pyc] Error 1 shuffle=2465814246
17581:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/errors.pyc] Error 1 shuffle=2465814246
17761:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/task.pyc] Error 1 shuffle=2465814246
17768:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/db.pyc] Error 1 shuffle=2465814246
17774:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/raster.pyc] Error 1 shuffle=2465814246
17872:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/reader.pyc] Error 1 shuffle=2465814246
18322:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/temporal_topology_dataset_connector.pyc] Error 1 shuffle=2465814246
18329:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/univar_statistics.pyc] Error 1 shuffle=2465814246
18339:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/sampling.pyc] Error 1 shuffle=2465814246
18421:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/__init__.pyc] Error 1 shuffle=2465814246
81125:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_drv.pyc] Error 1 shuffle=2465814246
95627:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/image2target/ii2t_mapdisplay.pyc] Error 1 shuffle=2465814246
97865:make: *** [Makefile:71: default] Error 1 shuffle=2465814246
21 matches
1 files contained matches
1 files searched
7992085 bytes searched
0.021805 seconds

I tried other times too. So it is pretty much equivalent, only pyc files fail like with main 25bc70d0f56d4fe6e9b426803459aad499e41251.

Would you want me to compare with releasebranch_8_3 too, before the change? it shouldn't have soo much different results.

echoix avatar Feb 16 '24 03:02 echoix

So after all the 25-30+ compilations I did tonight, this PR doesn't seem worse or better than the one on main.

I continued doing runs with this PR branch, and with this seed and infinite jobs, I caught some missing PNG for docs raster3d_layout. I didn't see more yet.

Details

git fetch https://github.com/OSGeo/grass.git pull/3425/head:fix_rmapcalc_make
git switch fix_rmapcalc_make
git checkout 16f0fc27559843b3f3b09ef219ba47f21116bc5f
export MAKEFLAGS=
make distclean
export MAKEFLAGS='-w -O -j --trace --shuffle --debug'
make --version
./configure --prefix="$HOME/install/" --enable-largefile \
    --with-cxx --with-zstd --with-bzlib --with-blas --with-lapack \
    --with-readline --with-openmp --with-pdal --with-pthread \
    --with-tiff --with-freetype \
    --with-freetype-includes="/usr/include/freetype2/" \
    --with-proj-share=/usr/share/proj \
    --with-geos --with-sqlite --with-fftw --with-netcdf
make CFLAGS='-fPIC ' CXXFLAGS='-fPIC ' 2>&1 | tee compilationlog22.log
ag --after=1 --before=4  shuffle= compilationlog22.log --stats
ag shuffle= compilationlog22.log --stats
17204:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/app/__init__.pyc] Error 1 shuffle=1098555767
17343:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/benchmark/runners.pyc] Error 1 shuffle=1098555767
17478:make[5]: *** [Makefile:21: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/experimental/create.pyc] Error 1 shuffle=1098555767
17612:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/history.pyc] Error 1 shuffle=1098555767
17623:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/grassdb/config.pyc] Error 1 shuffle=1098555767
17838:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/main.pyc] Error 1 shuffle=1098555767
17849:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/checkers.pyc] Error 1 shuffle=1098555767
17855:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/gunittest/__init__.pyc] Error 1 shuffle=1098555767
18005:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/imaging/operations.pyc] Error 1 shuffle=1098555767
18186:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/jupyter/utils.pyc] Error 1 shuffle=1098555767
18351:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pydispatch/robust.pyc] Error 1 shuffle=1098555767
18474:make[5]: *** [Makefile:37: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/errors.pyc] Error 1 shuffle=1098555767
18687:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/utils.pyc] Error 1 shuffle=1098555767
18694:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/__init__.pyc] Error 1 shuffle=1098555767
18700:make[5]: *** [Makefile:19: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/script/db.pyc] Error 1 shuffle=1098555767
18800:make[5]: *** [Makefile:27: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/semantic_label/__init__.pyc] Error 1 shuffle=1098555767
19232:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/extract.pyc] Error 1 shuffle=1098555767
19239:make[5]: *** [Makefile:28: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/factory.pyc] Error 1 shuffle=1098555767
19336:make[5]: *** [Makefile:20: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/python/grass/utils/__init__.pyc] Error 1 shuffle=1098555767
57337:make[3]: *** [../../include/Make/HtmlRules.make:14: /home/e-c/grass/dist.x86_64-pc-linux-gnu/docs/html/raster3d_layout.png] Error 1 shuffle=1098555767
91487:make[3]: *** [../../include/Make/ScriptRules.make:16: /home/e-c/grass/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_base.pyc] Error 1 shuffle=1098555767
104582:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/mapswipe/__init__.pyc] Error 1 shuffle=1098555767
104598:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/gui_core/query.pyc] Error 1 shuffle=1098555767
104619:make[3]: *** [Makefile:41: /home/e-c/grass/dist.x86_64-pc-linux-gnu/gui/wxpython/nviz/__init__.pyc] Error 1 shuffle=1098555767
107065:make: *** [Makefile:71: default] Error 1 shuffle=1098555767
25 matches
1 files contained matches
1 files searched
8500386 bytes searched
0.017961 seconds

echoix avatar Feb 16 '24 04:02 echoix