From 64786a7090d104a2e4e2e225b1eff08951fe008a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 24 Mar 2021 21:27:34 +0100 Subject: [PATCH] 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 --- htl/forward.c | 1 - nptl/libc_pthread_init.c | 2 +- nptl/nptl-init.c | 1 - nptl/pthreadP.h | 6 ++++++ nptl/pthread_atfork.c | 2 +- stdlib/cxa_finalize.c | 4 +--- sysdeps/generic/fork.h | 27 --------------------------- sysdeps/htl/fork.h | 20 -------------------- sysdeps/htl/pt-atfork.c | 1 - sysdeps/nptl/fork.c | 2 +- sysdeps/nptl/fork.h | 26 -------------------------- sysdeps/nptl/libc-lockP.h | 8 -------- 12 files changed, 10 insertions(+), 90 deletions(-) delete mode 100644 sysdeps/generic/fork.h delete mode 100644 sysdeps/htl/fork.h delete mode 100644 sysdeps/nptl/fork.h diff --git a/htl/forward.c b/htl/forward.c index 3404046349..4e4133ac1f 100644 --- a/htl/forward.c +++ b/htl/forward.c @@ -22,7 +22,6 @@ #include #include #include -#include #include /* Pointers to the libc functions. */ diff --git a/nptl/libc_pthread_init.c b/nptl/libc_pthread_init.c index 0757f92cd2..4de182b4e4 100644 --- a/nptl/libc_pthread_init.c +++ b/nptl/libc_pthread_init.c @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include #include diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index 865ee8db29..2c7e2222d4 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index c8538de44f..2653e0f1b3 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 097a86d059..6398688dab 100644 --- a/nptl/pthread_atfork.c +++ b/nptl/pthread_atfork.c @@ -34,7 +34,7 @@ . */ #include "pthreadP.h" -#include +#include #include diff --git a/stdlib/cxa_finalize.c b/stdlib/cxa_finalize.c index 7d7b09b3cc..75ea4022fb 100644 --- a/stdlib/cxa_finalize.c +++ b/stdlib/cxa_finalize.c @@ -18,7 +18,7 @@ #include #include #include "exit.h" -#include +#include #include #include @@ -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 6cc842a425..0000000000 --- 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 - . */ diff --git a/sysdeps/htl/fork.h b/sysdeps/htl/fork.h deleted file mode 100644 index 9d0d1d2b41..0000000000 --- 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 , 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 - . */ - -#include -#include diff --git a/sysdeps/htl/pt-atfork.c b/sysdeps/htl/pt-atfork.c index dbb3b8f0cc..3902f40835 100644 --- a/sysdeps/htl/pt-atfork.c +++ b/sysdeps/htl/pt-atfork.c @@ -18,7 +18,6 @@ #include #include -#include #include #include diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c index f78267b68c..9737127cd6 100644 --- a/sysdeps/nptl/fork.c +++ b/sysdeps/nptl/fork.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/sysdeps/nptl/fork.h b/sysdeps/nptl/fork.h deleted file mode 100644 index 5246754290..0000000000 --- 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 , 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 - . */ - -#include -#include - -/* 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 4a0b96e6d9..63b605dee2 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. */