summaryrefslogtreecommitdiff
path: root/sysdeps/mach
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-11-10 23:50:04 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-11-11 02:35:59 +0100
commita40b18b2330026cedc07348481bf3219f668adca (patch)
tree7236699a34c56c44619681ae50349382070e0dd7 /sysdeps/mach
parent15b38ffc104a30f5c02ed33c5983923d5ceae5f8 (diff)
downloadglibc-a40b18b2330026cedc07348481bf3219f668adca.tar.gz
hurd: Add missing startup calls
DL_SYSDEP_INIT and DL_PLATFORM_INIT were not getting called, leading to missing x86 platform tuning, now mandatory with 0f09154c6400 ("x86: Initialize CPU info via IFUNC relocation [BZ 26203]")
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 2a9a6d12bc..5c0bb3124d 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -125,10 +125,26 @@ _dl_sysdep_start (void **start_argptr,
else
_dl_hurd_data = (void *) p;
+ GLRO(dl_platform) = NULL; /* Default to nothing known about the platform. */
+
__libc_enable_secure = _dl_hurd_data->flags & EXEC_SECURE;
__tunables_init (_environ);
+#ifdef DL_SYSDEP_INIT
+ DL_SYSDEP_INIT;
+#endif
+
+#ifdef SHARED
+#ifdef DL_PLATFORM_INIT
+ DL_PLATFORM_INIT;
+#endif
+
+ /* Determine the length of the platform name. */
+ if (GLRO(dl_platform) != NULL)
+ GLRO(dl_platformlen) = strlen (GLRO(dl_platform));
+#endif
+
if (_dl_hurd_data->flags & EXEC_STACK_ARGS
&& _dl_hurd_data->user_entry == 0)
_dl_hurd_data->user_entry = (vm_address_t) ENTRY_POINT;