ca5b02
Based on the following patch posted upstream and awaiting IBM review:
ca5b02
https://sourceware.org/pipermail/libc-alpha/2021-November/132856.html
ca5b02
ca5b02
Author: Florian Weimer <fweimer@redhat.com>
ca5b02
Date:   Tue Nov 9 18:50:55 2021 +0100
ca5b02
ca5b02
    s390: Use long branches across object boundaries (jgh instead of jh)
ca5b02
    
ca5b02
    Depending on the layout chosen by the linker, the 16-bit displacement
ca5b02
    of the jh instruction is insufficient to reach the target label.
ca5b02
    
ca5b02
    Analysis of the linker failure was carried out by Nick Clifton.
ca5b02
    
ca5b02
    Tested on a z13 and z15, s390x-linux-gnu only.
ca5b02
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
ca5b02
ca5b02
diff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S
ca5b02
index b59d60acf0f6aaa0..4faede0cd2f942e3 100644
ca5b02
--- a/sysdeps/s390/memmem-arch13.S
ca5b02
+++ b/sysdeps/s390/memmem-arch13.S
ca5b02
@@ -41,7 +41,7 @@ ENTRY(MEMMEM_ARCH13)
ca5b02
 #  error The arch13 variant of memmem needs the z13 variant of memmem!
ca5b02
 # endif
ca5b02
 	clgfi	%r5,9
ca5b02
-	jh	MEMMEM_Z13
ca5b02
+	jgh	MEMMEM_Z13
ca5b02
 
ca5b02
 	aghik	%r0,%r5,-1		/* vll needs highest index.  */
ca5b02
 	bc	4,0(%r14)		/* cc==1: return if needle-len == 0.  */
ca5b02
diff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S
ca5b02
index faa969849e09c2e1..ffc34c2523ce635a 100644
ca5b02
--- a/sysdeps/s390/strstr-arch13.S
ca5b02
+++ b/sysdeps/s390/strstr-arch13.S
ca5b02
@@ -49,7 +49,7 @@ ENTRY(STRSTR_ARCH13)
ca5b02
 #  error The arch13 variant of strstr needs the z13 variant of strstr!
ca5b02
 # endif
ca5b02
 	clgfi	%r4,9
ca5b02
-	jh	STRSTR_Z13
ca5b02
+	jgh	STRSTR_Z13
ca5b02
 
ca5b02
 	/* In case of a partial match, the vstrs instruction returns the index
ca5b02
 	   of the partial match in a vector-register.  Then we have to