From d7d0efec47e76c022c3bcb30cdb4b0501d7a9b2a Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 28 Jun 2021 09:51:00 +0200 Subject: [PATCH] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h This is almost equivalent to __WORDSIZE == 64 && OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3_3), except that this expression is true for mips64/n64 targets as well, even though those did not undergo the timer_t transition. Reviewed-by: Carlos O'Donell --- .../unix/sysv/linux/alpha/timer_t_was_int_compat.h | 19 +++++++++++++++++++ .../unix/sysv/linux/ia64/timer_t_was_int_compat.h | 19 +++++++++++++++++++ sysdeps/unix/sysv/linux/kernel-posix-timers.h | 4 ++++ .../linux/powerpc/powerpc64/timer_t_was_int_compat.h | 19 +++++++++++++++++++ .../sysv/linux/s390/s390-64/timer_t_was_int_compat.h | 19 +++++++++++++++++++ .../linux/sparc/sparc64/timer_t_was_int_compat.h | 19 +++++++++++++++++++ sysdeps/unix/sysv/linux/timer_t_was_int_compat.h | 20 ++++++++++++++++++++ .../sysv/linux/x86_64/64/timer_t_was_int_compat.h | 19 +++++++++++++++++++ 8 files changed, 138 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/ia64/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/timer_t_was_int_compat.h create mode 100644 sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h diff --git a/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h new file mode 100644 index 0000000..92840d9 --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. alpha version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 diff --git a/sysdeps/unix/sysv/linux/ia64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/ia64/timer_t_was_int_compat.h new file mode 100644 index 0000000..eb7e08c --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. ia64 version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h index 17fc32d..86aa8a2 100644 --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h @@ -103,3 +103,7 @@ timerid_to_kernel_timer (timer_t timerid) else return (kernel_timer_t) ((uintptr_t) timerid); } + +/* New targets use int instead of timer_t. The difference only + matters on 64-bit targets. */ +#include diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h new file mode 100644 index 0000000..dbb52c1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. powerpc64 version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h new file mode 100644 index 0000000..4ec28a2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. s390x version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h new file mode 100644 index 0000000..f4bacb6 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. sparc64 version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 diff --git a/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h new file mode 100644 index 0000000..b1c7dd7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h @@ -0,0 +1,20 @@ +/* timer_t/int compatibility transition. Generic version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +/* timer_t did not change size (from int to a pointer type). */ +#define TIMER_T_WAS_INT_COMPAT 0 diff --git a/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h new file mode 100644 index 0000000..9071028 --- /dev/null +++ b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h @@ -0,0 +1,19 @@ +/* timer_t/int compatibility transition. x86_64 version. + Copyright (C) 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; see the file COPYING.LIB. If + not, see . */ + +#define TIMER_T_WAS_INT_COMPAT 1 -- 2.7.4