[Mesa-dev] [PATCH] mesa: Enable LTO compilation

Chuck Atkins chuck.atkins at kitware.com
Tue May 31 15:07:12 UTC 2016

I only build with swr and llvmpipe.  I generally don't have use for the GPU
drivers so my configure line is typically:

  --enable-opengl --disable-gles1 --disable-gles2
  --disable-va --disable-gbm --disable-xvmc --disable-vdpau
  --disable-dri --with-dri-drivers=
  --enable-gallium-llvm --enable-llvm-shared-libs
  --disable-egl --disable-gbm --with-egl-platforms=

With gcc 5.3.1 I end up with lib{GL,OSMesa}.so @ 44M and libswrAVX{,2}.so @
70M.  With flto turned on it drops WAY down to lib{GL,OSMesa}.so @ 13M and
libswrAVX{,2}.so @ 18M

- Chuck

On Tue, May 31, 2016 at 10:57 AM, Emil Velikov <emil.l.velikov at gmail.com>

> On 31 May 2016 at 15:34, Chuck Atkins <chuck.atkins at kitware.com> wrote:
>> I've been using lto for the past several weeks not for performance
>> reasons but to reduce the resulting binary size which has grown to be
>> rather substantial.  I usually set "-flto -ffat-lto-objects
>> -flto-odr-type-merging" in the CFLAGS and CXXFLAGS env vars prior to
>> configure and have yet to experience any problems with the files in mapi./
>> Thanks for the confirmation Chuck. It matches what I'm seeing when
> building using only "-flto".
> On the binary size topic - please make sure you include only the drivers
> that you need in --with-dri-drivers and --with-gallium-drivers. Otherwise
> you'll end up with 'megadrivers' (all the drivers in a single binary) with
> hardlinks for each driver instance. The latter is for backwards
> compatibility.
> -Emil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160531/f7335a1f/attachment-0001.html>

More information about the mesa-dev mailing list