GnatCOV in Alire (22.01) and in GitHub (24.0)

Hello,
I would be interesting in getting hold of GNATCoverage 24.0 to make use of its latest functionality to target coverage reports only for specific subprograms.

However, I have tried to look at the build instructions and they do not work as they look deprecated e.g., setup command is no longer available in the Makefile and I am having issues with alire build environment for Linux.

In summary, would it be possible to update the alire crate for gnatcov?

Alire - Gnatcov

By doing so we can have the latest version by using the convenient alire tool and would save us the issues with github installations.

Thanks a lot.
Sam.

2 Likes

Hi,

Is there any progress on this? I’d be interested in 24.0 too. Unfortunately, I couldn’t build it using alire either.
Many thanks!

I tried to build gnatcov 24.0 using the gprbuild_24 branch of GNAT-FSF-builds.
When building gnatcov.gpr, linking with libadalang.a threw a bunch of “undefined reference” errors on the adasat library functions.

# Start with the 64-bit gnatcov, which has the largest closure
gprbuild -Pgnatcov.gpr -p -j0 -XBUILD_MODE=prod -XBINUTILS_SRC_DIR="/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/src" -XBINUTILS_BUILD_DIR="/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build" -XC_SUPPORT=False  -largs -v -cargs:c++  -gargs -XPART=gnatcov64
gnatcov.gpr:145:07: warning: value "compiler" is not used as label
Link
   [link]         gnatcov_bits_specific.adb
