diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-03-24 21:27:34 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-03-29 21:41:09 +0200 |
commit | 64786a7090d104a2e4e2e225b1eff08951fe008a (patch) | |
tree | 9498fe2a6f2504910df83a3c68c1307f3fb9f2ce | |
parent | e4fda4631017e49d4ee5a2755db34289b6860fa4 (diff) | |
download | glibc-64786a7090d104a2e4e2e225b1eff08951fe008a.zip glibc-64786a7090d104a2e4e2e225b1eff08951fe008a.tar.gz glibc-64786a7090d104a2e4e2e225b1eff08951fe008a.tar.bz2 |
fork.h: replace with register-atfork.h
UNREGISTER_ATFORK is now defined for all ports in register-atfork.h, so most
previous includes of fork.h actually only need register-atfork.h now, and
cxa_finalize.c does not need an ifdef UNREGISTER_ATFORK any more.
The nptl-specific fork generation counters can then go to pthreadP.h, and
fork.h be removed.
Checked on x86_64-linux-gnu and i686-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r-- | htl/forward.c | 1 | ||||
-rw-r--r-- | nptl/libc_pthread_init.c | 2 | ||||
-rw-r--r-- | nptl/nptl-init.c | 1 | ||||
-rw-r--r-- | nptl/pthreadP.h | 6 | ||||
-rw-r--r-- | nptl/pthread_atfork.c | 2 | ||||
-rw-r--r-- | stdlib/cxa_finalize.c | 4 | ||||
-rw-r--r-- | sysdeps/generic/fork.h | 27 | ||||
-rw-r--r-- | sysdeps/htl/fork.h | 20 | ||||
-rw-r--r-- | sysdeps/htl/pt-atfork.c | 1 | ||||
-rw-r--r-- | sysdeps/nptl/fork.c | 2 | ||||
-rw-r--r-- | sysdeps/nptl/fork.h | 26 | ||||
-rw-r--r-- | sysdeps/nptl/libc-lockP.h | 8 |
12 files changed, 10 insertions, 90 deletions
diff --git a/htl/forward.c b/htl/forward.c index 3404046..4e4133a 100644 --- a/htl/forward.c +++ b/htl/forward.c @@ -22,7 +22,6 @@ #include <shlib-compat.h> #include <pthread-functions.h> #include <libc-lock.h> -#include <fork.h> #include <pt-internal.h> /* Pointers to the libc functions. */ diff --git a/nptl/libc_pthread_init.c b/nptl/libc_pthread_init.c index 0757f92..4de182b 100644 --- a/nptl/libc_pthread_init.c +++ b/nptl/libc_pthread_init.c @@ -18,7 +18,7 @@ #include <unistd.h> #include <list.h> -#include <fork.h> +#include <register-atfork.h> #include <dl-sysdep.h> #include <tls.h> #include <string.h> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index 865ee8d..2c7e222 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -29,7 +29,6 @@ #include <ldsodefs.h> #include <tls.h> #include <list.h> -#include <fork.h> #include <version.h> #include <shlib-compat.h> #include <lowlevellock.h> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index c8538de..2653e0f 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -355,6 +355,12 @@ extern void __nptl_death_event (void); hidden_proto (__nptl_create_event) hidden_proto (__nptl_death_event) +/* The fork generation counter, defined in libpthread. */ +extern unsigned long int __fork_generation attribute_hidden; + +/* Pointer to the fork generation counter in the thread library. */ +extern unsigned long int *__fork_generation_pointer attribute_hidden; + /* Register the generation counter in the libpthread with the libc. */ #ifdef TLS_MULTIPLE_THREADS_IN_TCB extern void __libc_pthread_init (unsigned long int *ptr, diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c index 097a86d..6398688 100644 --- a/nptl/pthread_atfork.c +++ b/nptl/pthread_atfork.c @@ -34,7 +34,7 @@ <https://www.gnu.org/licenses/>. */ #include "pthreadP.h" -#include <fork.h> +#include <register-atfork.h> #include <dso_handle.h> diff --git a/stdlib/cxa_finalize.c b/stdlib/cxa_finalize.c index 7d7b09b..75ea402 100644 --- a/stdlib/cxa_finalize.c +++ b/stdlib/cxa_finalize.c @@ -18,7 +18,7 @@ #include <assert.h> #include <stdlib.h> #include "exit.h" -#include <fork.h> +#include <register-atfork.h> #include <sysdep.h> #include <stdint.h> @@ -102,9 +102,7 @@ __cxa_finalize (void *d) /* Remove the registered fork handlers. We do not have to unregister anything if the program is going to terminate anyway. */ -#ifdef UNREGISTER_ATFORK if (d != NULL) UNREGISTER_ATFORK (d); -#endif __libc_lock_unlock (__exit_funcs_lock); } diff --git a/sysdeps/generic/fork.h b/sysdeps/generic/fork.h deleted file mode 100644 index 6cc842a..0000000 --- a/sysdeps/generic/fork.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Stub version of header for fork handling. Mainly to handle pthread_atfork - and friends. Outside dependencies: - - UNREGISTER_ATFORK - If defined it must expand to a function call which takes one void* - parameter which is the DSO handle for the DSO which gets unloaded. - The function so called has to remove the atfork handlers registered - by this module. */ - - -/* System specific fork definition. Generic version. - Copyright (C) 2002-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ diff --git a/sysdeps/htl/fork.h b/sysdeps/htl/fork.h deleted file mode 100644 index 9d0d1d2..0000000 --- a/sysdeps/htl/fork.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 2002-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <lowlevellock.h> -#include <register-atfork.h> diff --git a/sysdeps/htl/pt-atfork.c b/sysdeps/htl/pt-atfork.c index dbb3b8f..3902f40 100644 --- a/sysdeps/htl/pt-atfork.c +++ b/sysdeps/htl/pt-atfork.c @@ -18,7 +18,6 @@ #include <pthread.h> #include <pt-internal.h> -#include <fork.h> #include <dso_handle.h> #include <register-atfork.h> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c index f78267b..9737127 100644 --- a/sysdeps/nptl/fork.c +++ b/sysdeps/nptl/fork.c @@ -28,7 +28,7 @@ #include <stdio-lock.h> #include <atomic.h> #include <nptl/pthreadP.h> -#include <fork.h> +#include <register-atfork.h> #include <arch-fork.h> #include <futex-internal.h> #include <malloc/malloc-internal.h> diff --git a/sysdeps/nptl/fork.h b/sysdeps/nptl/fork.h deleted file mode 100644 index 5246754..0000000 --- a/sysdeps/nptl/fork.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2002-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <lowlevellock.h> -#include <register-atfork.h> - -/* The fork generation counter, defined in libpthread. */ -extern unsigned long int __fork_generation attribute_hidden; - -/* Pointer to the fork generation counter in the thread library. */ -extern unsigned long int *__fork_generation_pointer attribute_hidden; diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h index 4a0b96e..63b605d 100644 --- a/sysdeps/nptl/libc-lockP.h +++ b/sysdeps/nptl/libc-lockP.h @@ -308,14 +308,6 @@ __libc_cleanup_routine (struct __pthread_cleanup_frame *f) __libc_ptf_call (__pthread_setspecific, (KEY, VALUE), 0) -/* Register handlers to execute before and after `fork'. Note that the - last parameter is NULL. The handlers registered by the libc are - never removed so this is OK. */ -extern int __register_atfork (void (*__prepare) (void), - void (*__parent) (void), - void (*__child) (void), - void *__dso_handle); - /* Functions that are used by this file and are internal to the GNU C library. */ |