[Mesa-dev] static version of osmesa is missing llvm symbols, bug?
Burlen Loring
burlen.loring at gmail.com
Tue Mar 11 17:08:34 PDT 2014
yep, I'm using 10.1.0 and also noticed the same in 9.2.2.
in short static linking is essential for reasonable performance of
parallel applications on Cray systems. In this scenario the application
is duplicated across 100s/1000s of compute nodes which share a
remote-parallel file system (Lustre/GPFS). As a dynamically linked
application starts, shared library loading hit's the file system hard.
However, Cray suggests users run static linked executables. Their
application launcher bypasses the file system and copies statically
linked executable directly into a ram fs onto the set of compute nodes
that a given job is scheduled to run on. This avoids file system
contention that would be introduced by a parallel application's shared
library loading.
I maintain and support ParaView and interactive OpenGL based rendering
application on NERSC's Crays. Given that this is an interactive
application, having a reasonable startup time is important. Users have
complained and I've observed times when using shared libraries when app
startup takes more than 30 min! if we build fully static executable
startup time is reduced to seconds.
For me statically linked mesa is important, which is why I want to
report this. Without OSMesa we can't use these systems, and the new
llvmpipe OSMesa state tracker has been really awesome, allowing us to do
things we couldn't in the past without GPUs. I hope that you don't
discontinue static link support.
We have experienced some segfaults in llvmpipe OSMesa in the static
linked version (bt shows SEGV at
create_jit_texture_type.isra.1 at draw_llvm.c:128). If I can reproduce this
off the Cray I will file a bug report. Thought I'd mention in case you
can confirm that there is a known issue with the static link.
Thanks
Burlen
On 03/11/2014 03:13 PM, Emil Velikov wrote:
> On 11/03/14 20:31, Burlen Loring wrote:
>> Hi All,
>>
> Hi Burlen
>
>> When I make a static build of mesa with osmesa+llvm, all of the llvm
>> related symbols are undefined in the resulting libOSMesa.a archive.
>> There is an "la" file produced that lists the dependencies, however
>> shouldn't those all be linked into the installed archive? for reference
>> see my configure line below.
>>
> Earlier today I have pushed a patch [1] for mesa that completely
> disabled static building for all of mesa.
>
> While that may not be the reason for the problem you're seeing (afaics
> you're using mesa 10.1.0 and my patch just made it into master) it
> would be great if you can let us know what the your use case of
> static OSMesa is, so that we can evaluate the situation.
>
>
> Many thanks
> Emil
>
> P.S. With the commit [1] --enable-static --disable-shared will produce
> an warning message and will fall back to --disable-static
> --enable-shared.
>
> [1]
> http://cgit.freedesktop.org/mesa/mesa/commit/?id=a6efbac9fb502c4f0166e7a0680b6828e1f6926c
>
>> Burlen
>>
>>
>> Mesa-10.1.0$make distclean; autoreconf -fi; ./configure CXXFLAGS="-O2 -g
>> -fPIC -DDEFAULT_SOFTWARE_DEPTH_BITS=31" CFLAGS="-O2 -g -fPIC
>> -DDEFAULT_SOFTWARE_DEPTH_BITS=31" --enable-static=yes --enable-shared=no
>> --disable-xvmc --disable-glx --disable-dri --with-dri-drivers=
>> --with-gallium-drivers=swrast --enable-texture-float
>> --disable-shared-glapi --disable-egl --with-egl-platforms=
>> --enable-gallium-osmesa --enable-gallium-llvm=yes
>> --with-llvm-prefix=/work/apps/llvm/3.2/
>> --prefix=/work/apps/mesa-10.1.0-a && make -j2 && make -j4 install
>> _______________________________________________
>> 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