hurd: Add missing startup calls
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 10 Nov 2020 23:50:04 +0000 (23:50 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 11 Nov 2020 01:35:59 +0000 (02:35 +0100)
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]")

sysdeps/mach/hurd/dl-sysdep.c

index 2a9a6d1..5c0bb31 100644 (file)
@@ -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;