Using built-in specs.
COLLECT_GCC=/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/g++
COLLECT_LTO_WRAPPER=/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../src/configure --prefix=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/gcc/install --with-build-time-tools=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/binutils/install/bin --enable-languages=c,ada,c++ --enable-libstdcxx --enable-libstdcxx-threads --enable-libada --disable-nls --without-libiconv-prefix --disable-libstdcxx-pch --enable-lto --disable-multilib --enable-threads=posix --with-gnu-ld --with-gnu-as --with-mpfr=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/mpfr/install --with-gmp=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/gmp/install --with-mpc=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/mpc/install --with-isl=/home/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-linux/isl/install --build=x86_64-pc-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.1.0 (GCC) 
COMPILER_PATH=/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.1.0/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/
LIBRARY_PATH=/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib64/../lib64/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib/../lib64/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib64/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib64/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/zlib/install/lib/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/lib/:/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatutil/install/lib/gnat_util/static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll/install/lib/gnatcoll.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_dom.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_sax.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_unicode.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_input.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_schema.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr/install/lib/gpr/static/gpr/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr2/install/lib/gpr2.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_gmp.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_iconv.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/lib/adasat.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/lib/langkit_support.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/rts/lib-gnatcov_rts.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/build/static/obj/prod/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr2/install/lib/gpr2.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/lib/adasat.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/lib/langkit_support.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_iconv.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_gmp.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr/install/lib/gpr/static/gpr/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_schema.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_input.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_unicode.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_sax.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_dom.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll/install/lib/gnatcoll.static/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/' '-L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/build/static/obj/prod/' '-static-libgcc' '-o' 'gnatcov64' '-mtune=generic' '-march=x86-64' '-dumpdir' 'gnatcov64.'
 /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.1.0/collect2 -plugin /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.1.0/liblto_plugin.so -plugin-opt=/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4kXeYJ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o gnatcov64 /lib/x86_64-linux-gnu/crt1.o /lib/x86_64-linux-gnu/crti.o /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/crtbegin.o -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatutil/install/lib/gnat_util/static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll/install/lib/gnatcoll.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_dom.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_sax.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_unicode.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_input.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_schema.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr/install/lib/gpr/static/gpr/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr2/install/lib/gpr2.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_gmp.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_iconv.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/lib/adasat.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/lib/langkit_support.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/rts/lib-gnatcov_rts.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/build/static/obj/prod/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr2/install/lib/gpr2.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/lib/adasat.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/lib/langkit_support.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_iconv.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_gmp.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr/install/lib/gpr/static/gpr/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_schema.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_input.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_unicode.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_sax.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_dom.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll/install/lib/gnatcoll.static/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/build/static/obj/prod/ -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0 -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib64/../lib64 -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib/../lib64 -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib64 -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gmp/install/lib -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/zlib/install/lib -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/lib -L/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../.. gnatcov_bits_specific.o /tmp/GPR.5704/GNAT-TEMP-000005.TMP libgnatcov.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/rts/lib-gnatcov_rts.static/libgnatcov_rts.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/libadalang.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/lib/langkit_support.static/liblangkit_support.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/lib/adasat.static/libadasat.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr2/install/lib/gpr2.static/libgpr2.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_iconv.static/libgnatcoll_iconv.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll-bindings/install/lib/gnatcoll_gmp.static/libgnatcoll_gmp.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcoll/install/lib/gnatcoll.static/libgnatcoll.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libgpr/install/lib/gpr/static/gpr/libgpr.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_schema.static/libxmlada_schema.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_dom.static/libxmlada_dom.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_sax.static/libxmlada_sax.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_input.static/libxmlada_input_sources.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/xmlada/install/lib/xmlada/xmlada_unicode.static/libxmlada_unicode.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatutil/install/lib/gnat_util/static/libgnat_util.a -lgmp -ldl /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnarl.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnat.a -lutil -lrt -lpthread -ldl /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnarl.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnat.a -lutil -lrt -lpthread -ldl /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnarl.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib/libgnat.a -lrt -lpthread -ldl -rpath-link /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0//adalib /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/opcodes/libopcodes.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/bfd/libbfd.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/libiberty/libiberty.a /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/libsframe/.libs/libsframe.a -lz -z origin -rpath $ORIGIN/:$ORIGIN/../../../../../..//gnatutil/install/lib/gnat_util/static:$ORIGIN/../../../../../..//gnatcoll/install/lib/gnatcoll.static:$ORIGIN/../../../../../..//xmlada/install/lib/xmlada/xmlada_dom.static:$ORIGIN/../../../../../..//xmlada/install/lib/xmlada/xmlada_sax.static:$ORIGIN/../../../../../..//xmlada/install/lib/xmlada/xmlada_unicode.static:$ORIGIN/../../../../../..//xmlada/install/lib/xmlada/xmlada_input.static:$ORIGIN/../../../../../..//xmlada/install/lib/xmlada/xmlada_schema.static:$ORIGIN/../../../../../..//libgpr/install/lib/gpr/static/gpr:$ORIGIN/../../../../../..//libgpr2/install/lib/gpr2.static:$ORIGIN/../../../../../..//gnatcoll-bindings/install/lib/gnatcoll_gmp.static:$ORIGIN/../../../../../..//gnatcoll-bindings/install/lib/gnatcoll_iconv.static:$ORIGIN/../../../../../..//libadalang/install/lib/libadalang.static:$ORIGIN/../../../../../..//adasat/install/lib/adasat.static:$ORIGIN/../../../../../..//langkit_support/install/lib/langkit_support.static:$ORIGIN/../..//rts/lib-gnatcov_rts.static:$ORIGIN/../../../../../..//base_gcc/install/lib/gcc/x86_64-pc-linux-gnu/14.1.0/adalib:$ORIGIN/../../../../../..//libadalang/build/static/obj/prod:$ORIGIN/../../../../../..//langkit_support/build/static/obj/prod -Bstatic -lstdc++ -Bdynamic -lm -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/crtend.o /lib/x86_64-linux-gnu/crtn.o
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: warning: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/traces_elf.o: requires executable stack (because the .note.GNU-stack section is executable)
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/libadalang.a(p__adalang_0.o): in function `libadalang__implementation__solver__check__cleanup.244':
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/langkit_support/install/include/langkit_support.static/langkit_support-adalog-solver.adb:1975:(.text+0x70732c): undefined reference to `adasat__formulas__image'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/libadalang.a(p__adalang_0.o): in function `libadalang__implementation__solver__dpll_adalog__solve_internal__setup_backjumpXnn.189':
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/include/adasat.static/adasat-dpll.adb:600:(.text+0x72135e): undefined reference to `adasat__internals__literal_vectors__empty_vector'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/include/adasat.static/adasat-dpll.adb:600:(.text+0x721363): undefined reference to `adasat__internals__literal_vectors___assign'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/libadalang/install/lib/libadalang.static/libadalang.a(p__adalang_0.o): in function `libadalang__implementation__solver__dpll_adalog__solve_internal__unit_propagateXnn.186':
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/adasat/install/include/adasat.static/adasat-dpll.adb:618:(.text+0x793ed5): undefined reference to `adasat__internals__literal_vectors__empty_vector'

The langkit_support.anod specification includes adasat as a dependency. Adasat compiled without any problems.

I think the pull request comes from Fabien Chouteau: Gprbuild 24 by Fabien-Chouteau · Pull Request #73 · alire-project/GNAT-FSF-builds · GitHub

Any ideas would be greatly appreciated.

I haven’t tried myself, but I suggest you to try removing -flto option from adasat.gpr I had an issue with it when built als.

Thanks, the situation is better now! :slight_smile:
Now it only complains about the references “gnat_version_string”, “ZSTD_compress” and “ZSTD_decompress”:

/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: warning: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatcov/src/tools/gnatcov/obj64/prod/traces_elf.o: requires executable stack (because the .note.GNU-stack section is executable)
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/gnatutil/install/lib/gnat_util/static/libgnat_util.a(gnatvsn.o): in function `gnatvsn__gnat_version_string':
gnatvsn.adb:(.text+0x11b): undefined reference to `gnat_version_string'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: gnatvsn.adb:(.text+0x137): undefined reference to `gnat_version_string'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/bfd/libbfd.a(compress.o): in function `decompress_contents':
compress.c:(.text+0xdfd): undefined reference to `ZSTD_decompress'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: compress.c:(.text+0xe0d): undefined reference to `ZSTD_isError'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/binutils-gnatcov/build/bfd/libbfd.a(compress.o): in function `bfd_compress_section_contents':
compress.c:(.text+0x11f3): undefined reference to `ZSTD_compress'
/home/ptihanyi/temp/GNAT-FSF-builds-gprbuild_24/sbx/x86_64-linux/base_gcc/install/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: compress.c:(.text+0x1203): undefined reference to `ZSTD_isError'
collect2: error: ld returned 1 exit status
gprbuild: link of gnatcov_bits_specific.adb failed

