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

Burton, Ross ross.burton at intel.com
Wed Oct 3 09:12:06 UTC 2018


Perfect. :)  Did you file a bug upstream, or shall I copy/paste that
into a bug now?

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