Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


On Thursday 30 of January 2020, Thorsten Behrens wrote:
Luboš Luňák wrote:
 So what is the actual need there, if any? Not just Mac, but CI
builds in general.

Discussion was prompted by the news item that Firefox CI went for
cross-building on Mac. And since we were facing similar scalability
issues (that are solved at this time), the ESC thought about if (and
how) that could be an option for us.

For example, there should be another way to speed Mac builds by
cross-compiling, namely using icecream to handle that. Icecream has
a very simple-to-use support for cross-compiling, it'd require only
setting up Linux build node(s) and Mac would still run the build
itself, so there'd be no need to alter the build system besides
setting CC/CXX.

That's an absolute brilliant idea, as it also transparently solves the
(non-tiny) catch that for running _tests_, Firefox was still relying
on physical Mac hardware (though of course fewer of them needed).

Would that work more or less out of the box?

 More or less, yes. The Linux machines don't need any special setup besides 
being icecream nodes. The Mac machine would need compiler setup, which 
besides setting CC/CXX for icecream would also mean creating cross-compiling 
compiler environment tarball.

 That is (poorly) described at 
https://github.com/icecc/icecream/#cross-compiling-using-icecream . In a 
nutshell, since Clang is a cross-compiler out of the box, it should require 
only:
- run 'create-icecc-env /clang/binary' on a Linux box , where the Clang binary 
would be a Linux build of Clang that would be used by the Linux nodes for the 
cross-compiling (it should preferably be exactly the same Clang version as 
the one used on the Mac).
- move the resulting tarball to the Mac machine and set something 
like "ICECC_VERSION=x86_64:/compiler/tarball.tar.gz" (I think that'd prevent 
building on the Mac itself, so it really should need running create-icecc-env 
also on the Mac itself and then actually 
setting "ICECC_VERSION=/compiler/mac.tar.gz,x86_64:/compiler/linux.tar.gz").

 I did this myself just once somewhen in the past (and with Cygwin/gcc), but 
this should be more or less it. I can help with the details or any problems 
(I should finally update the icecream docs for cross-compiling anyway).

-- 
 Luboš Luňák
 l.lunak@collabora.com

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.