diff options
author | Frédéric Bérat <fberat@redhat.com> | 2023-04-26 11:48:56 +0200 |
---|---|---|
committer | Frédéric Bérat <fberat@redhat.com> | 2023-07-05 16:59:48 +0200 |
commit | d9a99272d21d9602ec7e134169c115aa27d956b6 (patch) | |
tree | 6bb242aeb33954c6a524a76fea7491b4783e0e72 | |
parent | b17d65ff927241d2bc36cbfe258431bec2ffad1b (diff) | |
download | glibc-d9a99272d21d9602ec7e134169c115aa27d956b6.tar.gz glibc-d9a99272d21d9602ec7e134169c115aa27d956b6.tar.xz glibc-d9a99272d21d9602ec7e134169c115aa27d956b6.zip |
misc/bits/select2.h: Clearly separate declaration from definitions
The __fdelt_chk declaration needs to be available so that libc_hidden_proto can be used while not redefining __FD_ELT. Thus, misc/bits/select-decl.h is created to hold the corresponding prototypes. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
-rw-r--r-- | debug/fdelt_chk.c | 1 | ||||
-rw-r--r-- | include/bits/select-decl.h | 1 | ||||
-rw-r--r-- | include/sys/select.h | 4 | ||||
-rw-r--r-- | misc/Makefile | 1 | ||||
-rw-r--r-- | misc/bits/select-decl.h | 31 | ||||
-rw-r--r-- | misc/bits/select2.h | 6 |
6 files changed, 40 insertions, 4 deletions
diff --git a/debug/fdelt_chk.c b/debug/fdelt_chk.c index d1d3a19460..bcf8f333f9 100644 --- a/debug/fdelt_chk.c +++ b/debug/fdelt_chk.c @@ -28,3 +28,4 @@ __fdelt_chk (long int d) return d / __NFDBITS; } strong_alias (__fdelt_chk, __fdelt_warn) +libc_hidden_def (__fdelt_chk) diff --git a/include/bits/select-decl.h b/include/bits/select-decl.h new file mode 100644 index 0000000000..43db738a61 --- /dev/null +++ b/include/bits/select-decl.h @@ -0,0 +1 @@ +#include <misc/bits/select-decl.h> diff --git a/include/sys/select.h b/include/sys/select.h index a8961afbed..45376461e9 100644 --- a/include/sys/select.h +++ b/include/sys/select.h @@ -3,6 +3,10 @@ #ifndef _ISOMAC /* Now define the internal interfaces. */ + +#include <bits/select-decl.h> +libc_hidden_proto (__fdelt_chk) + # if __TIMESIZE == 64 # define __pselect64 __pselect # define __select64 __select diff --git a/misc/Makefile b/misc/Makefile index 36ba7a0bad..3497d30f3b 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -68,6 +68,7 @@ headers := \ bits/syslog-ldbl.h \ bits/syslog-path.h \ bits/error.h \ + bits/select-decl.h \ bits/select2.h \ bits/hwcap.h \ sys/auxv.h \ diff --git a/misc/bits/select-decl.h b/misc/bits/select-decl.h new file mode 100644 index 0000000000..95962e1b98 --- /dev/null +++ b/misc/bits/select-decl.h @@ -0,0 +1,31 @@ +/* Checking routines for select functions. Declaration only. + Copyright (C) 2023 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/>. */ + +#ifndef _BITS_SELECT_DECL_H +#define _BITS_SELECT_DECL_H 1 + +#ifndef _SYS_SELECT_H +# error "Never include <bits/select-decl.h> directly; use <sys/select.h> instead." +#endif + +/* Helper functions to issue warnings and errors when needed. */ +extern long int __fdelt_chk (long int __d); +extern long int __fdelt_warn (long int __d) + __warnattr ("bit outside of fd_set selected"); + +#endif diff --git a/misc/bits/select2.h b/misc/bits/select2.h index abd84a19d5..91e85c87d1 100644 --- a/misc/bits/select2.h +++ b/misc/bits/select2.h @@ -20,10 +20,8 @@ # error "Never include <bits/select2.h> directly; use <sys/select.h> instead." #endif -/* Helper functions to issue warnings and errors when needed. */ -extern long int __fdelt_chk (long int __d); -extern long int __fdelt_warn (long int __d) - __warnattr ("bit outside of fd_set selected"); +#include <bits/select-decl.h> + #undef __FD_ELT #define __FD_ELT(d) \ __extension__ \ |