summaryrefslogtreecommitdiff
path: root/sysdeps
AgeCommit message (Collapse)Author
2018-02-21aarch64: Fix bits/utmp.h for GCC 8HEADglibc-2.27-amp-branchSzabolcs Nagy
The same suppression of -Wstringop-truncation warnings as in commit 7532837d7b03b3ca5b9a63d77a5bd81dd23f3d9c but for aarch64. 2018-02-21 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/bits/utmp.h (struct utmp): Use __attribute_nonstring__.
2018-02-02aarch64: Update ILP32 abilistsSzabolcs Nagy
Update libc and libm abilists with copy_file_range, mlock2, pkey_* and _FloatN related symbols. Remove pthread_self from the libpthread abilist. This will need to be merged with the initial ilp32 abilist commit. 2018-01-26 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/ilp32/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/ilp32/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/ilp32/libpthread.abilist: Update.
2018-02-02aarch64: Fix jmp_buf-macros.h for ILP32.Szabolcs Nagy
The offset is different on ILP32 because __saved_mask is 4 byte aligned. 2017-11-28 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/jmp_buf-macros.h (SAVED_MASK_OFFSET): Fix for ILP32.
2018-02-02aarch64: Update ILP32 abilistsSzabolcs Nagy
Update libc and libm abilists with memfd_create and new _FloatN symbols. Remove __nis_hash and __p_secstodate from libnsl and libresolv abilists. This will need to be merged with the initial ilp32 abilist commit. 2017-11-27 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/ilp32/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/ilp32/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/ilp32/libnsl.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/ilp32/libresolv.abilist: Update.
2018-02-02aarch64: Update ILP32 abilistsSzabolcs Nagy
Update abilist files because a number of symbols got removed for GLIBC_2.27. ILP32 now needs separate localplt.data as well because it has no matherr PLT anymore. (Eventually this will be merged into the initial abilist commit.) 2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/ilp32/libc.abilist (__nss_group_lookup): Remove. (__nss_hosts_lookup): Remove. (__nss_passwd_lookup): Remove. * sysdeps/unix/sysv/linux/aarch64/ilp32/libm.abilist (_LIB_VERSION): Remove. (matherr): Remove. (pow10): Remove. (pow10f): Remove. (pow10l): Remove. * sysdeps/unix/sysv/linux/aarch64/ilp32/libresolv.abilist (_res_opcodes): Remove. * sysdeps/unix/sysv/linux/aarch64/ilp32/localplt.data: New file.
2018-02-02aarch64: Fix ipc_perm definition for ILP32Steve Ellcey
Here is another aarch64 ILP32 patch. The mode field in ipc_perm in ILP32 should be a 16 bit field, not a 32 bit one. This was out-of-sync with what the kernel had. This was causing sysvipc/test-sysvsem to fail in ILP32 mode. 2017-09-01 Yury Norov <ynorov@caviumnetworks.com> Steve Ellcey <sellcey@cavium.com> * sysdeps/unix/sysv/linux/aarch64/bits/ipc.h (ipc_perm): Ifdef and pad the mode field for ILP32.
2018-02-02aarch64: Set ilp32 minimum linux version to 4.12Szabolcs Nagy
Mainline linux does not support ilp32 yet, but there is support for this abi since linux v4.12 in the arm64 linux repo under ilp32 staging branches. 2017-09-01 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/configure.ac (arch_minimum_kernel): Set to 4.12.0 on ILP32. * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate.
2018-02-02aarch64: Add ILP32 supportSteve Ellcey
Add support for the ILP32 abi variant to aarch64. 2017-09-01 Andrew Pinski <andrew.pinski@caviumnetworks.com> Yury Norov <ynorov@caviumnetworks.com> Steve Ellcey <sellcey@caviumnetworks.com> * elf/cache.c (print_entry): Add FLAG_AARCH64_LIB32. * sysdeps/aarch64/configure.ac (HAVE_AARCH64_ILP32): New define. (default-abi): Allow for ilp32 ABI. * sysdeps/aarch64/configure: Regenerate. * sysdeps/aarch64/Implies: Deleted. * sysdeps/aarch64/ilp32/Implies: New file. * sysdeps/aarch64/ilp32/Implies-after: New file. * sysdeps/aarch64/lp64/Implies: New file. * sysdeps/aarch64/lp64/Implies-after: New file. * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h (__PTHREAD_RWLOCK_INT_FLAGS_SHARED): Set to 1. * sysdeps/aarch64/preconfigure (machine): Check for ilp32/lp64. * sysdeps/aarch64/tls-macros.h (TLS_IE): Remove register specification for __result and ifdef for ILP32. * sysdeps/generic/ldconfig.h (FLAG_AARCH64_LIB32): New define. * sysdeps/unix/sysv/linux/aarch64/Implies: Remove generic and wordsize-64 entries. * sysdeps/unix/sysv/linux/aarch64/Makefile (abi-variants): Add new variants for ilp32 and ilp32_be. (abi-lp64-condition, abi-lp64_be-condition): Check for __WORDSIZE equal to 64. (abi-ilp32-condition, abi-ilp32_be-condition): New. * sysdeps/unix/sysv/linux/aarch64/configure.ac (arch_minimum_kernel): Use different value for ILP32. (LIBC_SLIBDIR_RTLDDIR): Modify for ILP32. * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. * sysdeps/unix/sysv/linux/aarch64/ilp32/Implies: New file. * sysdeps/unix/sysv/linux/aarch64/ilp32/c++-types.data: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/statfs.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/utmp.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/bits/utmpx.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/kernel-features.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/Implies: Add unix/sysv/linux/aarch64. * sysdeps/unix/sysv/linux/aarch64/ioctl.S: Move to lp64 directory. * sysdeps/unix/sysv/linux/aarch64/mmap.c: Likewise. * sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/aarch64/c++-types.data: Likewise. * sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed: Likewise. * sysdeps/unix/sysv/linux/aarch64/ipc_priv.h (__IPC_64): Check __ILP32 when setting. * sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file): Check for EM_AARCH64 when processing ELFCLASS32 object. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h (F_GETLK, F_SETLCK, F_SETLKW): Check for __OFF_T_MATCHES_OFF64_T when defining.
2018-02-02aarch64: Add abilists for ILP32 supportSteve Ellcey
Rename lp64 abilist files and add new ilp32 abilist files with GLIBC_2.27 symbol versions. 2017-09-01 Andrew Pinski <andrew.pinski@caviumnetworks.com> Yury Norov <ynorov@caviumnetworks.com> Steve Ellcey <sellcey@caviumnetworks.com> * sysdeps/unix/sysv/linux/aarch64/ilp32/ld.abilist: New file. * sysdeps/unix/sysv/linux/aarch64/ilp32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ilp32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Moved to lp64 directory. * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise.
2018-01-30allocalim.h: use __glibc_likely instead of __builtin_expectSamuel Thibault
* sysdeps/pthread/allocalim.h (__libc_use_alloca): Use __glibc_likely instead of __builtin_expect.
2018-01-30hurd: include generic's hp-timing.h instead of copying itSamuel Thibault
* sysdeps/mach/hurd/hp-timing.h: include <sysdeps/generic/hp-timing.h> instead of copying it.
2018-01-30hurd: Add tlsdesc.symSamuel Thibault
* sysdeps/mach/hurd/i386/tlsdesc.sym: New file.
2018-01-30hurd: disable hp timingSamuel Thibault
We don't have support for hp timing for now, even the i686 variant, which needs to know the CPU speed. Copied from sysdeps/generic/hp-timing.h * sysdeps/mach/hurd/hp-timing.h: New file.
2018-01-29hurd: Fix comments for FREAD and FWRITESamuel Thibault
* bits/fcntl.h: Fix comment for FREAD and FWRITE. * sysdeps/mach/hurd/bits/fcntl.h: Likewise.
2018-01-29allocalim.h: Fix codestyleSamuel Thibault
* sysdeps/pthread/allocalim.h (__libc_use_alloca): Commute operands of || to respect codestyle.
2018-01-29Reject invalid definitions of _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, ↵Andreas Schwab
_POSIX_VDISABLE POSIX requires that the constants _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, and _POSIX_VDISABLE are always defined to a value other than -1.
2018-01-29hurd: Add expected ABI listsSamuel Thibault
* hurd/Versions: Fix version when _hurd_exec_paths was added. * mach/Versions: Fix version when __mach_host_self_ was added. * sysdeps/mach/hurd/i386/ld.abilist: New file. * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: New file. * sysdeps/mach/hurd/i386/libanl.abilist: New file. * sysdeps/mach/hurd/i386/libc.abilist: New file. * sysdeps/mach/hurd/i386/libcrypt.abilist: New file. * sysdeps/mach/hurd/i386/libdl.abilist: New file. * sysdeps/mach/hurd/i386/libm.abilist: New file. * sysdeps/mach/hurd/i386/libnsl.abilist: New file. * sysdeps/mach/hurd/i386/libresolv.abilist: New file. * sysdeps/mach/hurd/i386/librt.abilist: New file. * sysdeps/mach/hurd/i386/libutil.abilist: New file.
2018-01-29RISC-V: Add ipc_priv.hPalmer Dabbelt
This contains a definition of __IPC_64 that matches the RISC-V Linux ABI. 2018-01-29 Darius Rad <darius@bluespec.com> * sysdeps/unix/sysv/linux/riscv/ipc_priv.h: New file.
2018-01-29RISC-V: Build InfastructurePalmer Dabbelt
This patch lays out the top-level orginazition of the RISC-V port. It contains all the Implies files as well as various other fragments of build infastructure for the RISC-V port. This contains the only change to a shared file: config.h.in. RISC-V is a family of base ISAs with optional extensions. The base ISAs are RV32I and RV64I, which are 32-bit and 64-bit integer-only ISAs, but this port currently only supports RV64I based systems. Support for RISC-V lives in in sysdeps/riscv. In addition to these ISAs, our glibc port supports most of the currently-defined extensions: the A extension for atomics, the M extension for multiplication, the C extension for compressed instructions, and the F/D extensions for single/double precision IEEE floating-point. Most of these extensions are handled by GCC, but glibc defines various floating-point wrappers and emulation routines as well as some atomic wrappers. We support running glibc-based programs on Linux, the support for which lives in sysdeps/unix/sysv/linux/riscv. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/Implies: New file. * sysdeps/riscv/Makefile: Likewise. * sysdeps/riscv/configure: Likewise. * sysdeps/riscv/configure.ac: Likewise. * sysdeps/riscv/nptl/Makefile: Likewise. * sysdeps/riscv/preconfigure: Likewise. * sysdeps/riscv/rv64/Implies-after: Likewise. * sysdeps/riscv/rv64/rvd/Implies: Likewise. * sysdeps/riscv/rv64/rvf/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/Makefile: Likewise. * sysdeps/unix/sysv/linux/riscv/Versions: Likewise. * sysdeps/unix/sysv/linux/riscv/configure: Likewise. * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. * sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Likewise. * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise.
2018-01-29RISC-V: Add ABI ListsPalmer Dabbelt
I started with the aarch64 ABI lists and manually went through each difference, ensuring that the missing entries had been deprecated along the line. Darius generated the ulps files by running the test cases on QEMU. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/nofpu/libm-test-ulps: New file. * sysdeps/riscv/nofpu/libm-test-ulps-name: Likewise. * sysdeps/riscv/rv64/rvd/libm-test-ulps: Likewise. * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Likewise. * sysdeps/unix/sysv/linux/riscv/localplt.data: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/c++-types.data: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise.
2018-01-29RISC-V: Linux Startup and Dynamic Loading CodePalmer Dabbelt
This contains the Linux-specific code for loading programs on RISC-V. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/unix/sysv/linux/riscv/dl-static.c: New file. * sysdeps/unix/sysv/linux/riscv/ldconfig.h: Likewise. * sysdeps/unix/sysv/linux/riscv/ldsodefs.h: Likewise.
2018-01-29RISC-V: Linux ABIPalmer Dabbelt
Linux-specific code that is required for maintaining ABI compatibility. This doesn't contain the actual system call interface, that is split out in order to avoid having a patch that's too big. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/nptl/pthread-offsets.h: New file. * sysdeps/riscv/nptl/pthreaddef.h: Likewise. * sysdeps/unix/sysv/linux/riscv/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/riscv/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h: Likewise. * sysdeps/unix/sysv/linux/riscv/dl-cache.h: Likewise. * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Likewise. * sysdeps/unix/sysv/linux/riscv/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/riscv/init-first.c: Likewise. * sysdeps/unix/sysv/linux/riscv/libc-vdso.h: Likewise. * sysdeps/unix/sysv/linux/riscv/makecontext.c: Likewise. * sysdeps/unix/sysv/linux/riscv/readelflib.c: Likewise. * sysdeps/unix/sysv/linux/riscv/register-dump.h: Likewise. * sysdeps/unix/sysv/linux/riscv/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/riscv/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/riscv/sys/cachectl.h: Likewise. * sysdeps/unix/sysv/linux/riscv/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/riscv/sys/ucontext.h: Likewise. * sysdeps/unix/sysv/linux/riscv/sys/user.h: Likewise. * sysdeps/unix/sysv/linux/riscv/ucontext-macros.h: Likewise. * sysdeps/unix/sysv/linux/riscv/ucontext_i.sym: Likewise.
2018-01-29RISC-V: Linux Syscall InterfacePalmer Dabbelt
Contains the Linux system call interface, as well as the definitions of a handful of system calls. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/nptl/nptl-sysdep.S: New file. * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise. * sysdeps/unix/sysv/linux/riscv/clone.S: Likewise. * sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise. * sysdeps/unix/sysv/linux/riscv/pt-vfork.S: Likewise. * sysdeps/unix/sysv/linux/riscv/syscall.c: Likewise. * sysdeps/unix/sysv/linux/riscv/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/riscv/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/riscv/vfork.S: Likewise.
2018-01-29RISC-V: Atomic and Locking RoutinesPalmer Dabbelt
This patch implements various atomic and locking routines on RISC-V. We mandate the A extension on Linux-capable RISC-V systems, so this can rely on always having the various atomic instructions availiable. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: New file. * sysdeps/riscv/nptl/bits/semaphore.h: Likewise. * sysdeps/riscv/nptl/libc-lowlevellock.c: Likewise. * sysdeps/unix/sysv/linux/riscv/atomic-machine.h: Likewise.
2018-01-29RISC-V: Hard Float SupportPalmer Dabbelt
This patch contains hardware floating-point support for the RISC-V ISA. While we currently only support hard-float systems with both the F and D extensions, I've left the F-specific code split out into seperate folders in order to ease adding support for F-only and RV32I-based systems in the future. I gave this a quick once-over and believe I've removed all the code that implements RV32IF, RV32IFD, and RV64IF targets. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/rv64/rvd/s_ceil.c: New file. * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise. * sysdeps/riscv/rv64/rvd/s_llrint.c: Likewise. * sysdeps/riscv/rv64/rvd/s_llround.c: Likewise. * sysdeps/riscv/rv64/rvd/s_lrint.c: Likewise. * sysdeps/riscv/rv64/rvd/s_lround.c: Likewise. * sysdeps/riscv/rv64/rvd/s_nearbyint.c: Likewise. * sysdeps/riscv/rv64/rvd/s_rint.c: Likewise. * sysdeps/riscv/rv64/rvd/s_round.c: Likewise. * sysdeps/riscv/rv64/rvd/s_roundeven.c: Likewise. * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise. * sysdeps/riscv/rv64/rvf/s_llrintf.c: Likewise. * sysdeps/riscv/rv64/rvf/s_llroundf.c: Likewise. * sysdeps/riscv/rv64/rvf/s_lrintf.c: Likewise. * sysdeps/riscv/rv64/rvf/s_lroundf.c: Likewise. * sysdeps/riscv/rvd/e_sqrt.c: Likewise. * sysdeps/riscv/rvd/s_copysign.c: Likewise. * sysdeps/riscv/rvd/s_finite.c: Likewise. * sysdeps/riscv/rvd/s_fma.c: Likewise. * sysdeps/riscv/rvd/s_fmax.c: Likewise. * sysdeps/riscv/rvd/s_fmin.c: Likewise. * sysdeps/riscv/rvd/s_fpclassify.c: Likewise. * sysdeps/riscv/rvd/s_isinf.c: Likewise. * sysdeps/riscv/rvd/s_isnan.c: Likewise. * sysdeps/riscv/rvd/s_issignaling.c: Likewise. * sysdeps/riscv/rvf/e_sqrtf.c: Likewise. * sysdeps/riscv/rvf/fclrexcpt.c: Likewise. * sysdeps/riscv/rvf/fegetenv.c: Likewise. * sysdeps/riscv/rvf/fegetmode.c: Likewise. * sysdeps/riscv/rvf/fegetround.c: Likewise. * sysdeps/riscv/rvf/feholdexcpt.c: Likewise. * sysdeps/riscv/rvf/fesetenv.c: Likewise. * sysdeps/riscv/rvf/fesetexcept.c: Likewise. * sysdeps/riscv/rvf/fesetmode.c: Likewise. * sysdeps/riscv/rvf/fesetround.c: Likewise. * sysdeps/riscv/rvf/feupdateenv.c: Likewise. * sysdeps/riscv/rvf/fgetexcptflg.c: Likewise. * sysdeps/riscv/rvf/fraiseexcpt.c: Likewise. * sysdeps/riscv/rvf/fsetexcptflg.c: Likewise. * sysdeps/riscv/rvf/ftestexcept.c: Likewise. * sysdeps/riscv/rvf/get-rounding-mode.h: Likewise. * sysdeps/riscv/rvf/math_private.h: Likewise. * sysdeps/riscv/rvf/s_ceilf.c: Likewise. * sysdeps/riscv/rvf/s_copysignf.c: Likewise. * sysdeps/riscv/rvf/s_finitef.c: Likewise. * sysdeps/riscv/rvf/s_floorf.c: Likewise. * sysdeps/riscv/rvf/s_fmaf.c: Likewise. * sysdeps/riscv/rvf/s_fmaxf.c: Likewise. * sysdeps/riscv/rvf/s_fminf.c: Likewise. * sysdeps/riscv/rvf/s_fpclassifyf.c: Likewise. * sysdeps/riscv/rvf/s_isinff.c: Likewise. * sysdeps/riscv/rvf/s_isnanf.c: Likewise. * sysdeps/riscv/rvf/s_issignalingf.c: Likewise. * sysdeps/riscv/rvf/s_nearbyintf.c: Likewise. * sysdeps/riscv/rvf/s_rintf.c: Likewise. * sysdeps/riscv/rvf/s_roundevenf.c: Likewise. * sysdeps/riscv/rvf/s_roundf.c: Likewise. * sysdeps/riscv/rvf/s_truncf.c: Likewise.
2018-01-29RISC-V: Generic <math.h> and soft-fp RoutinesPalmer Dabbelt
This patch contains the miscellaneous math routines and headers we have implemented for RISC-V. This includes things from <math.h> that aren't completely ISA-generic, floating-point bit manipulation, and soft-fp hooks. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/bits/fenv.h: New file. * sysdeps/riscv/e_sqrtl.c: Likewise. * sysdeps/riscv/fpu_control.h: Likewise. * sysdeps/riscv/math-tests.h: Likewise. * sysdeps/riscv/nofpu/Implies: Likewise. * sysdeps/riscv/sfp-machine.h: Likewise. * sysdeps/riscv/tininess.h: Likewise.
2018-01-29RISC-V: Thread-Local Storage SupportPalmer Dabbelt
This patch implements TLS support for RISC-V. We support all four standard TLS addressing modes (LE, IE, LD, and GD) when running on Linux via NPTL. There is a draft psABI document that defines our TLS ABI here https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md#thread-local-storage 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/dl-tls.h: New file. * sysdeps/riscv/libc-tls.c: Likewise. * sysdeps/riscv/nptl/tcb-offsets.sym: Likewise. * sysdeps/riscv/nptl/tls.h: Likewise. * sysdeps/riscv/stackinfo.h: Likewise.
2018-01-29RISC-V: ABI ImplementationPalmer Dabbelt
This patch contains code that needs to directly know about the RISC-V ABI, which is specified in a work-in-progress psABI document: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md This is meant to contain all the RISC-V code that needs to explicitly name registers or manage in-memory structure layout. This does not contain any of the Linux-specific code. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/__longjmp.S: New file. * sysdeps/riscv/backtrace.c: Likewise. * sysdeps/riscv/bits/endian.h: Likewise. * sysdeps/riscv/bits/setjmp.h: Likewise. * sysdeps/riscv/bits/wordsize.h: Likewise. * sysdeps/riscv/bsd-_setjmp.c: Likewise. * sysdeps/riscv/bsd-setjmp.c: Likewise. * sysdeps/riscv/dl-trampoline.S: Likewise. * sysdeps/riscv/gccframe.h: Likewise. * sysdeps/riscv/jmpbuf-offsets.h: Likewise. * sysdeps/riscv/jmpbuf-unwind.h: Likewise. * sysdeps/riscv/machine-gmon.h: Likewise. * sysdeps/riscv/memusage.h: Likewise. * sysdeps/riscv/setjmp.S: Likewise. * sysdeps/riscv/sys/asm.h: Likewise. * sysdeps/riscv/tls-macros.h: Likewise.
2018-01-29sysdeps/init_array: Add PREINIT_FUNCTION to crti.SPalmer Dabbelt
The RISC-V port contains a crti.S that simply contains a link to PREINIT_FUNCTION (when defined). As this should be entirely generic, Joseph Myers suggested that we update the generic init_array version to contain this. Since RISC-V is the only user of init_array this won't break any existing ports. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/init_array/crti.S (.section .init_array): Add PREINIT_FUNCTION when defined.
2018-01-29microblaze: don't use copy_file_range syscall with kernel headers < 4.10Romain Naour
copy_file_range syscall was added for microblaze in 4.10. This patch makes the MicroBlaze kernel-features.h undefine __ASSUME_COPY_FILE_RANGE for toolchains built with kernel headers < 4.10. * sysdeps/unix/sysv/linux/microblaze/kernel-features.h (__ASSUME_COPY_FILE_RANGE) [__LINUX_KERNEL_VERSION < 0x040A00]: Undef. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7181e5590e5ba898804aef3ee6be7f27606e6f8b Signed-off-by: Romain Naour <romain.naour@gmail.com>
2018-01-29hurd: Fix includesSamuel Thibault
* sysdeps/mach/hurd/net/ethernet.h: Include <stdint.h>. * sysdeps/mach/hurd/net/if_arp.h: Include <stdint.h>. * sysdeps/mach/hurd/net/if_ppp.h: Do not include non-existing <net/ppp_defs.h>.
2018-01-29hurd: Fix _POSIX_VDISABLE valueSamuel Thibault
* sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_VDISABLE): Set to '\0' instead of invalid -1.
2018-01-28hurd: Build stubs for new gnumach.defsSamuel Thibault
* mach/Makefile (user-interfaces): Add mach/gnumach. * sysdeps/mach/configure.ac (mach_interface_list): Add gnumach. * sysdeps/mach/configure (mach_interface_list): Regenerate.
2018-01-28hurd: Fix allocalim buildSamuel Thibault
* sysdeps/pthread/allocalim.h [!defined PTHREAD_STACK_MIN]: Do not check size against PTHREAD_STACK_MIN.
2018-01-28hurd: Fix posix optionsSamuel Thibault
_POSIX_CHOWN_RESTRICTED and _POSIX_NO_TRUNC should be always defined. * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC): Define to 0.
2018-01-28hurd: Fix getifaddrs / freeifaddrs expositionSamuel Thibault
400669754de4 ('hurd: Fix nscd build') had the side effect of making libc's freeaddrinfo expose freeifaddrs through __check_pf. We can just move the renames to gai.c itself, along others. * sysdeps/mach/hurd/check_pf.c (__getifaddrs, __freeifaddrs): Do not define macros. * nscd/gai.c (__getifaddrs): Define macro to getifaddrs. (__freeifaddrs): Define macro to freeifaddrs.
2018-01-28hurd: take __USE_EXTERN_INLINES into account and restrict inlinesSamuel Thibault
* hurd/hurd.h (__hurd_fail): Always declare function, and provide inline version only if __USE_EXTERN_INLINES is defined. * hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail, __hurd_sockfail): Likewise. (_hurd_fd_get): Always declare functions, and provide inline versions only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc). * hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get, _hurd_port_get, _hurd_port_free, _hurd_port_locked_set, _hurd_port_set): Always declare functions, and provide inline versions only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc). * hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock, _hurd_critical_section_unlock): Likewise. * hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp, * __hurd_threadvar_location): Likewise. * hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear): Likewise. * mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock, __mutex_unlock, __mutex_trylock): Always declare functions, and provide inline versions only if __USE_EXTERN_INLINES and _LIBC are defined. * mach/mach/mig_support.h (__mig_strncpy): Likewise. * sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock, __spin_lock_locked): Likewise. * sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock, __spin_lock_locked): Likewise. * mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1. * hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set, __hurd_threadvar_location_from_sp, __hurd_threadvar_location, _hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
2018-01-28hurd: add base abilist filesSamuel Thibault
* sysdeps/mach/hurd/libhurduser.abilist: New file. * sysdeps/mach/libmachuser.abilist: New file.
2018-01-28hurd: Fix nscd buildSamuel Thibault
nscd won't find check_* from inet/, it needs a sysdeps file. * sysdeps/mach/hurd/check_native.c: New file. * sysdeps/mach/hurd/check_pf.c: New file.
2018-01-28hurd: Fix warningSamuel Thibault
* sysdeps/mach/hurd/spawni.c (__spawni): Make relpath and abspath const char * instead of char *.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/mach/hurd/getresgid.c (__getresgid): Set result from critical section to make code simpler and avoid warning. * sysdeps/mach/hurd/getresuid.c (__getresuid): Set result from critical section to make code simpler and avoid warning.
2018-01-27hurd: Fix enabling vm_copySamuel Thibault
Benchmarked on http://lists.gnu.org/archive/html/bug-hurd/2014-12/msg00081.html * sysdeps/mach/pagecopy.h (PAGE_THRESHOLD): Rename to PAGE_COPY_THRESHOLD and set to benchmarked 16384.
2018-01-27hurd: fix warningSamuel Thibault
Making `special_profil_failure' both avoids warning "variable 'special_profil_failure' set but not used", and makes it easier to access with gdb. * sysdeps/mach/hurd/profil.c (special_profil_failure): Move variable to global scope.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/mach/hurd/dl-sysdep.c (_exit): Call LOSE and abort() if __task_terminate would ever return successfully.
2018-01-27hurd: drop elder MACH_IPC_COMPAT handlingSamuel Thibault
This was dropped from GNU Mach in 2006. * mach/Machrules (MIGFLAGS): Do not set -DMACH_IPC_COMPAT=0. * mach/mach/mach_traps.h: Drop comment about MACH_IPC_COMPAT. * sysdeps/mach/hurd/fork.c (__fork): Drop special casing MACH_IPC_COMPAT.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/mach/hurd/Makefile [$(subdir)==nis]: Add -DUSE_BINDINGDIR=1 to CFLAGS-ypclnt.c.
2018-01-27hurd: fix warningSamuel Thibault
timer_ptr2id and timer_id2ptr are used to convert between application-visible timer_t and struct timer_node *. timer_ptr2id was made to use void * instead of timer_t in 49b650430eb5 ('Update.') for no reason. It happens that on Linux timer_t is void *, so both that change and this commit are no-ops there, but not on systems where timer_t is not void *. Using timer_ptr2id for filling sival_ptr also does not make sense since that actually is a void *. * sysdeps/pthread/posix-timer.h (timer_ptr2id): Cast to timer_t instead of void *. * sysdeps/pthread/timer_create.c (timer_create): Do not use timer_ptr2id to cast struct timer_node * to void *.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Cast vm_address_t * to ElfW(Addr) * for dl_main parameter.
2018-01-27hurd: fix warningsSamuel Thibault
* sysdeps/generic/sigsetops.h (__sigemptyset, __sigfillset, __sigandset, __sigorset, __sigaddset, __sigdelset): Make them really return 0.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/generic/sigset-cvt-mask.h: Include <sigsetops.h>.