Open waarmond opened 4 months ago
Please post the full error with surrounding context.
Is LC_ALL=C necessary?
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/bin.x86_64-pc-linux-gnu“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/bin.x86_64-pc-linux-gnu“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/include/grass“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/include/grass“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/lib“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/lib“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/bin“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/bin“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/driver“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/driver“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/driver/db“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/driver/db“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/fonts“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/fonts“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/html“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/html“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/man“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/man“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/man/man1“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/docs/man/man1“ wird ignoriert
../include/Make/Rules.make:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/utils“ wird überschrieben
../include/Make/Rules.make:16: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/utils“ wird ignoriert
../include/Make/Rules.make:19: Warnung: Das Rezept für das Ziel „OBJ.x86_64-pc-linux-gnu“ wird überschrieben
../include/Make/Rules.make:19: Warnung: Das alte Rezept für das Ziel „OBJ.x86_64-pc-linux-gnu“ wird ignoriert
../include/Make/Rules.make:56: Warnung: Das Rezept für das Ziel „clean“ wird überschrieben
../include/Make/Rules.make:56: Warnung: Das alte Rezept für das Ziel „clean“ wird ignoriert
WARNING: Weisberg-Bingham's W'' cannot be used for n < 50 or n > 99
make[4]: *** [../../include/Make/Html.make:14: r.geomorphon.tmp.html] Fehler 1
Makefile:13: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc/d.polar“ wird überschrieben
../../include/Make/ScriptRules.make:19: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc/d.polar“ wird ignoriert
Makefile:16: Warnung: Das Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc/db.test“ wird überschrieben
../../include/Make/ScriptRules.make:19: Warnung: Das alte Rezept für das Ziel „./src/grass/dist.x86_64-pc-linux-gnu/etc/db.test“ wird ignoriert
Creating translations (= 'make mo')
3361 übersetzte Meldungen, 164 ungenaue Übersetzungen, 747 unübersetzte Meldungen.
0 übersetzte Meldungen, 4272 unübersetzte Meldungen.
646 übersetzte Meldungen, 86 ungenaue Übersetzungen, 3540 unübersetzte Meldungen.
2192 übersetzte Meldungen, 142 ungenaue Übersetzungen, 1938 unübersetzte Meldungen.
po/grasswxpy_de.po:20658: Mehrfachdefinition der Meldung...
po/grasswxpy_de.po:4581: ...dies ist die Stelle der ersten Definition
msgfmt: found 1 fatal error
make[3]: *** [Makefile:100: ./src/grass/dist.x86_64-pc-linux-gnu/locale/de/LC_MESSAGES/grasswxpy.mo] Fehler 1
The "Cannot parse interface for module r.geomorphon." message is not a fatal error. GRASS GIS should compile regardless of these messages. With that said, the message is likely an indication of another error. r.geomorphon is one of the tools which should compile in any case (hence there is no flag to disable that one). Aren't there other messages but for other tools?
Is there a list of directories at the end of the compilation output with errors? It looks like this:
make[1]: Nothing to be done for 'manifests'.
make[1]: Leaving directory '/home/vpetras/Projects/grass/code/grass'
GRASS GIS 8.4.0dev 4f0137d0fb compilation log
--------------------------------------------------
Started compilation: Thu 23 May 2024 09:11:04 PM EDT
--
Errors in:
/home/vpetras/Projects/grass/code/grass/scripts/g.extension
--
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 23 May 2024 09:11:39 PM EDT
There is apparently a duplicate message after yesterday's gettext update in #3729:
po/grasswxpy_de.po:20658: Mehrfachdefinition der Meldung...
po/grasswxpy_de.po:4581: ...dies ist die Stelle der ersten Definition
msgfmt
We need to deduplicate the file in a new PR (and optimize the pot file update procedure).
See also #3465
[./r.geomorphon]$ LC_ALL=C make
if [ "./grass/dist.x86_64-pc-linux-gnu/bin/r.geomorphon" != "" ] ; then GISRC=./grass/dist.x86_64-pc-linux-gnu/demolocation/.grassrc84 GISBASE=./grass/dist.x86_64-pc-linux-gnu PATH="./grass/dist.x86_64-pc-linux-gnu/bin:./grass/dist.x86_64-pc-linux-gnu/bin:./grass/dist.x86_64-pc-linux-gnu/scripts:$PATH" PYTHONPATH="./grass/dist.x86_64-pc-linux-gnu/etc/python:./grass/dist.x86_64-pc-linux-gnu/gui/wxpython:$PYTHONPATH" LD_LIBRARY_PATH="./grass/dist.x86_64-pc-linux-gnu/bin:./grass/dist.x86_64-pc-linux-gnu/bin:./grass/dist.x86_64-pc-linux-gnu/scripts:./grass/dist.x86_64-pc-linux-gnu/lib:./grass/dist.x86_64-pc-linux-gnu/lib:/usr/lib/dri/:" LC_ALL=C LANG=C LANGUAGE=C ./grass/dist.x86_64-pc-linux-gnu/bin/r.geomorphon --html-description < /dev/null | grep -v '</body>\|</html>\|</div> <!-- end container -->' > r.geomorphon.tmp.html ; fi
make: *** [../../include/Make/Html.make:14: r.geomorphon.tmp.html] Error 1
rm r.geomorphon.tmp.html
Now I'm getting to the Pudel's Kern:
./src/grass/dist.x86_64-pc-linux-gnu/bin/r.geomorphon: error while loading shared libraries: libgrass_raster.8.4.so: cannot open shared object file:
which exists at ./src/grass/dist.x86_64-pc-linux-gnu/lib/libgrass_raster.8.4.so
GDB mistake
Just before continuing further, was the whole grass all configured+compiled fresh, or its an incremental compilation with existing libraries or installation on the system?
I've deinstalled my existing grass installation. The build is happening through an ArchLinux PKGBUILD with a clean /src folder.
We need to deduplicate the file in a new PR
Done in #3733
@waarmond reopening in case there are other issues.
Thanks for reopening. Sadly I won't be able to recompile before tomorrow.
Here is the strace of my r.geomorphon crash:
openat(AT_FDCWD, "/usr/etc/ucx/ucx.conf", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x55ec34d73ea0} ---
Does anybody know openucx from OpenMPI ?
These error don't seem to be related to GRASS GIS. There is no OpenMPI or MPI specific code in this repo. Some very specific local system configuration or misconfiguration?
Here is the strace of my r.geomorphon crash:
This is a red herring. Run under GDB to get a backtrace of crash or under valgrind if memory corruption is suspected based on the GDB backtrace. Do you use any exotic compiler or flags (e.g. -O3)? Although recently we have done a great job to make code base not so GCC specific and cleaned up a lot of warnings, I am certain there is still a lot to do.
Is r.geomorphon using GDAL?
Via gdal → armadillo → arpack → OpenMPI I had broken it.
gdb:
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x0000555555562ea0 in dirname ()
Concerning GDAL:
Now I'm getting to the Pudel's Kern:
./src/grass/dist.x86_64-pc-linux-gnu/bin/r.geomorphon: error while loading shared libraries: libgrass_raster.8.4.so: cannot open shared object file:
which exists at ./src/grass/dist.x86_64-pc-linux-gnu/lib/libgrass_raster.8.4.so
What does ldd
report on the binary?
Describe the bug
I can't finish the GRASS build due to one module not compiling:
Cannot parse interface for module r.geomorphon. Empty strings will be placed instead of description and keywords. Reason: Unable to fetch interface description for command '<r.geomorphon>'.
This is certainly my fault. Is there any way to disable one specific module at configuration time?
To reproduce
System description
Additional context