Jenkins testing against more compiler versions (was Re: FreeBSD C compiler version)

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Harald Welte laforge at gnumonks.org
Tue May 9 05:03:42 UTC 2017


Hi Vadim,

On Tue, May 09, 2017 at 04:09:22AM +0700, Vadim Yanitskiy wrote:
> As I mentioned above, my suggestion is to keep the source code
> "as portable as possible", which doesn't mean absolutely portable.

> I suggest to perform checks on the same platforms as we currently do,
> but additionally to have both Clang and GCC on both slaves.
> [...]
>
>   - different distributions provide different versions available
>     out of the box, i.e. some (such as FreeBSD) provide the latest
>     version, while some other provide a bit dated versions;
>   - some things may change in newer versions, e.g. from my recent
>     experience: Clang 4.0 has support of the __builtin_cpu_supports
>     built-in, while older versions don't.

I'm not quite sure if I follow your argument here.  From my point of
view, the importance is that we test build on those platforms/compilers
that most of our users actually use.  So I would rather argue for
testing with (the gcc versions of) various recent releases of popular
GNU/Linux distributions or on different CPUs such as ARM, than to
introduce a compiler version that isn't even included in latest FreeBSD
(11).

> I see the only disadvantage of this approach - longer total build
> time. So, if you guys support this idea, I could do all configuration
> and installation related work. 

Thanks.  I guess the question is if people generally agree that it is
useful.  I'm not entirely convinced that we should do build testing on
more compiler versions.

Also, as a compromise proposal: we don't necessarily have to do it as
part of the testing of each and every commit.  It might be sufficient to
do this e.g. once as part of a daily/nightly job which sends e-mails to
the author of the commit that broke?

> Also, I'll try to contribute some computing power to Jenkins: there
> are some servers in my university, which power isn't used anyhow, so
> they mostly idle all the time.

Thanks for your offer. However, I'm not quite sure if we should do
something like that without official permission.  Paying for another
rented server should generally not be a problem:  An AMD Ryzen hexa-core
3.6GHz machine with 32GB RAM and SSD is available for 58.31 EUR per month.

> Here I found the problem. [...]
> 
> Adding SIMD flags to a whole project breaks portability between
> different CPUs, so I added these flags for viterbi_sse.lo only.
> Now the problem seems solved.

Yes, that's basically the same error as osmo-trx did with using
"-march=native": Using optimization flags of the build CPU and assuming
that the CPU you later run on will be the exact same CPU type.  That's
really only useful on systems like Gentoo where everybody builds
everything from source on the very system they run the code on.

Regards,
	Harald
-- 
- Harald Welte <laforge at gnumonks.org>           http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)



More information about the OpenBSC mailing list