From f844689f858d4bb744e59eadaaf984d3fd0b5b50 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 17 Oct 2017 17:49:26 +0200 Subject: [PATCH] Suppress _dl_runtime_resolve_avx_slow for memcheck conditional. glibc ld.so has an optimization when resolving a symbol that checks whether or not the upper 128 bits of the ymm registers are zero. If so it uses "cheaper" instructions to save/restore them using the xmm registers. If those upper 128 bits contain undefined values memcheck will issue an Conditional jump or move depends on uninitialised value(s) warning whenever trying to resolve a symbol. This triggers in our sh-mem-vecxxx test cases. Suppress the warning by default. https://bugs.kde.org/show_bug.cgi?id=385868 --- NEWS | 1 + glibc-2.X.supp.in | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/NEWS b/NEWS index b043c580cd..50c0097d3e 100644 --- a/NEWS +++ b/NEWS @@ -65,6 +65,7 @@ n-i-bz Fix missing workq_ops operations (macOS) 385210 PPC64, vpermr instruction could exhaust temporary memory 385183 PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp instructions 385334 PPC64, fix vpermr, xxperm, xxpermr mask value. +385868 glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning. Release 3.13.0 (15 June 2017) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/glibc-2.X.supp.in b/glibc-2.X.supp.in index 8edeb4a8ac..126e8b3381 100644 --- a/glibc-2.X.supp.in +++ b/glibc-2.X.supp.in @@ -236,3 +236,15 @@ Memcheck:Cond fun:_dl_relocate_object } + +# glibc ld.so has an optimization when resolving a symbol that checks +# whether or not the upper 128 bits of the ymm registers are zero. If +# so it uses "cheaper" instructions to save/restore them using the xmm +# registers. If those upper 128 bits contain undefined values memcheck +# will issue an Conditional jump or move depends on uninitialised value(s) +# warning whenever trying to resolve a symbol. +{ + dl-trampoline-sse-avx + Memcheck:Cond + fun:_dl_runtime_resolve_avx_slow +} -- 2.47.3