[cfe-dev] How clang from packages is build?

Ivan Krasin via cfe-dev cfe-dev at lists.llvm.org
Thu Sep 22 10:21:46 PDT 2016


Hi Mehdi,

yes, on Linux we do 2-stage build exactly for this reason.
For the reference, the code is
https://cs.chromium.org/chromium/src/tools/clang/scripts/update.py?q=update.py&sq=package:chromium&dr=C&l=564
and we don't make use of LLVM_ENABLE_LTO at the moment (no good reason I
can think of)

krasin

On Thu, Sep 22, 2016 at 9:26 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:

>
> On Sep 22, 2016, at 9:19 AM, Hans Wennborg <hans at chromium.org> wrote:
>
> On Thu, Sep 22, 2016 at 9:09 AM, Mehdi Amini <mehdi.amini at apple.com>
> wrote:
>
>
> On Sep 22, 2016, at 8:58 AM, Hans Wennborg <hans at chromium.org> wrote:
>
> On Thu, Sep 22, 2016 at 12:51 AM, Sylvestre Ledru via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
>
> Le 22/09/2016 à 03:33, Mehdi Amini a écrit :
>
> Hi,
>
> I was wondering the same thing recently and Hans pointed me to
> llvm/utils/release.
>
> It turns out we’re not using LTO :(
> (Neither PGO…)
>
> In the Debian/Ubuntu packages (and this is general to packaging), we are:
> * relying on the build system of the application itself
> * adding some flags like "-g -O2" and the fortify options
> https://wiki.debian.org/Hardening
>
> For the linker, for the LLVM toolchain, it depends if the version of
> binutils in the distro has it or not (at least 2.23.1-1~exp3).
> Here, for the Debian & Ubuntu packages, I am using binutils gold but not
> sure the LTO option is set to the llvm build system?!
>
> However, happy to try that (I think this should be part of the build
> system,
> at least for LTO).
>
>
> I think that's what the -LLVM_ENABLE_LTO={Full,Thin} option is for,
> but it's not enabled by default.
>
>
> So, what about changing this?
>
>
> I don't know how practical it would be at the moment. Would most build
> environments support it? It seems to assume Clang is being built by
> Clang, and that the gold plugin (which I think requires the binutils
> headers to build) is around.
>
>
> Aren’t you doing a 2-stage build? In which case the stage-2 always has
> clang available.
> It requires Gold on linux probably, but on OSX the system linker supports
> LTO.
>
> At minima the OSX build could have it enabled without risk of failure.
>
>> Mehdi
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160922/4a4260dd/attachment.html>


More information about the cfe-dev mailing list