29 lines
1.1 KiB
Diff
29 lines
1.1 KiB
Diff
|
Add diagnostics for missing z14 support. Not yet upstream. Discussion
|
||
|
is here:
|
||
|
|
||
|
s390x: Diagnose missing VXE at run time if required at build time
|
||
|
<https://sourceware.org/pipermail/libc-alpha/2021-April/124834.html>
|
||
|
|
||
|
The approach implemented by upstream will likely be slightly different
|
||
|
(if upstream takes the patch at all). dl_platform_init does not work
|
||
|
for POWER because POWER9 instructions are used in __tunables_init,
|
||
|
which is called before DL_PLATFORM_INIT/dl_platform_init.
|
||
|
|
||
|
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
|
||
|
index 543361c83637c071..deaf37951206fb7c 100644
|
||
|
--- a/sysdeps/s390/s390-64/dl-machine.h
|
||
|
+++ b/sysdeps/s390/s390-64/dl-machine.h
|
||
|
@@ -235,6 +235,12 @@ _dl_start_user:\n\
|
||
|
static inline void __attribute__ ((unused))
|
||
|
dl_platform_init (void)
|
||
|
{
|
||
|
+#ifdef __LONG_DOUBLE_VX__
|
||
|
+ if (!(GLRO(dl_hwcap) & HWCAP_S390_VXE))
|
||
|
+ _dl_fatal_printf ("\
|
||
|
+Fatal glibc error: CPU lacks VXE support (z14 or later required)\n");
|
||
|
+#endif
|
||
|
+
|
||
|
if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
|
||
|
/* Avoid an empty string which would disturb us. */
|
||
|
GLRO(dl_platform) = NULL;
|