about summary refs log tree commit diff
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
glibc-a40b18b2330026cedc07348481bf3219f668adca.tar.xz
glibc-a40b18b2330026cedc07348481bf3219f668adca.zip
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;