]> sourceware.org Git - glibc.git/commitdiff
_dl_fini: Remove internal_function attribute
authorFlorian Weimer <fweimer@redhat.com>
Mon, 14 Aug 2017 09:44:24 +0000 (11:44 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 14 Aug 2017 13:08:48 +0000 (15:08 +0200)
Assembler code passes the address of _dl_fini to __libc_start_main,
whose function pointer argument lacks the attribute.  This means
that calls could use the wrong ABI.  Fortunately, for zero-parameter
void-returning functions, internal_function does not change ABI
on i386 (the only architecture which uses internal_function), so
this inconsistency was harmless (which is why it had not been
noticed so far).

ChangeLog
elf/dl-fini.c
sysdeps/generic/ldsodefs.h

index 7527943446987158f1a5eb9e94a8a9b5be89bcfb..bf655ed0b49a15994c10319c875c4d9a84cb11e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-08-14  Florian Weimer  <fweimer@redhat.com>
+
+       * elf/dl-fini.c (_dl_fini): Remove internal_function
+       * sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
+
 2017-08-14  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/x86/cpu-features.h (bit_cpu_BIT): New.
index 93b337bea17b5953fc391dbe55229254774064bf..d6201b2c816373b474a761f250b7ce5437321bc3 100644 (file)
@@ -125,7 +125,6 @@ _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
 
 
 void
-internal_function
 _dl_fini (void)
 {
   /* Lots of fun ahead.  We have to call the destructors for all still
index 3c92a296cd515d0f8e82ec128f6d48f1ffe7023a..4540096688e6c5afd7f809b5d18b1595dcc9612d 100644 (file)
@@ -968,7 +968,7 @@ extern void _dl_init (struct link_map *main_map, int argc, char **argv,
 
 /* Call the finalizer functions of all shared objects whose
    initializer functions have completed.  */
-extern void _dl_fini (void) internal_function;
+extern void _dl_fini (void);
 
 /* Sort array MAPS according to dependencies of the contained objects.  */
 extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used,
This page took 0.045446 seconds and 5 git commands to generate.