Dear Basilisk Users,
I recently updated my Ubuntu to 22.04.3. Now, I can't compile in parallel anymore.
Here is what I have:
1. I reinstalled Basilisk (I ended up removing the whole folder and do every step from the beginning). The code compiles but I get the same warnings
as here:
"./qcc -std=c99 -D_XOPEN_SOURCE=700 -O2 -g -Wall -pipe -D_FORTIFY_SOURCE=2 -autolink bview.c -o bview2D -lfb_tiny -lm
.qcc2CeENS/bview.c:1:7: warning: line number out of range
/home/riviere/Documents/basilisk/src/.qcc2CeENS//:1:7: warning: line number out of range
<built-in>: warning: line number out of range
/usr/include/stdc-predef.h:1:7: warning: line number out of range
./qcc -std=c99 -D_XOPEN_SOURCE=700 -O2 -g -Wall -pipe -D_FORTIFY_SOURCE=2 -autolink -grid=octree bview.c -o bview3D -lfb_tiny -lm
.qccIQjRZk/bview.c:1:7: warning: line number out of range
/home/riviere/Documents/basilisk/src/.qccIQjRZk//:1:7: warning: line number out of range
<built-in>: warning: line number out of range
/usr/include/stdc-predef.h:1:7: warning: line number out of range"
2. Compilation in serial works but with a few warnings (the same as above).
For instance, compiling the first version of the tutorial (namely, just include St Venant and then run) with:
make bump.tst
gives:
.qccWEblOB/bump.c:1:7: warning: line number out of range
bump-cpp.c: warning: line number out of range
<built-in>: warning: line number out of range
/usr/include/stdc-predef.h:1:7: warning: line number out of range
But the code seems to run fine.
3. Finally, if I tried to compile the same code in parallel
(either using the standard makefile: CC='mpicc -D_MPI=4' make bump.tst or by hand), it does not work.
Here is a subset of the warnings and errors I get:
"/home/riviere/Documents/basilisk/src/grid/tree-mpi.h: In function ‘mpi_boundary_refine’:
/home/riviere/Documents/basilisk/src/grid/tree-mpi.h:1071:5: warning: ‘MPI_Waitall’ accessing 1 byte in a region of size 0 [-Wstringop-overflow=]
/home/riviere/Documents/basilisk/src/grid/tree-mpi.h:1071:5: note: referencing argument 3 of type ‘struct MPI_Status *’
In file included from /usr/include/x86_64-linux-gnu/mpich/mpi.h:977,
from /home/riviere/Documents/basilisk/src/common.h:21:
/usr/include/x86_64-linux-gnu/mpich/mpi_proto.h:592:5: note: in a call to function ‘MPI_Waitall’
/home/riviere/Documents/basilisk/src/grid/tree-mpi.h: In function ‘mpi_boundary_refine’:
/home/riviere/Documents/basilisk/src/grid/tree-mpi.h:1071:5: warning: ‘MPI_Waitall’ accessing 1 byte in a region of size 0 [-Wstringop-overflow=]
/home/riviere/Documents/basilisk/src/grid/tree-mpi.h:1071:5: note: referencing argument 3 of type ‘struct MPI_Status *’
/usr/include/x86_64-linux-gnu/mpich/mpi_proto.h:592:5: note: in a call to function ‘MPI_Waitall’
/usr/bin/ld : /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-irecv.o) : dans la fonction « MPIDI_OFI_do_irecv.constprop.0 » :
(.text+0x1803) : référence indéfinie vers « fi_strerror »
/usr/bin/ld : (.text+0x1878) : référence indéfinie vers « fi_strerror »
/usr/bin/ld : /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-irecv.o) : dans la fonction « MPIDIG_do_irecv.constprop.0 » :
(.text+0x33e3) : référence indéfinie vers « fi_strerror »
/usr/bin/ld : (.text+0x3509) : référence indéfinie vers « fi_strerror »
/usr/bin/ld : /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-isend.o) : dans la fonction « MPIDI_OFI_do_am_isend_rdma_read.constprop.0 » :
(.text+0x161d) : référence indéfinie vers « fi_strerror »
/usr/bin/ld : /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-isend.o):(.text+0x1add) : encore plus de références indéfinies suivent vers « fi_strerror »"
etc....
I get the same result when trying to compile any of the Basilisk's examples so it's not related to St Venant.
Has any of you experienced the same problem and managed to solve it?
qcc --version: 11.4.0
mpicc --version: gcc 11.4.0
mpirun --version: 4.0
Thank you for your help,
Aliénor