[Bug build/31316] Fails test misc/tst-dirname "Didn't expect signal from child: got `Illegal instruction'" on non SSE CPUs

fweimer at redhat dot com sourceware-bugzilla@sourceware.org
Tue Feb 13 17:48:32 GMT 2024


https://sourceware.org/bugzilla/show_bug.cgi?id=31316

--- Comment #7 from Florian Weimer <fweimer at redhat dot com> ---
These diagnostics look fine.

I think the issue is that in sysdeps/i386/i686/multiarch/memrchr-sse2.S, we
have

strong_alias (__memrchr_sse2, __GI___memrchr)

under #if IS_IN (libc). This unconditionally sets the default implementation
for libc.so.6 to the SSE2 one. That should probably be in
sysdeps/i386/i686/multiarch/memrchr-c.c, for __memrchr_ia32.

Completely untested:

diff --git a/sysdeps/i386/i686/multiarch/memrchr-c.c
b/sysdeps/i386/i686/multiarch/memrchr-c.c
index ef7bbbe792..20bfdf3af3 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-c.c
+++ b/sysdeps/i386/i686/multiarch/memrchr-c.c
@@ -5,3 +5,4 @@ extern void *__memrchr_ia32 (const void *, int, size_t);
 #endif

 #include "string/memrchr.c"
+strong_alias (__memrchr_ia32, __GI___memrchr)
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
index d9dae04171..e123f87435 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
@@ -720,5 +720,4 @@ L(ret_null):
        ret

 END (__memrchr_sse2)
-strong_alias (__memrchr_sse2, __GI___memrchr)
 #endif

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Glibc-bugs mailing list