aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-29Add documentation for __riscv_flush_icachePalmer Dabbelt
This function is used by GCC to enforce ordering between data writes and instruction fetches, and while we'd prefer that users rely on the GCC intrinsic when possible this is user visible in case that's not possible. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * manual/platform.texi: Add RISC-V documenation for __riscv_flush_icache.
2018-01-29Add RISC-V entries to config.h.inPalmer Dabbelt
These were autogenerated. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * config.h.in: Regenerate.
2018-01-29Skeleton documentation for the RISC-V portPalmer Dabbelt
During the upstreaming process it was suggested that I add a handful of small documentation entries about the RISC-V port, which I've collected here. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * manual/math.texi: RISC-V supports _Float128 and _Float64x.
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-29libnsl: Turn remaining symbols into compat symbols [BZ #22701]Florian Weimer
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-29Make build-many-glibcs.py clean git source directories.Joseph Myers
With the git checkouts of Hurd components in build-many-glibcs.py involving running autoreconf, there's a risk that generated files could be left behind by an old autoreconf run (if an old version of the sources generates those files in the source directory but a new version does not). This patch avoids that by using git clean -dxfq when updating git checkouts. In this patch, that's conditional on --replace-sources, to avoid removing any local not-checked-in files someone may have in their checkout unless the option has been specifically passed that says it's OK to blow old checkouts away, complete with any local changes to them. * scripts/build-many-glibcs.py (Context.git_checkout): Use git clean -dxfq for git updates when replacing sources.
2018-01-29Clean up build-many-glibcs.py libcilkrts disabling.Joseph Myers
The disabling of libcilkrts in build-many-glibcs.py has some peculiarities. It's only for the final GCC build, not the initial bootstrap one, whereas normally anything disabled for the final build should be disabled for the bootstrap one as well. And it's only for Hurd, when it's more natural by analogy with the libsanitizer disabling to disable this library unconditionally, not only for targets where it's known to break. This patch cleans up that disabling accordingly, adding a comment so it's obvious it can be removed once GCC 7 is too old to build glibc. * scripts/build-many-glibcs.py (Config.build_gcc): Use --disable-libcilkrts unconditionally, not just for the final GCC build for Hurd.
2018-01-29Use Linux 4.15 in build-many-glibcs.py.Joseph Myers
This patch makes build-many-glibcs.py use Linux 4.15. Other glibc updates for Linux 4.15 can wait until after the 2.27 release. * scripts/build-many-glibcs.py (Context.checkout): Default Linux version to 4.15.
2018-01-29lt_LT: Add alternative month names (bug 10871).Rafal Luzynski
[BZ #10871] * localedata/locales/lt_LT (alt_mon): Import from CLDR (nominative case).
2018-01-29be_BY, be_BY@latin: Add alternative month names (bug 10871).Rafal Luzynski
This patch also fixes spelling of lang_name in be_BY@latin, as reported by Ihar Hrachyshka. [BZ #10871] * localedata/locales/be_BY (mon): Rename to... (alt_mon): This, then synchronize with CLDR (nominative case). (abmon): Rename to... (ab_alt_mon): This, then synchronize with CLDR (nominative case). (mon): Import from CLDR (genitive case). (abmon): Likewise. * localedata/locales/be_BY@latin (mon): Rename to... (alt_mon): This. (mon): Add, proper genitive forms provided by Viktar Siarheichyk. * localedata/locales/be_BY@latin (lang_name): Reworded to "biełaruskaja mova".
2018-01-29el_CY, el_GR: Add alternative month names (bug 10871).Rafal Luzynski
[BZ #10871] * localedata/locales/el_CY (mon): Renamed to... (alt_mon): This. (mon): Import from CLDR (genitive case). * localedata/locales/el_GR: Likewise.
2018-01-29ru_RU, ru_UA: Add alternative month names (bug 10871).Rafal Luzynski
[BZ #10871] * localedata/locales/ru_RU (mon): Rename to... (alt_mon): This. (abmon): Rename to... (ab_alt_mon): This. (mon): Import from CLDR (genitive case). (abmon): Copy from the old content except the 5th month which is now in the genitive case, even when abbreviated. * localedata/locales/ru_UA: Likewise. * time/tst-strptime.c (day_tests): Add an actual example of a difference between %b and %Ob in Russian.
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: Include <sigsetops.h> from hurd/hurd/signal.hSamuel Thibault
* hurd/hurd/signal.h [__USE_EXTERN_INLINES][_LIBC][IS_IN(libc) || IS_IN(libpthread)]: Include <sigsetops.h>.
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 typoSamuel Thibault
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-28Revert "hurd: Fix building io/tst-fchownat.c"Samuel Thibault
This reverts commit fc221145a734d128d8f56f40d40fd4bb70a1d151.
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: Fix building io/tst-copy_file_range.cSamuel Thibault
* io/tst-copy_file_range.c [!defined CLONE_NEWNS]: Do not include <sys/mount.h>.
2018-01-28hurd: Fix building io/tst-fchownat.cSamuel Thibault
* io/tst-fchownat.c [!defined _POSIX_CHOWN_RESTRICTED]: Act like when _POSIX_CHOWN_RESTRICTED is defined to 0.
2018-01-28hurd: Fix building libio/tst-memstream3.cSamuel Thibault
FWRITE is already an fcntl.h macro. * libio/tst-memstream3.c (FWRITE): Rename to _FWRITE. (do_test_bz20181): Rename accordingly. * libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
2018-01-28hurd: add base abilist filesSamuel Thibault
* sysdeps/mach/hurd/libhurduser.abilist: New file. * sysdeps/mach/libmachuser.abilist: New file.
2018-01-28hurd: Add missing fcntl-internal.hThomas Schwinge
* hurd/fcntl-internal.h: 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 warningsSamuel Thibault
* hurd/hurd/lookup.h (__hurd_file_name_lookup, hurd_file_name_lookup, __hurd_file_name_split, hurd_file_name_split, __hurd_directory_name_split, hurd_directory_name_split, __hurd_file_name_lookup_retry, hurd_file_name_lookup_retry, hurd_file_name_path_lookup): Make lookup function parameter take a const char *name instead of char *name. * hurd/hurdlookup.c (__hurd_file_name_lookup, __hurd_file_name_split, __hurd_directory_name_split): Likewise. * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise. * hurd/path-lookup.c (hurd_file_name_path_lookup): Likewise.
2018-01-28hurd: Fix warningSamuel Thibault
* sysdeps/mach/hurd/spawni.c (__spawni): Make relpath and abspath const char * instead of char *.
2018-01-28hurd: Make build-many-glibcs.py use mainline gnumachSamuel Thibault
Some warnings need a couple of fixes in the gnumach headers. * scripts/build-many-glibcs.py (checkout_vcs): Add gnumach repository URLs, run autoreconf, and make it the default for now.
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: make build-many-glibcs.py use mainline migSamuel Thibault
Some warnings come from code generated by mig, so we need a very recent version for now. * scripts/build-many-glibcs.py (checkout_vcs): Add mig repository URL, and run autoreconf, make it the default for now.
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 gcc build in build-many-glibcs.pySamuel Thibault
gcc's libcilkrts has never actually supported GNU/Hurd, and doesn't automatically disable it, and the support was actually removed in gcc trunk, so that will never actually be fixed there. * scripts/build-many-glibcs.py [os == gnu] (build_gcc): Pass --disable-libcilkrts to gcc configure.
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>.
2018-01-27hurd: fix warningsSamuel Thibault
* sysdeps/generic/not-cancel.h: Include <fcntl.h>, <unistd.h>, <sys/wait.h>, <time.h>, <sys/uio.h>. (NOT_CANCEL_H): Add inclusion guard.
2018-01-27hurd: fix warningSamuel Thibault
* resolv/res-close.c: Include <stdlib.h>.
2018-01-27hurd: fix warningSamuel Thibault
* sysdeps/mach/hurd/profil.c: Reuse `a' variable instead of introducing a `c' variable.