From patchwork Wed Mar 24 22:11:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 42770 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A01483850422; Wed, 24 Mar 2021 22:11:39 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from hera.aquilenet.fr (hera.aquilenet.fr [185.233.100.1]) by sourceware.org (Postfix) with ESMTPS id A80D83851C24 for ; Wed, 24 Mar 2021 22:11:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A80D83851C24 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=samuel.thibault@ens-lyon.org Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 2D07C985; Wed, 24 Mar 2021 23:11:34 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iC0d6Vvqu9QY; Wed, 24 Mar 2021 23:11:33 +0100 (CET) Received: from begin (unknown [IPv6:2a01:cb19:956:1b00:de41:a9ff:fe47:ec49]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 1D934206; Wed, 24 Mar 2021 23:11:33 +0100 (CET) Received: from samy by begin with local (Exim 4.94) (envelope-from ) id 1lPBit-004Cut-Rf; Wed, 24 Mar 2021 23:11:31 +0100 From: Samuel Thibault To: libc-alpha@sourceware.org, Adhemerval Zanella Subject: [PATCH] fork.h: replace with register-atfork.h Date: Wed, 24 Mar 2021 23:11:31 +0100 Message-Id: <20210324221131.1002920-1-samuel.thibault@ens-lyon.org> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Spamd-Bar: +++++ X-Rspamd-Server: hera Authentication-Results: hera.aquilenet.fr X-Rspamd-Queue-Id: 2D07C985 X-Spamd-Result: default: False [5.00 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_MISSING_CHARSET(2.50)[]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_COUNT_THREE(0.00)[3]; MID_CONTAINS_FROM(1.00)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[] X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: commit-hurd@gnu.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" 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. */