The segfaults caused by BINDNOW are x86-specific.

Limit the blacklisting to x86 systems and add further documentation, why
BINDNOW has to be blacklisted.

Signed-off-by: Michael Tretter <[email protected]>
---
 rules/igt-gpu-tools.make | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/rules/igt-gpu-tools.make b/rules/igt-gpu-tools.make
index a2d9f4d5a221..734db1d07e8c 100644
--- a/rules/igt-gpu-tools.make
+++ b/rules/igt-gpu-tools.make
@@ -29,10 +29,16 @@ IGT_GPU_TOOLS_LICENSE_FILES := \
 # Prepare
 # ----------------------------------------------------------------------------
 
-# For some reason, intel_gpu_frequency and other segfault immediately if
-# built with -Wl,-z,now.
+# On x86 systems, libigt resolves igt_half_to_float and igt_float_to_half as
+# indirect functions at runtime by checking CPU features with igt_x86_features.
+# The igt_x86_features function is implemented is a different object and the
+# call uses the PLT itself. If lazy binding is disabled, this causes a segfault
+# while resolving the symbols for libigt on x64 systems. Disable BINDNOW on X86
+# systems to prevent the segfaults.
+ifdef PTXCONF_ARCH_X86
 IGT_GPU_TOOLS_WRAPPER_BLACKLIST := \
        TARGET_HARDEN_BINDNOW
+endif
 
 IGT_GPU_TOOLS_LIBDRM-y                                 :=
 ifdef PTXCONF_ARCH_X86
-- 
2.39.2


Reply via email to