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

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


I don't recall any specific problems, but yeah, could be that there're some.

On Thu, Sep 22, 2016 at 10:29 AM, Hans Wennborg <hans at chromium.org> wrote:

> In Chromium we only build the gold plugin with LTO though, not Clang
> itself. IIRC (but my memory is hazy), we ran into problems when we
> tried that?
>
> On Thu, Sep 22, 2016 at 10:21 AM, Ivan Krasin <krasin at google.com> wrote:
> > 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/22234242/attachment.html>


More information about the cfe-dev mailing list