[Mesa-dev] The long way to a faster build with shared libs and some fixes ...
Johannes Obermayr
johannesobermayr at gmx.de
Wed Sep 11 17:06:35 PDT 2013
I am preferring a full build:
../configure --libdir=/usr/lib64 --includedir=/usr/include --bindir=/usr/bin --prefix=/usr --sysconfdir=/etc --enable-xvmc --enable-vdpau --enable-texture-float --enable-debug --with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast --with-gallium-drivers=freedreno,i915,ilo,nouveau,r300,r600,radeonsi,svga,swrast --enable-dri --enable-glx --enable-osmesa --enable-gles1 --enable-gles2 --enable-openvg --enable-gbm --enable-xa --enable-gallium-egl --enable-gallium-llvm --enable-gallium-gbm --enable-r600-llvm-compiler --enable-opencl --enable-gallium-g3dvl --enable-glx-tls
Most of other build tests were done by aboll - kudo to Andreas for this.
Required libs and PUBLICs were detected in hundreds of builds - you don't believe but linkers want to play and don't report all missing symbols in one library at once ;)
My last was --enable-osmesa --with-dri-drivers="" --with-gallium-drivers="...":
I decided not to build additionally the required libmesadri for this but use a fallback to the more reasonable --enable-osmesa-gallium which uses libmesagallium (see in [PATCH 10/21]).
I have used/tested them heavily on nouveau (Nvidia ION), r600 (AMD Fusion) and r200 (Mobility Radeon 9000) for a longer time. I bet also other hardware/drivers will not make problems.
IMHO it is not a change in functionality but a rightsizing of existing code.
Maybe it is an already-to-use alternative to megadrivers project. Sorry Eric but your LiveJournal message inspired me to hurry up! ;)
Johannes
Am Mittwoch, 11. September 2013, 16:01:55 schrieb Tom Stellard:
> Hi Johannes,
>
> Could explain how you tested these patches: The configure flags you
> used to build as well as the applications/hardware you used for testing.
>
> Thanks,
> Tom
>
> On Thu, Sep 12, 2013 at 12:32:38AM +0200, Johannes Obermayr 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