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!

3 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…