Closed frederic-mahe closed 6 years ago
Today, I've written a script that automatically tests swarm's compilation with GCC 4.8.5, 4.9, 5.1, 5.2, 5.3, 5.4, 5.5, 6.1, 6.2, 6.3, 6.4, 7.1, 7.2, 7.3, and 8.0. All but 8.0 pass without errors or warnings.
I've also written a script that tests swarm's compilation with clang 3.8, 3.9, 5.0, 6.0 and 7 (packages' source). No warnings or errors.
I have access to a machine with the following gcc versions: 4.4.7, 4.7.2, 4.9.0, 5.1.0, 6.1.0, 4.8.0, 4.9.1, 5.2.0, 6.3.0, 4.8.2, 4.9.2, 5.3.0, 7.2.0. Travis CI also has support for multiple gcc versions.
I think we should continue to support all these versions.
I usually compile swarm (and vsearch) with gcc 4.9.2 for the binary releases, because it then refers to libraries that are available on all systems. Newer version will link to newer libraries that are not always available.
The only problems seems to be the warning generated by gcc 4.4.7 and 4.7.2 due to the -Wpedantic
option. I can modify the Makefile
to include this option only with gcc 4.8 and later.
I can modify the Makefile to include this option only with gcc 4.8 and later.
That would be the best solution (use -pedantic
if $VERSION < 4.8).
It seems like the -pedantic
option is supported by all versions, while -Wpedantic
is only supported by 4.8 and later. The simplest solution is therefore to go for just -pedantic
. That fix is now committed.
OK. We should keep an eye on that issue though. The option -pedantic
is deprecated since GCC 4.8 and might disappear from future GCC versions:
The new option -Wpedantic is an alias for -pedantic, which is now deprecated.
swarm compiles without warnings with -pedantic
on all GCC versions (from 4.8 to 8.0).
On one of the clusters I have access to, only GCC 4.4.7 is available:
swarm's compilation fails with GCC 4.4.7:
As of today, GCC's supported releases are:
Should we keep trying to get swarm to compile with older GCC releases (namely, older than 6.4)?