trompeloeil
trompeloeil copied to clipboard
ci: use setup-cpp to install the compilers
This uses setup-cpp to install the C++ tools https://github.com/aminya/setup-cpp/
https://github.com/aminya/trompeloeil/actions/runs/1551038387

Does the libc++ installation script expect a certain llvm installation path?
setup-cpp installs llvm in ~/llvm by default (installation path is also accessible from ${{ env.LLVM_PATH }})
Apologies for being a bit silent, but I will get back to you in a couple of days. I much appreciate the work you're doing. Thanks.
Codecov Report
Merging #266 (f083f90) into main (c9c0df9) will decrease coverage by
21.98%. The diff coverage isn/a.
@@ Coverage Diff @@
## main #266 +/- ##
===========================================
- Coverage 97.75% 75.77% -21.99%
===========================================
Files 1 1
Lines 890 875 -15
===========================================
- Hits 870 663 -207
- Misses 20 212 +192
| Impacted Files | Coverage Δ | |
|---|---|---|
| include/trompeloeil.hpp | 75.77% <0.00%> (-21.99%) |
:arrow_down: |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
On the libc++ build/install-script. It's only there because not all versions have readily available downloads (as .deb packages.) If setup-cpp provides the right libc++ versions already, that step can be removed.
Apologies for being a bit silent, but I will get back to you in a couple of days. I much appreciate the work you're doing. Thanks.
You're welcome!
On the libc++ build/install-script. It's only there because not all versions have readily available downloads (as .deb packages.) If setup-cpp provides the right libc++ versions already, that step can be removed.
setup-cpp downloads the original llvm releases, which usually include the libcxx. It does not use apt for this. So, I think we can try removing it. If there is a separate installation step required for libcxx, we can add it to setup-cpp
The libcxx issue is fixed. It required using the correct LLVM_PATH and also passing the CPPFLAGS and LDFLAGS to cmake.
The only remaining thing is installing gcc-4.9, which for some reason is rejected by apt although its ppa is already added. How did you do that before? 🤔
Yay! Everything is fixed now. 🎉
The failures are due to missing coverage reports on some versions, which I think is unrelated to this PR. Right?
I'm not so sure that it is unrelated to the PR. If you look at the "Collect Coverage" step for gcc 4.8, it says:
kcov: error while loading shared libraries: libopcodes-2.34-system.so: cannot open shared object file: No such file or directory
Why is that library missing here?
I updated kcov to v39 because it does not need to be built from the source this way. It might rely on some shared libraries that are missing in the old GCC installer. I need to try install missing packages and see if the issue is fixed.
Sorry for not paying much attention, but the push to finish things before Christmas was a bit intense.
I've looked into the current state, and tried to figure out how to move forward, but I haven't been that successful.
All builds that use ubuntu-18.04 fail because kcov needs binutils-2.34, but the one installed is 2.30. I then tried to use ubuntu-20.04 also for the older compilers, but that failed for completely different reasons. Now C++ standard headers cannot be found, so it looks like libstdc++ and libc++ are not available, or in paths that the compiler cannot find. I had hoped to reach a state where it all builds, but perhaps with some missing functionality, but unfortunately I have failed.
Of course, a different route forward, that may be easier, is to scrap kcov (it's not like I'm married to it) and use normal coverage builds instead. I have to read up on how to use it with the CI codecov-action, but I presume it's a normal enough use to be reasonably straight forward.