Missed -lzstd linker option?

Finally I managed to build gnatcov 24.0!

The solution to the missing “gnat_version_string” reference was to use the gnatutil.anod definition file from the GNAT-FSF-builds “main” branch instead of the one in the current “gprbuild_24” branch. This uses the version gnat_util-20.0w-20190814-1532A, and the “gprbuild_24” branch uses 14.1.0. I don’t know what this means. It is encouraging that it built without errors, and we are using it in the main branch as well.
In addition, I had to change the type of a variable in osint.adb from Long_Integer to Long_Long_Integer:

   function OS_Time_To_GNAT_Time (T : OS_Time) return Time_Stamp_Type is
      GNAT_Time : Time_Stamp_Type;

      TI : Long_Long_Integer := To_C (T);
      Y  : Year_Type;
      Mo : Month_Type;
      D  : Day_Type;
      H  : Hour_Type;
      Mn : Minute_Type;
      S  : Second_Type;

Removing the “-flto” in adasat.gpr solved the problem with the adasat references.

The solution to the ZSTD errors was the following:
binutils.anod contains two types of configuration settings: a general one and one specifically for gnatcov.
This part looks like this:

        if self.for_gnatcov:
           configure.add("--disable-ld",
                         "--disable-gdb",
                         "--disable-gdbserver",
                         "--disable-libquadmath",
                         "--disable-nls",
                         "--disable-readline",
                         "--disable-sim",
                         "--disable-werror",
                         "--enable-gprofng=no",
                         "--with-static-standard-libraries",
                         "--without-zstd",
                         "--enable-targets=all")
           # For embedded only?
           configure.add("--enable-multilib")

        else:
           configure.add(
               "--disable-nls",
               "--disable-shared",
               "--disable-werror",
               "--with-zlib",
               "--without-zstd",
               "--disable-compressed-debug-sections",
               "--disable-separate-code",
               "--disable-gdb",
               "--disable-sim",
               "--disable-libquadmath",
               "--disable-readline",
           )

