diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-03-04 15:35:46 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-03-04 15:35:46 -0500 |
| commit | 3178807657f0d75646c9de11ba4b23ee556e70da (patch) | |
| tree | 0e8f668368e68a3fe7b510ae00aaa5d48dc379b2 /lib/libc/include/riscv64-linux-gnu/bits | |
| parent | 66e6f5586e314b6f4fac8b0ed0198f47ba80d4f3 (diff) | |
| parent | 6cbd1ac51af4300ef11373d16771cf011fb6e572 (diff) | |
| download | zig-3178807657f0d75646c9de11ba4b23ee556e70da.tar.gz zig-3178807657f0d75646c9de11ba4b23ee556e70da.zip | |
Merge remote-tracking branch 'origin/master' into llvm10
Diffstat (limited to 'lib/libc/include/riscv64-linux-gnu/bits')
17 files changed, 100 insertions, 68 deletions
diff --git a/lib/libc/include/riscv64-linux-gnu/bits/endian.h b/lib/libc/include/riscv64-linux-gnu/bits/endian.h deleted file mode 100644 index ca77ccf806..0000000000 --- a/lib/libc/include/riscv64-linux-gnu/bits/endian.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef _ENDIAN_H -# error "Never use <bits/endian.h> directly; include <endian.h> instead." -#endif - -#define __BYTE_ORDER __LITTLE_ENDIAN
\ No newline at end of file diff --git a/lib/libc/include/riscv64-linux-gnu/bits/endianness.h b/lib/libc/include/riscv64-linux-gnu/bits/endianness.h new file mode 100644 index 0000000000..16a1549ca7 --- /dev/null +++ b/lib/libc/include/riscv64-linux-gnu/bits/endianness.h @@ -0,0 +1,11 @@ +#ifndef _BITS_ENDIANNESS_H +#define _BITS_ENDIANNESS_H 1 + +#ifndef _BITS_ENDIAN_H +# error "Never use <bits/endianness.h> directly; include <endian.h> instead." +#endif + +/* RISC-V is little-endian. */ +#define __BYTE_ORDER __LITTLE_ENDIAN + +#endif /* bits/endianness.h */
\ No newline at end of file diff --git a/lib/libc/include/riscv64-linux-gnu/bits/fcntl.h b/lib/libc/include/riscv64-linux-gnu/bits/fcntl.h index 08c1da6125..c72b6648aa 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/fcntl.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux / RISC-V. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _FCNTL_H # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." diff --git a/lib/libc/include/riscv64-linux-gnu/bits/fenv.h b/lib/libc/include/riscv64-linux-gnu/bits/fenv.h index f0c7e3ff45..1cfa3ad192 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/fenv.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/fenv.h @@ -1,5 +1,5 @@ /* Floating point environment, RISC-V version. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _FENV_H # error "Never use <bits/fenv.h> directly; include <fenv.h> instead." @@ -65,7 +65,7 @@ typedef unsigned int fenv_t; /* If the default argument is used we use this value. */ #define FE_DFL_ENV ((__const fenv_t *) -1) -#if __GLIBC_USE (IEC_60559_BFP_EXT) +#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) /* Type representing floating-point control modes. */ typedef unsigned int femode_t; diff --git a/lib/libc/include/riscv64-linux-gnu/bits/floatn.h b/lib/libc/include/riscv64-linux-gnu/bits/floatn.h index 5e7e3f4d2e..a4045e43a3 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/floatn.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/floatn.h @@ -1,5 +1,5 @@ /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _BITS_FLOATN_H #define _BITS_FLOATN_H diff --git a/lib/libc/include/riscv64-linux-gnu/bits/link.h b/lib/libc/include/riscv64-linux-gnu/bits/link.h index 0e5bab4b0a..5ffe4fc4c4 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/link.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/link.h @@ -1,5 +1,5 @@ /* Machine-specific declarations for dynamic linker interface. RISC-V version. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _LINK_H # error "Never include <bits/link.h> directly; use <link.h> instead." diff --git a/lib/libc/include/riscv64-linux-gnu/bits/long-double.h b/lib/libc/include/riscv64-linux-gnu/bits/long-double.h index 12e30804a4..ce06962796 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/long-double.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/long-double.h @@ -1,5 +1,5 @@ /* Properties of long double type. ldbl-128 version. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 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 @@ -14,7 +14,8 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ /* long double is distinct from double, so there is nothing to - define here. */
\ No newline at end of file + define here. */ +#define __LONG_DOUBLE_USES_FLOAT128 0
\ No newline at end of file diff --git a/lib/libc/include/riscv64-linux-gnu/bits/procfs.h b/lib/libc/include/riscv64-linux-gnu/bits/procfs.h index 8625034641..e967fb281d 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/procfs.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/procfs.h @@ -1,5 +1,5 @@ /* Types for registers for sys/procfs.h. RISC-V version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _SYS_PROCFS_H # error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead." diff --git a/lib/libc/include/riscv64-linux-gnu/bits/pthreadtypes-arch.h b/lib/libc/include/riscv64-linux-gnu/bits/pthreadtypes-arch.h index 9eb39ee7dc..3bb9234ed1 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/pthreadtypes-arch.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/pthreadtypes-arch.h @@ -1,5 +1,5 @@ /* Machine-specific pthread type layouts. RISC-V version. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 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 @@ -14,12 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _BITS_PTHREADTYPES_ARCH_H #define _BITS_PTHREADTYPES_ARCH_H 1 -#include <endian.h> +#include <bits/endian.h> #if __riscv_xlen == 64 # define __SIZEOF_PTHREAD_ATTR_T 56 @@ -35,34 +35,7 @@ # error "rv32i-based systems are not supported" #endif -#define __PTHREAD_COMPAT_PADDING_MID -#define __PTHREAD_COMPAT_PADDING_END -#define __PTHREAD_MUTEX_LOCK_ELISION 0 -#define __PTHREAD_MUTEX_USE_UNION 0 -#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 - #define __LOCK_ALIGNMENT #define __ONCE_ALIGNMENT -/* There is a lot of padding in this structure. While it's not strictly - necessary on RISC-V, we're going to leave it in to be on the safe side in - case it's needed in the future. Most other architectures have the padding, - so this gives us the same extensibility as everyone else has. */ -struct __pthread_rwlock_arch_t -{ - unsigned int __readers; - unsigned int __writers; - unsigned int __wrphase_futex; - unsigned int __writers_futex; - unsigned int __pad3; - unsigned int __pad4; - int __cur_writer; - int __shared; - unsigned long int __pad1; - unsigned long int __pad2; - unsigned int __flags; -}; - -#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 - #endif /* bits/pthreadtypes.h */
\ No newline at end of file diff --git a/lib/libc/include/riscv64-linux-gnu/bits/semaphore.h b/lib/libc/include/riscv64-linux-gnu/bits/semaphore.h index d9a849248e..7277c658e8 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/semaphore.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/semaphore.h @@ -1,5 +1,5 @@ /* Machine-specific POSIX semaphore type layouts. RISC-V version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _SEMAPHORE_H # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." diff --git a/lib/libc/include/riscv64-linux-gnu/bits/setjmp.h b/lib/libc/include/riscv64-linux-gnu/bits/setjmp.h index 8e08e99fa7..9413cc01d2 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/setjmp.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/setjmp.h @@ -1,5 +1,5 @@ /* Define the machine-dependent type `jmp_buf'. RISC-V version. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _RISCV_BITS_SETJMP_H #define _RISCV_BITS_SETJMP_H diff --git a/lib/libc/include/riscv64-linux-gnu/bits/sigcontext.h b/lib/libc/include/riscv64-linux-gnu/bits/sigcontext.h index 767744f947..65693f5954 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/sigcontext.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/sigcontext.h @@ -1,5 +1,5 @@ /* Machine-dependent signal context structure for Linux. RISC-V version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. + Copyright (C) 1996-2020 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 @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _BITS_SIGCONTEXT_H #define _BITS_SIGCONTEXT_H 1 diff --git a/lib/libc/include/riscv64-linux-gnu/bits/stat.h b/lib/libc/include/riscv64-linux-gnu/bits/stat.h index 4f23077263..2df73d11e3 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/stat.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2019 Free Software Foundation, Inc. +/* Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead." @@ -23,7 +23,7 @@ #ifndef _BITS_STAT_H #define _BITS_STAT_H 1 -#include <endian.h> +#include <bits/endian.h> #include <bits/wordsize.h> /* 64-bit libc uses the kernel's 'struct stat', accessed via the @@ -42,7 +42,10 @@ #if defined __USE_FILE_OFFSET64 # define __field64(type, type64, name) type64 name -#elif __WORDSIZE == 64 +#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T +# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T +# error "ino_t and off_t must both be the same type" +# endif # define __field64(type, type64, name) type name #elif __BYTE_ORDER == __LITTLE_ENDIAN # define __field64(type, type64, name) \ diff --git a/lib/libc/include/riscv64-linux-gnu/bits/statfs.h b/lib/libc/include/riscv64-linux-gnu/bits/statfs.h index 8da970d4a9..61c27388e9 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/statfs.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/statfs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2019 Free Software Foundation, Inc. +/* Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. @@ -14,13 +14,13 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _SYS_STATFS_H # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." #endif -#include <endian.h> +#include <bits/endian.h> #include <bits/types.h> #include <bits/wordsize.h> @@ -34,7 +34,7 @@ #if defined __USE_FILE_OFFSET64 # define __field64(type, type64, name) type64 name -#elif __WORDSIZE == 64 +#elif __WORDSIZE == 64 || __STATFS_MATCHES_STATFS64 # define __field64(type, type64, name) type name #elif __BYTE_ORDER == __LITTLE_ENDIAN # define __field64(type, type64, name) \ diff --git a/lib/libc/include/riscv64-linux-gnu/bits/struct_rwlock.h b/lib/libc/include/riscv64-linux-gnu/bits/struct_rwlock.h new file mode 100644 index 0000000000..46d00e138a --- /dev/null +++ b/lib/libc/include/riscv64-linux-gnu/bits/struct_rwlock.h @@ -0,0 +1,45 @@ +/* RISC-V internal rwlock struct definitions. + Copyright (C) 2019-2020 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 + <http://www.gnu.org/licenses/>. */ + +#ifndef _RWLOCK_INTERNAL_H +#define _RWLOCK_INTERNAL_H + +/* There is a lot of padding in this structure. While it's not strictly + necessary on RISC-V, we're going to leave it in to be on the safe side in + case it's needed in the future. Most other architectures have the padding, + so this gives us the same extensibility as everyone else has. */ +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + int __cur_writer; + int __shared; + unsigned long int __pad1; + unsigned long int __pad2; + unsigned int __flags; +}; + +#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags + +#endif
\ No newline at end of file diff --git a/lib/libc/include/riscv64-linux-gnu/bits/typesizes.h b/lib/libc/include/riscv64-linux-gnu/bits/typesizes.h index 8cfcacef57..d9e9b274ac 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/typesizes.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/typesizes.h @@ -1,5 +1,5 @@ /* bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _BITS_TYPES_H # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." @@ -73,10 +73,14 @@ /* And for __rlim_t and __rlim64_t. */ # define __RLIM_T_MATCHES_RLIM64_T 1 + +/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ +# define __STATFS_MATCHES_STATFS64 1 #else # define __RLIM_T_MATCHES_RLIM64_T 0 -#endif +# define __STATFS_MATCHES_STATFS64 0 +#endif /* Number of descriptors that can fit in an `fd_set'. */ #define __FD_SETSIZE 1024 diff --git a/lib/libc/include/riscv64-linux-gnu/bits/wordsize.h b/lib/libc/include/riscv64-linux-gnu/bits/wordsize.h index db13f746a1..1c5e427762 100644 --- a/lib/libc/include/riscv64-linux-gnu/bits/wordsize.h +++ b/lib/libc/include/riscv64-linux-gnu/bits/wordsize.h @@ -1,5 +1,5 @@ /* Determine the wordsize from the preprocessor defines. RISC-V version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 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 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #if __riscv_xlen == (__SIZEOF_POINTER__ * 8) # define __WORDSIZE __riscv_xlen |
