[OE-core] [PATCH V3] mesa: Disable asm on musl

Khem Raj raj.khem at gmail.com
Wed Oct 3 13:32:34 UTC 2018


On Wed, Oct 3, 2018 at 2:12 AM Burton, Ross <ross.burton at intel.com> wrote:
>
> Perfect. :)  Did you file a bug upstream, or shall I copy/paste that
> into a bug now?

i did not. thanks in advance if you can
>
> Ross
> On Wed, 3 Oct 2018 at 01:49, Khem Raj <raj.khem at gmail.com> wrote:
> >
> > Musl started blocking dlopen of libs with initial-exec references into
> > dynamic TLS area, via
> >
> > https://github.com/kraj/musl/commit/5c2f46a214fceeee3c3e41700c51415e0a4f1acd
> >
> > prior to that commit, musl was loading it and silently letting
> > subsequent TLS accesses via the miscompiled code clobber memory that
> > didn't belong to them
> >
> > This was wrong behavior and it relied on additional space reserved by
> > libc in TLS space to adjust fo such broken libs, but it also fails
> > with glibc if the reserved space was already used up
> >
> > Right fix is that  mesa should be patched to remove all the
> > initial-exec hacks and use real TLS, and -mtls-dialect=gnu2 (TLSDESC)
> > should be used on archs it's supported on (i386, x86_64, and aarch64)
> > to make up for the lost performance, but mesa hardcodes the initial-exec,
> > so there must be a reason that probably is better known to mesa devs.
> >
> > but we 'fixed' it for musl by adding --disable-glx-tls for mesa in OE,
> > which uses pthread_getspecific instead and makes is lot slower.
> >
> > this caused additional problems with security flags on, it get textrels
> > in .text segment. Therefore this is 'second fix' to get us through this
> > warning.
> >
> > Cause is some unknown part of mesa's x86 assembly code is broken by
> > readonly text segments
> >
> > [ YOCTO #12918 ]
> >
> > Signed-off-by: Khem Raj <raj.khem at gmail.com>
> > ---
> > V3: Disable asm just on x86, since it works well elsewhere
> >
> >  meta/recipes-graphics/mesa/mesa.inc | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
> > index 8d0e2cb67c..0dfdfbd5b4 100644
> > --- a/meta/recipes-graphics/mesa/mesa.inc
> > +++ b/meta/recipes-graphics/mesa/mesa.inc
> > @@ -108,6 +108,8 @@ PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind"
> >
> >  EXTRA_OECONF_remove_libc-musl = "--enable-glx-tls"
> >  EXTRA_OECONF_append_libc-musl = " --disable-glx-tls"
> > +EXTRA_OECONF_append_libc-musl_x86 = " --disable-asm"
> > +
> >  # llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2)
> >  FULL_OPTIMIZATION_append = " -fno-omit-frame-pointer"
> >
> > --
> > 2.19.0
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list