The general one has “–without-zstd” (and it is the same in the main branch of GNAT-FSF-builds).
The script uses a different configuration for gnatcov, and the “–without-zstd” is omitted. I added it here as well, and it helped.

With these changes, gnatcov built without errors.
I don’t know how well it is, but maybe this information will help others!

5 Likes

I tested the gnatcov 24.0 I just built and was quite disappointed: it cannot create html reports.
The html report requires a package called GNATquilt, which is installed in the lib/gnatcoverage/gnatquilt directory.

The gnatcov executable checks for the existence of the gnatquilt library.
If it does not exist, it exits with the error "Dynamic HTML report format support is not installed.".
If the gnatquilt library exists (even as an empty directory), it creates the javascript files for the report.

What can we learn about the GNATquilt package? The documentation is quite brief. I think it contains the html and css files for the html report and may be part of GNATPro.
It’s a shame that this feature was removed from the opensource package…

Hello,

I try from time to time to re-introduce code coverage in my project, following the template project GitHub - alire-project/ada_spark_workflow: A demo of best practices for open-source Ada/SPARK development · GitHub

Updating to gnat 15.2.1 now works on my sources (before there was a regression respect to gnat 14). I am happy to remove the requirement on gnat version from my alire.toml.

I had hoped the situation would also have evolved on the GNAT Coverage side. Unfortunately, it seems to be still 22.01 in Alire, and doesn’t recognized some Ada 2022 features, and fail with some internal error.

Am I missing something?

1 Like

You can use shtml to get the old html output format, it’s just not documented.

Thanks for the idea! Do you have any experience with how to build v26.0.0 in an Alire environment?

I’ve got it installed locally but I don’t remember what I did. I think I used Alire’s build script and modified it until it worked: GitHub - alire-project/GNAT-FSF-builds: Builds of the GNAT Ada compiler from FSF GCC releases · GitHub

There’s a PR for 26 there, however it doesn’t work as-is.

We plan to have a more recent gnatcov builds available in by mid-2026.

7 Likes

Can’t wait for this. I have been waiting for years.

Does anybody how or if possible to integrate gnatcov and gnat-arm-emulator? (I know the GNAT Pro can do it but not sure if is achievable with the free tools.)

By the way double error on my side : first I was not using 15.2, because even after doing `alr toolchain –select` and choosing 15, my alire/settings.toml contained some `toolchain.use.gnat=gnat_native=14…`.

Don’t remember where it come from..

And second the regression was more a control missing in gnat 14.

package B is

   type Node is …

   type Node_Access is access Node;

end B;

limited with B;

package A is

   type C is record

      N : B.Node_Access; -- was already illegal for gnat 14

   end record;

   procedure P (N : B.Node_Access); –- was accepted by gnat 14. 

end A;

(not obvious for me why N : access B.Node is OK and N : B.Node_Access is not, but I’ll bet there is a good reason!)

When you use limited with all types become incomplete. In the specific case of an access type it would probably be fine for it to be a complete view instead, but why complicate the language like that?

Thanks, I knew there was a good reason! :smile: