FYI: what it takes for RAM+swap to build devel/llvm40 with 4 processors or cores and WITH__DEBUG= (powerpc64 example)
Matthew Rezny
rezny at freebsd.org
Thu Mar 30 17:26:45 UTC 2017
On Thursday 30 March 2017 17:06:48 Alexey Dokuchaev wrote:
> On Mon, Mar 27, 2017 at 11:41:40AM +0200, Dimitry Andric wrote:
> > On 26 Mar 2017, at 23:36, Mark Millard <markmi at dsl-only.net> wrote:
> > > ...
> > > Also interesting was:
> > >
> > > Installed packages to be REMOVED:
> > > llvm40-4.0.0.r4
> > >
> > > Number of packages to be removed: 1
> > >
> > > The operation will free 49 GiB.
> >
> > Yes, this is big. But there is no real need to build the llvm ports
> > with debug information, unless you want to hack on llvm itself.
>
> Cc'ing jmd@ and rezny at .
>
> I've been watching increasing size of our LLVM packages with increasing
> worry. This is from my tinderbox cache:
>
> $ % env LANG=C ls -lh llvm3*
> -rw-r--r-- 1 root wheel 17M Jan 29 2016 llvm35-3.5.2_1.txz
> -rw-r--r-- 1 root wheel 18M Mar 7 2016 llvm36-3.6.2_2.txz
> -rw-r--r-- 1 root wheel 27M Feb 28 01:05 llvm37-3.7.1_4.txz
> -rw-r--r-- 1 root wheel 207M Jan 19 18:20 llvm38-3.8.1_5.txz
> -rw-r--r-- 1 root wheel 244M Mar 23 16:42 llvm39-3.9.1_2.txz
>
> Dimitry, do you know what had causes such a huge bump in 37 -> 38?
>
> They take lots of time to build and package. And given that llvm
> is indirect dependency of any X11-related port, it pessimises their
> build times as well (devel/libclc now requires devel/llvm40 after
> r437268).
>
> With 49 GiB llvm40, I guess I won't be able to build-test post as my
> hardware would just not be capable enough.
>
> ./danfe
LLVM 3.8 introduced the option to build a shared LLVM library, which is what
Mesa needs for use at runtime (for e.g. compiling shaders), separate from
linking to it. Previous versions only had one option, if the library was built
then all the LLVM binaries were staticly linked to it.
LLVM devs state that static linking the LLVM binaries is only for developer
use, users should not do that. Mesa's need was causing distributions to ship
static linked LLVM binaries against that advice. So, they added a pair of
switches so that we can separately control whether that library is built
(required for Mesa) and used to link LLVM binaries (not desired).
llvm{35,36,37} are statically linked and thus smaller than normal. llvm38
switched to dynamic linking, the default, thus the size grew. llvm39 added the
library Mesa needs (we didn't turn on the option in llvm38 since Mesa jumped
from 37 to 39), so it grew a little more. I assume llvm40 will be a bit
bigger, but do not expect to see another jump as you've observed.
More information about the freebsd-current
mailing list