NPTL: Remove internal_function from stack marking functions

These are called across DSO boundaries and therefore should use
the ABI calling convention.
This commit is contained in:
Florian Weimer 2017-08-13 21:11:38 +02:00
parent c4ce038287
commit e1d2ae8d21
7 changed files with 18 additions and 9 deletions

View File

@ -1,3 +1,17 @@
2017-08-13 Florian Weimer <fweimer@redhat.com>
* elf/dl-support.c (_dl_make_stack_executable_hook): Remove
internal_function.
* nptl/allocatestack.c (__make_stacks_executable): Likewise.
* nptl/pthreadP.h (__make_stacks_executable): Likewise.
* sysdeps/generic/ldsodefs.h (_rtld_global): Remove
internal_function from _dl_make_stack_executable_hook member.
(_dl_make_stack_executable): Remove internal_function.
* sysdeps/mach/hurd/dl-execstack.c (_dl_make_stack_executable):
Likewise.
* sysdeps/unix/sysv/linux/dl-execstack.c
(_dl_make_stack_executable): Likewise.
2017-08-13 Florian Weimer <fweimer@redhat.com> 2017-08-13 Florian Weimer <fweimer@redhat.com>
* sysdeps/unix/sysv/linux/netlinkaccess.h * sysdeps/unix/sysv/linux/netlinkaccess.h

View File

@ -181,8 +181,7 @@ ElfW(Word) _dl_stack_flags = DEFAULT_STACK_PERMS;
/* If loading a shared object requires that we make the stack executable /* If loading a shared object requires that we make the stack executable
when it was not, we do it by calling this function. when it was not, we do it by calling this function.
It returns an errno code or zero on success. */ It returns an errno code or zero on success. */
int (*_dl_make_stack_executable_hook) (void **) internal_function int (*_dl_make_stack_executable_hook) (void **) = _dl_make_stack_executable;
= _dl_make_stack_executable;
/* Function in libpthread to wait for termination of lookups. */ /* Function in libpthread to wait for termination of lookups. */

View File

@ -784,7 +784,6 @@ __deallocate_stack (struct pthread *pd)
int int
internal_function
__make_stacks_executable (void **stack_endp) __make_stacks_executable (void **stack_endp)
{ {
/* First the main thread's stack. */ /* First the main thread's stack. */

View File

@ -356,8 +356,7 @@ extern void __deallocate_stack (struct pthread *pd)
extern void __reclaim_stacks (void) attribute_hidden; extern void __reclaim_stacks (void) attribute_hidden;
/* Make all threads's stacks executable. */ /* Make all threads's stacks executable. */
extern int __make_stacks_executable (void **stack_endp) extern int __make_stacks_executable (void **stack_endp) attribute_hidden;
internal_function attribute_hidden;
/* longjmp handling. */ /* longjmp handling. */
extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe); extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe);

View File

@ -377,7 +377,7 @@ struct rtld_global
/* If loading a shared object requires that we make the stack executable /* If loading a shared object requires that we make the stack executable
when it was not, we do it by calling this function. when it was not, we do it by calling this function.
It returns an errno code or zero on success. */ It returns an errno code or zero on success. */
EXTERN int (*_dl_make_stack_executable_hook) (void **) internal_function; EXTERN int (*_dl_make_stack_executable_hook) (void **);
/* Prevailing state of the stack, PF_X indicating it's executable. */ /* Prevailing state of the stack, PF_X indicating it's executable. */
EXTERN ElfW(Word) _dl_stack_flags; EXTERN ElfW(Word) _dl_stack_flags;
@ -632,7 +632,7 @@ extern size_t _dl_phnum;
/* This is the initial value of GL(dl_make_stack_executable_hook). /* This is the initial value of GL(dl_make_stack_executable_hook).
A threads library can change it. */ A threads library can change it. */
extern int _dl_make_stack_executable (void **stack_endp) internal_function; extern int _dl_make_stack_executable (void **stack_endp);
rtld_hidden_proto (_dl_make_stack_executable) rtld_hidden_proto (_dl_make_stack_executable)
/* Variable pointing to the end of the stack (or close to it). This value /* Variable pointing to the end of the stack (or close to it). This value

View File

@ -26,7 +26,6 @@ extern struct hurd_startup_data *_dl_hurd_data attribute_hidden;
so as to mprotect it. */ so as to mprotect it. */
int int
internal_function
_dl_make_stack_executable (void **stack_endp) _dl_make_stack_executable (void **stack_endp)
{ {
/* Challenge the caller. */ /* Challenge the caller. */

View File

@ -30,7 +30,6 @@ extern int __stack_prot attribute_relro attribute_hidden;
int int
internal_function
_dl_make_stack_executable (void **stack_endp) _dl_make_stack_executable (void **stack_endp)
{ {
/* This gives us the highest/lowest page that needs to be changed. */ /* This gives us the highest/lowest page that needs to be changed. */