From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) by sourceware.org (Postfix) with ESMTPS id 2085A3894C1D for ; Wed, 19 May 2021 09:09:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2085A3894C1D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=lukma@denx.de Received: from ktm (85-222-111-42.dynamic.chello.pl [85.222.111.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: lukma@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id 0E9608047F; Wed, 19 May 2021 11:09:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1621415391; bh=W8fP01LOIro8ZmGdqlX7v7vSWDStpPcz5UT8CcGmh40=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=FxWCwmHD1GHUNSKYo9Sd/k69BlZh6n/LrqPhytFu+bdbxKKwBL4sxcacQ1bVWDo0h w95gGhiQpL7TZE9vJyCo3XK0+Agr7ZzvLqbTphEvlj5Wtv0b32Wgc630UwgNqmnknK YIUhqxQFuDaPfMaf1BdujAwOamxceS5OW0Be12dLEfION1zih97WDaJ6BI/WXkO3zO cZmpy1fA/3CQ03meFmHSvGejVph0VMVs08zhVZzpAUtmZbGw4AqrTe6xp3CiYlOalo ewBRKdddaQm9J/zzWFYKAEhBc33ciqseA68IPZO8aHnQs0vJjcrUFHyoxXrF8SnsHL pGhYd94GMkPhw== Date: Wed, 19 May 2021 11:09:50 +0200 From: Lukasz Majewski To: Adhemerval Zanella Cc: libc-alpha@sourceware.org, Carlos O'Donell Subject: Re: [PATCH v2 16/25] y2038: Use a common definition for shmid_ds Message-ID: <20210519110950.5480c9e7@ktm> In-Reply-To: <20210518205613.1487824-17-adhemerval.zanella@linaro.org> References: <20210518205613.1487824-1-adhemerval.zanella@linaro.org> <20210518205613.1487824-17-adhemerval.zanella@linaro.org> Organization: denx.de X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/Ukt+ceTOFWj.ed9gQzccelZ"; protocol="application/pgp-signature" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, SPF_HELO_NONE, SPF_PASS, 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: , X-List-Received-Date: Wed, 19 May 2021 09:09:54 -0000 --Sig_/Ukt+ceTOFWj.ed9gQzccelZ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Tue, 18 May 2021 17:56:04 -0300 Adhemerval Zanella wrote: > Instead of replicate the same definitions from struct_shmid64_ds.h > on the multiple struct_shmid_ds.h, use a common header which is > included when required (struct_shmid64_ds_helper.h). >=20 > The __USE_TIME_BITS64 is not defined internally yet, although the > internal header is used when building the 64-bit semctl > implementation. --- Reviewed-by: Lukasz Majewski > sysdeps/unix/sysv/linux/Makefile | 3 ++- > .../sysv/linux/bits/types/struct_shmid64_ds.h | 9 +------ > .../bits/types/struct_shmid64_ds_helper.h | 26 > +++++++++++++++++++ .../sysv/linux/bits/types/struct_shmid_ds.h | > 10 ++++--- .../linux/hppa/bits/types/struct_shmid_ds.h | 10 ++++--- > .../linux/mips/bits/types/struct_shmid_ds.h | 14 ++++++---- > .../powerpc/bits/types/struct_shmid_ds.h | 10 ++++--- > .../linux/sparc/bits/types/struct_shmid_ds.h | 10 ++++--- > 8 files changed, 66 insertions(+), 26 deletions(-) > create mode 100644 > sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h >=20 > diff --git a/sysdeps/unix/sysv/linux/Makefile > b/sysdeps/unix/sysv/linux/Makefile index b599c423ed..747d1083e0 100644 > --- a/sysdeps/unix/sysv/linux/Makefile > +++ b/sysdeps/unix/sysv/linux/Makefile > @@ -103,7 +103,8 @@ sysdep_headers +=3D sys/mount.h sys/acct.h \ > bits/struct_stat.h \ > bits/struct_stat_time64_helper.h \ > bits/types/struct_msqid64_ds_helper.h \ > - bits/types/struct_semid64_ds_helper.h > + bits/types/struct_semid64_ds_helper.h \ > + bits/types/struct_shmid64_ds_helper.h > =20 > tests +=3D tst-clone tst-clone2 tst-clone3 tst-fanotify > tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max > tst-ttyname \ diff --git > a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h > b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h index > 71100db1b5..a4af8cc5f4 100644 --- > a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h +++ > b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h @@ -25,13 > +25,6 @@ #else struct __shmid64_ds > { > - struct ipc_perm shm_perm; /* operation permission struct */ > - size_t shm_segsz; /* size of segment in bytes */ > - __time64_t shm_atime; /* time of last shmat() */ > - __time64_t shm_dtime; /* time of last shmdt() */ > - __time64_t shm_ctime; /* time of last change by > shmctl() */ > - __pid_t shm_cpid; /* pid of creator */ > - __pid_t shm_lpid; /* pid of last shmop */ > - shmatt_t shm_nattch; /* number of current attaches > */ +# include > }; > #endif > diff --git > a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h > b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h new > file mode 100644 index 0000000000..8ab0937c4d --- /dev/null > +++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h > @@ -0,0 +1,26 @@ > +/* Common definitions for struct semid_ds with 64 bit time. > + Copyright (C) 2020-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 > + . */ > + > + struct ipc_perm shm_perm; /* operation permission struct */ > + size_t shm_segsz; /* size of segment in bytes */ > + __time64_t shm_atime; /* time of last shmat() */ > + __time64_t shm_dtime; /* time of last shmdt() */ > + __time64_t shm_ctime; /* time of last change by > shmctl() */ > + __pid_t shm_cpid; /* pid of creator */ > + __pid_t shm_lpid; /* pid of last shmop */ > + shmatt_t shm_nattch; /* number of current attaches > */ diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h > b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h index > 2bd587d2b0..5f8ac6257b 100644 --- > a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h +++ > b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h @@ -23,23 > +23,27 @@ /* Data structure describing a shared memory segment. */ > struct shmid_ds > { > +#ifdef __USE_TIME_BITS64 > +# include > +#else > struct ipc_perm shm_perm; /* operation permission > struct */ size_t shm_segsz; /* size of segment > in bytes */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > __time_t shm_atime; /* time of last > shmat() */ unsigned long int __shm_atime_high; > __time_t shm_dtime; /* time of last > shmdt() */ unsigned long int __shm_dtime_high; > __time_t shm_ctime; /* time of last > change by shmctl() */ unsigned long int __shm_ctime_high; > -#else > +# else > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#endif > +# endif > __pid_t shm_cpid; /* pid of creator */ > __pid_t shm_lpid; /* pid of last shmop */ > shmatt_t shm_nattch; /* number of current > attaches */ __syscall_ulong_t __glibc_reserved5; > __syscall_ulong_t __glibc_reserved6; > +#endif > }; > diff --git > a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h > b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h index > 47ff80ebb0..7831fd7340 100644 --- > a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h +++ > b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h @@ -23,8 > +23,11 @@ /* Data structure describing a shared memory segment. */ > struct shmid_ds { > +#ifdef __USE_TIME_BITS64 > +# include > +#else > struct ipc_perm shm_perm; /* operation permission > struct */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > unsigned long int __shm_atime_high; > __time_t shm_atime; /* time of last > shmat() */ unsigned long int __shm_dtime_high; > @@ -32,15 +35,16 @@ struct shmid_ds > unsigned long int __shm_ctime_high; > __time_t shm_ctime; /* time of last > change by shmctl() */ unsigned long int __glibc_reserved4; > -#else > +# else > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#endif > +# endif > size_t shm_segsz; /* size of segment in > bytes */ __pid_t shm_cpid; /* pid of creator */ > __pid_t shm_lpid; /* pid of last shmop */ > shmatt_t shm_nattch; /* number of current > attaches */ __syscall_ulong_t __glibc_reserved5; > __syscall_ulong_t __glibc_reserved6; > +#endif > }; > diff --git > a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h > b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h index > 7f8f3b9c51..0691a610ae 100644 --- > a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h +++ > b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h @@ -23,27 > +23,31 @@ /* Data structure describing a shared memory segment. */ > struct shmid_ds { > +#ifdef __USE_TIME_BITS64 > +# include > +#else > struct ipc_perm shm_perm; /* operation permission > struct */ size_t shm_segsz; /* size of segment > in bytes */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#else > +# else > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#endif > +# endif > __pid_t shm_cpid; /* pid of creator */ > __pid_t shm_lpid; /* pid of last shmop */ > shmatt_t shm_nattch; /* number of current > attaches */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > unsigned short int __shm_atime_high; > unsigned short int __shm_dtime_high; > unsigned short int __shm_ctime_high; > unsigned short int __glibc_reserved4; > -#else > +# else > __syscall_ulong_t __glibc_reserved5; > __syscall_ulong_t __glibc_reserved6; > +# endif > #endif > }; > diff --git > a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h > b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h index > d71bdf1ecf..316d43ec99 100644 --- > a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h +++ > b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h @@ > -23,8 +23,11 @@ /* Data structure describing a shared memory segment. > */ struct shmid_ds { > +#ifdef __USE_TIME_BITS64 > +# include > +#else > struct ipc_perm shm_perm; /* operation permission > struct */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > unsigned long int __shm_atime_high; > __time_t shm_atime; /* time of last > shmat() */ unsigned long int __shm_dtime_high; > @@ -32,15 +35,16 @@ struct shmid_ds > unsigned long int __shm_ctime_high; > __time_t shm_ctime; /* time of last > change by shmctl() */ unsigned long int __glibc_reserved4; > -#else > +# else > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#endif > +# endif > size_t shm_segsz; /* size of segment in > bytes */ __pid_t shm_cpid; /* pid of creator */ > __pid_t shm_lpid; /* pid of last shmop */ > shmatt_t shm_nattch; /* number of current > attaches */ __syscall_ulong_t __glibc_reserved5; > __syscall_ulong_t __glibc_reserved6; > +#endif > }; > diff --git > a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h > b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h index > 767099803f..86f0cedac3 100644 --- > a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h +++ > b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h @@ > -23,23 +23,27 @@ /* Data structure describing a shared memory > segment. */ struct shmid_ds { > +#ifdef __USE_TIME_BITS64 > +# include > +#else > struct ipc_perm shm_perm; /* operation permission > struct */ -#if __TIMESIZE =3D=3D 32 > +# if __TIMESIZE =3D=3D 32 > unsigned long int __shm_atime_high; > __time_t shm_atime; /* time of last > shmat() */ unsigned long int __shm_dtime_high; > __time_t shm_dtime; /* time of last > shmdt() */ unsigned long int __shm_ctime_high; > __time_t shm_ctime; /* time of last > change by shmctl() */ -#else > +# else > __time_t shm_atime; /* time of last > shmat() */ __time_t shm_dtime; /* time of last > shmdt() */ __time_t shm_ctime; /* time of last > change by shmctl() */ -#endif > +# endif > size_t shm_segsz; /* size of segment in > bytes */ __pid_t shm_cpid; /* pid of creator */ > __pid_t shm_lpid; /* pid of last shmop */ > shmatt_t shm_nattch; /* number of current > attaches */ __syscall_ulong_t __glibc_reserved5; > __syscall_ulong_t __glibc_reserved6; > +#endif > }; Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de --Sig_/Ukt+ceTOFWj.ed9gQzccelZ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEgAyFJ+N6uu6+XupJAR8vZIA0zr0FAmCk1d4ACgkQAR8vZIA0 zr236gf/WqqgIfGF5wf5nBIDa6jfL85KyzopP6F7/nxWJn4+HBNtdEs3hpSUqRm7 dk7bRUjbMxnnB8MYXe+Z88GB4osHze73sQaCvTO4pqPtaN38yfVGN7FSnwe1v6BJ 4NvtyPI/I2REjcSgBJcxPjRexdLQnYApIYaVf7FLimY9n89lH/0xGeEvxsUt01sa uLIqtiwc2yYvb1ZMPcD0xv+t9NsjJcTCN3tqXStM964J2M7F2csrorRDAdZtBvpX Bo+qSLGG+XN1K50RSNDYFQma422HGDj1T9+xov2VfFDAi4N3xEzk9ztzTVsyjCP/ nMBHZOrabXpp203z/Dye2gbBjW7L5A== =sGYh -----END PGP SIGNATURE----- --Sig_/Ukt+ceTOFWj.ed9gQzccelZ--