From 9fa7449b35244645acaa450046b37678f46fe0f1 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 14 Aug 2017 11:44:24 +0200 Subject: _dl_fini: Remove internal_function attribute 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). --- sysdeps/generic/ldsodefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sysdeps/generic/ldsodefs.h') diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 3c92a29..4540096 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -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, -- cgit v1.1