[Mesa-dev] The long way to a faster build with shared libs and some fixes ...
Marek Olšák
maraeo at gmail.com
Wed Sep 11 17:03:32 PDT 2013
BTW, the build system fixes would be good to have anyway, but I'm not
an expert on the Mesa build system.
Marek
On Thu, Sep 12, 2013 at 1:51 AM, Marek Olšák <maraeo at gmail.com> wrote:
> I don't like this. I prefer to have one big blob for whole Mesa as
> discussed on Eric's blog:
>
> http://anholt.livejournal.com/43652.html
>
> I have no problem with longer compile times for release builds if I
> get a little bit higher CPU performance with link-time optimizations.
> And for debug builds, we can stick to standard "-O2 -g" or "-O0 -g".
>
> Marek
>
> On Thu, Sep 12, 2013 at 12:32 AM, Johannes Obermayr
> <johannesobermayr at gmx.de> wrote:
>> [PATCH 01/21] ilo: Fix out-of-tree build.
>>
>> [PATCH 02/21] Suppress clang's warnings about unused CFLAGS and CXXFLAGS.
>>
>> [PATCH 03/21] configure.ac: Save user {C,CXX}FLAGS and append them at end.
>>
>> [PATCH 04/21] radeon: Build and use libradeon the right way.
>> Link libradeon only once in egl-static
>>
>> [PATCH 05/21] gallium/targets: Make use of prebuilt libdricommon.la.
>> Avoid duplicate build.
>>
>> [PATCH 06/21] Drop support for --enable-static / --disable-shared.
>>
>> [PATCH 07/21] gallium/auxiliary: Build libgallium shared.
>> Hundreds of symbols to be PUBLIC. But saves on a full build
>> 19 x ~ 1.8 MB.
>>
>> [PATCH 08/21] Drop last parts of compatibility for the old Mesa build
>> I want it to avoid these stupid symlinks while distro build but
>> with more work on follow-up patches it should be possible to keep
>>
>> [PATCH 09/21] mapi: Build libglapi always shared.
>> I assume it could be improved later
>>
>> [PATCH 10/21] mesa: Build libmesa shared.
>> Hundreds of PUBLICs but we can get rid of libdricore and get an
>> libmesadri which depends as well as libmesagallium on a libmesacore.
>> This really speeds up build since duplicate build in libdricore
>> with all PUBLIC can be avoided.
>> Also dlopen classic drivers should be faster.
>>
>> [PATCH 11/21] Install all internal shared libs to $(libdir)/mesa-$VERSION.
>>
>> [PATCH 12/21] Also do it for egl_gallium.so, pipe_*.so and gbm_gallium_drm.
>>
>> [PATCH 13/21] Makefile.am: s:-no-undefined:-Wl,--no-undefined to make it work.
>> libtool will set it back to allow_undefined=yes in func_mode_link ()
>> otherwise.
>>
>> [PATCH 14/21] gallium/drivers: Build libs -shared.
>>
>> [PATCH 15/21] vdpau,xvmc: Add install-data-hooks to remove unneccessary symlinks.
>> libvdpau_*.so.1 and libXvMC*.so libs are dlopened by wrappers.
>> Nothing should link them directly.
>>
>> [PATCH 16/21] glx: Get rid of libglx.la.
>>
>> [PATCH 17/21] gbm: Get rid of libgbm_dri.la.
>>
>> [PATCH 18/21] i915: Conditionally build an i915g driver instead of
>>
>> [PATCH 19/21] freedreno: Make print_sequence a macro to fix clang.
>>
>> [PATCH 20/21] freedreno: One Makefile.am with a Makefile.sources is
>>
>> [PATCH 21/21] clover: Force gcc and g++ to fix clang builds.
>>
>>
>> openSUSE x86_64 binary RPMs will look like this:
>> $ du -a etc/ usr/
>> 4 etc/drirc
>> 8 etc/
>> 88 usr/lib64/libXvMCr600.so
>> 140 usr/lib64/libEGL.so.1.0.0
>> 0 usr/lib64/libGL.so.1.2
>> 380 usr/lib64/libGL.so.1.2.0
>> 0 usr/lib64/libGLESv1_CM.so.1
>> 88 usr/lib64/libXvMCr300.so
>> 36 usr/lib64/libXvMCsoftpipe.so
>> 212 usr/lib64/mesa-9.2.0/libllvmpipe.so
>> 608 usr/lib64/mesa-9.2.0/libmesadri.so
>> 324 usr/lib64/mesa-9.2.0/libmesagallium.so
>> 1140 usr/lib64/mesa-9.2.0/libnouveau.so
>> 60 usr/lib64/mesa-9.2.0/libtrace.so
>> 60 usr/lib64/mesa-9.2.0/pipe_r600.so
>> 308 usr/lib64/mesa-9.2.0/libr300.so
>> 20 usr/lib64/mesa-9.2.0/libgalahad.so
>> 16 usr/lib64/mesa-9.2.0/libnoop.so
>> 32 usr/lib64/mesa-9.2.0/librbug.so
>> 60 usr/lib64/mesa-9.2.0/pipe_r300.so
>> 60 usr/lib64/mesa-9.2.0/pipe_radeonsi.so
>> 164 usr/lib64/mesa-9.2.0/egl_gallium.so
>> 152 usr/lib64/mesa-9.2.0/libglapi.so
>> 136 usr/lib64/mesa-9.2.0/libradeonsi.so
>> 16 usr/lib64/mesa-9.2.0/libr300-helper.so
>> 16 usr/lib64/mesa-9.2.0/libidentity.so
>> 8 usr/lib64/mesa-9.2.0/pipe_nouveau.so
>> 184 usr/lib64/mesa-9.2.0/libsvga.so
>> 1888 usr/lib64/mesa-9.2.0/libgallium.so
>> 20 usr/lib64/mesa-9.2.0/gbm_gallium_drm.so
>> 1016 usr/lib64/mesa-9.2.0/libr600.so
>> 20 usr/lib64/mesa-9.2.0/pipe_vmwgfx.so
>> 3228 usr/lib64/mesa-9.2.0/libmesacore.so
>> 152 usr/lib64/mesa-9.2.0/libsoftpipe.so
>> 8 usr/lib64/mesa-9.2.0/pipe_swrast.so
>> 9912 usr/lib64/mesa-9.2.0
>> 0 usr/lib64/libOSMesa.so.8
>> 0 usr/lib64/libxatracker.so.1
>> 64 usr/lib64/dri/swrast_dri.so
>> 184 usr/lib64/dri/nouveau_vieux_dri.so
>> 116 usr/lib64/dri/r600_dri.so
>> 288 usr/lib64/dri/radeon_dri.so
>> 876 usr/lib64/dri/i965_dri.so
>> 320 usr/lib64/dri/r200_dri.so
>> 116 usr/lib64/dri/r300_dri.so
>> 120 usr/lib64/dri/radeonsi_dri.so
>> 72 usr/lib64/dri/nouveau_dri.so
>> 4 usr/lib64/dri/updates/README.updates
>> 8 usr/lib64/dri/updates
>> 324 usr/lib64/dri/i915_dri.so
>> 84 usr/lib64/dri/vmwgfx_dri.so
>> 2576 usr/lib64/dri
>> 28 usr/lib64/libgbm.so.1.0.0
>> 0 usr/lib64/libGL.so.1
>> 8 usr/lib64/libwayland-egl.so.1.0.0
>> 116 usr/lib64/libxatracker.so.1.0.0
>> 32 usr/lib64/libOSMesa.so.8.0.0
>> 28 usr/lib64/libGLESv1_CM.so.1.1.0
>> 0 usr/lib64/libGLESv2.so.2
>> 112 usr/lib64/vdpau/libvdpau_radeonsi.so.1
>> 112 usr/lib64/vdpau/libvdpau_r300.so.1
>> 68 usr/lib64/vdpau/libvdpau_softpipe.so.1
>> 68 usr/lib64/vdpau/libvdpau_nouveau.so.1
>> 112 usr/lib64/vdpau/libvdpau_r600.so.1
>> 476 usr/lib64/vdpau
>> 32 usr/lib64/libGLESv2.so.2.0.0
>> 0 usr/lib64/libEGL.so.1
>> 36 usr/lib64/libXvMCnouveau.so
>> 0 usr/lib64/libwayland-egl.so.1
>> 0 usr/lib64/libgbm.so.1
>> 13980 usr/lib64
>> 28 usr/share/doc/packages/Mesa/COPYING
>> 4 usr/share/doc/packages/Mesa/README.THREADS
>> 8 usr/share/doc/packages/Mesa/README.QUAKE
>> 4 usr/share/doc/packages/Mesa/README.MITS
>> 4 usr/share/doc/packages/Mesa/README.UVD
>> 12 usr/share/doc/packages/Mesa/README.CYGWIN
>> 64 usr/share/doc/packages/Mesa
>> 68 usr/share/doc/packages
>> 72 usr/share/doc
>> 76 usr/share
>> 14060 usr/
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list