1. 17 8月, 2020 1 次提交
  2. 12 8月, 2020 1 次提交
  3. 04 8月, 2020 1 次提交
  4. 21 2月, 2020 1 次提交
  5. 13 2月, 2020 1 次提交
    • R
      fix remaining direct use of stat syscalls outside fstatat.c · c9ebff47
      Rich Felker 提交于
      because struct stat is no longer assumed to correspond to the
      structure used by the stat-family syscalls, it's not valid to make any
      of these syscalls directly using a buffer of type struct stat.
      
      commit 94938920 moved all logic around
      this change for stat-family functions into fstatat.c, making the
      others wrappers for it. but a few other direct uses of the syscall
      were overlooked. the ones in tmpnam/tempnam are harmless since the
      syscalls are just used to test for file existence. however, the uses
      in fchmodat and __map_file depend on getting accurate file properties,
      and these functions may actually have been broken one or more mips
      variants due to removal of conversion hacks from syscall_arch.h.
      
      as a low-risk fix, simply use struct kstat in place of struct stat in
      the affected places.
      c9ebff47
  6. 07 2月, 2020 5 次提交
  7. 05 2月, 2020 3 次提交
  8. 04 2月, 2020 1 次提交
    • R
      move riscv64 register index constants to signal.h · 329e7929
      Rich Felker 提交于
      under _GNU_SOURCE for namespace cleanliness, analogous to other archs.
      the original placement in sys/reg.h seems not to have been motivated;
      such a header isn't even present on other implementations.
      329e7929
  9. 31 1月, 2020 1 次提交
    • R
      remove legacy clock_gettime and gettimeofday from public syscall.h · 5a105f19
      Rich Felker 提交于
      some nontrivial number of applications have historically performed
      direct syscalls for these operations rather than using the public
      functions. such usage is invalid now that time_t is 64-bit and these
      syscalls no longer match the types they are used with, and it was
      already harmful before (by suppressing use of vdso).
      
      since syscall() has no type safety, incorrect usage of these syscalls
      can't be caught at compile-time. so, without manually inspecting or
      running additional tools to check sources, the risk of such errors
      slipping through is high.
      
      this patch renames the syscalls on 32-bit archs to clock_gettime32 and
      gettimeofday_time32, so that applications using the original names
      will fail to build without being fixed.
      
      note that there are a number of other syscalls that may also be unsafe
      to use directly after the time64 switchover, but (1) these are the
      main two that seem to be in widespread use, and (2) most of the others
      continue to have valid usage with a null timeval/timespec argument, as
      the argument is an optional timeout or similar.
      5a105f19
  10. 29 1月, 2020 2 次提交
  11. 28 1月, 2020 1 次提交
  12. 26 1月, 2020 1 次提交
  13. 23 1月, 2020 1 次提交
    • L
      fix riscv64 a_cas inline asm operand sign extension · 83350eb1
      Luís Marques 提交于
      This patch adds an explicit cast to the int arguments passed to the
      inline asm used in the RISC-V's implementation of `a_cas`, to ensure
      that they are properly sign extended to 64 bits. They aren't
      automatically sign extended by Clang, and GCC technically also doesn't
      guarantee that they will be sign extended.
      83350eb1
  14. 21 1月, 2020 1 次提交
  15. 17 1月, 2020 1 次提交
    • A
      add thumb2 support to arm assembler memcpy · 91e662d1
      Andre McCurdy 提交于
      For Thumb2 compatibility, replace two instances of a single
      instruction "orr with a variable shift" with the two instruction
      equivalent. Neither of the replacements are in a performance critical
      loop.
      91e662d1
  16. 16 1月, 2020 1 次提交
    • R
      fix incorrect __hwcap seen in dynamic-linked __set_thread_area · 0ff18be2
      Rich Felker 提交于
      the bug fixed in commit b82cd6c7 was
      mostly masked on arm because __hwcap was zero at the point of the call
      from the dynamic linker to __set_thread_area, causing the access to
      libc.auxv to be skipped and kuser_helper versions of TLS access and
      atomics to be used instead of the armv6 or v7 versions. however, on
      kernels with kuser_helper removed for hardening it would crash.
      
      since __set_thread_area potentially uses __hwcap, it must be
      initialized before the function is called. move the AT_HWCAP lookup
      from stage 3 to stage 2b.
      0ff18be2
  17. 12 1月, 2020 1 次提交
  18. 02 1月, 2020 4 次提交
    • R
      fix wcwidth wrongly returning 0 for most of planes 4 and up · 70d80609
      Rich Felker 提交于
      commit 1b0ce9af introduced this bug
      back in 2012 and it was never noticed, presumably since the affected
      planes are essentially unused in Unicode.
      70d80609
    • M
      unconditonally define alloca as __builtin_alloca · a56ec7e8
      Michael Forney 提交于
      This enables alternative compilers, which may not define __GNUC__,
      to implement alloca, which is still fairly widely used.
      
      This is similar to how stdarg.h already works in musl; compilers must
      implement __builtin_va_arg, there is no fallback definition.
      a56ec7e8
    • R
      update COPYRIGHT year · d3f7df23
      Rich Felker 提交于
      d3f7df23
    • R
      remove gratuitous aligned attribute from __ptrace_syscall_info · ac89e2cc
      Rich Felker 提交于
      this change was discussed on the mailing list thread for the linux
      uapi v5.3 patches, and submitted as a v2 patch, but overlooked when I
      applied the patches much later.
      
      revert commit f291c09e and apply the
      v2 as submitted; the net change is just padding.
      
      notes by Szabolcs Nagy follow:
      
      compared to the linux uapi (and glibc) a padding is used instead of
      aligned attribute for keeping the layout the same across targets, this
      means the alignment of the struct may be different on some targets
      (e.g. m68k where uint64_t is 2 byte aligned) but that should not affect
      syscalls and this way the abi does not depend on nonstandard extensions.
      ac89e2cc
  19. 01 1月, 2020 3 次提交
    • R
      fix fdpic regression in dynamic linker with overly smart compilers · d6bbea2a
      Rich Felker 提交于
      at least gcc 9 broke execution of DT_INIT/DT_FINI for fdpic archs
      (presently only sh) by recognizing that the stores to the
      compound-literal function descriptor constructed to call them were
      dead stores. there's no way to make a "may_alias function", so instead
      launder the descriptor through an asm-statement barrier. in practice
      just making the compound literal volatile seemed to have worked too,
      but this should be less of a hack and more accurately convey the
      semantics of what transformations are not valid.
      d6bbea2a
    • R
      fix crashing ldso on archs where __set_thread_area examines auxv · b82cd6c7
      Rich Felker 提交于
      commit 1c84c999 moved the call to
      __init_tp above the initialization of libc.auxv, inadvertently
      breaking archs where __set_thread_area examines auxv for the sake of
      determining the TLS/atomic model needed at runtime. this broke armv6
      and sh2.
      b82cd6c7
    • R
      move stage3_func typedef out of shared internal dynlink.h header · b529ec9b
      Rich Felker 提交于
      this interface contract is entirely internal to dynlink.c.
      b529ec9b
  20. 31 12月, 2019 9 次提交
    • S
      mips: add clone3 syscall numbers from linux v5.4 · 2fc29fcf
      Szabolcs Nagy 提交于
      the syscall numbers were reserved in v5.3 but not wired up on mips, see
      
        linux commit 0671c5b84e9e0a6d42d22da9b5d093787ac1c5f3
        MIPS: Wire up clone3 syscall
      2fc29fcf
    • S
      mips: add hwcap bits from linux v5.4 · a7df9c75
      Szabolcs Nagy 提交于
      mips application specific isa extensions were previously not exported
      in hwcaps so userspace could not apply optimized code at runtime.
      
        linux commit 38dffe1e4dde1d3174fdce09d67370412843ebb5
        MIPS: elf_hwcap: Export userspace ASEs
      a7df9c75
    • S
      sys/wait.h: add P_PIDFD from linux v5.4 · f296be74
      Szabolcs Nagy 提交于
      allows waiting on a pidfd, in the future it might allow retrieving the
      exit status by a non-parent process, see
      
        linux commit 3695eae5fee0605f316fbaad0b9e3de791d7dfaf
        pidfd: add P_PIDFD to waitid()
      f296be74
    • S
      netinet/tcp.h: add new tcp_info fields from linux v5.4 · 5e0c9f24
      Szabolcs Nagy 提交于
      tcpi_rcv_ooopack for tracking connection quality:
      
        linux commit f9af2dbbfe01def62765a58af7fbc488351893c3
        tcp: Add TCP_INFO counter for packets received out-of-order
      
      tcpi_snd_wnd peer window size for diagnosing tcp performance problems:
      
        linux commit 8f7baad7f03543451af27f5380fc816b008aa1f2
        tcp: Add snd_wnd to TCP_INFO
      5e0c9f24
    • S
      sys/prctl.h: add PR_*_TAGGED_ADDR_* from linux v5.4 · 5675aaa5
      Szabolcs Nagy 提交于
      per thread prctl commands to relax the syscall abi such that top bits
      of user pointers are ignored in the kernel. this allows the use of
      those bits by hwasan or by mte to color pointers and memory on aarch64:
      
        linux commit 63f0c60379650d82250f22e4cf4137ef3dc4f43d
        arm64: Introduce prctl() options to control the tagged user addresses ABI
      5675aaa5
    • S
      sys/mman.h: add MADV_COLD and MADV_PAGEOUT from linux v5.4 · d95ead26
      Szabolcs Nagy 提交于
      These were mainly introduced so android can optimize the memory usage
      of unused apps.
      
      MADV_COLD hints that the memory range is currently not needed (unlike
      with MADV_FREE the content is not garbage, it needs to be swapped):
      
        linux commit 9c276cc65a58faf98be8e56962745ec99ab87636
        mm: introduce MADV_COLD
      
      MADV_PAGEOUT hints that the memory range is not needed for a long time
      so it can be reclaimed immediately independently of memory pressure
      (unlike with MADV_DONTNEED the content is not garbage):
      
        linux commit 1a4e58cce84ee88129d5d49c064bd2852b481357
        mm: introduce MADV_PAGEOUT
      d95ead26
    • S
      add clone3 syscall number from linux v5.3 · fa765ca5
      Szabolcs Nagy 提交于
      the syscall number is reserved on all targets, but it is not wired up
      on all targets, see
      
        linux commit 8f6ccf6159aed1f04c6d179f61f6fb2691261e84
        Merge tag 'clone3-v5.3' of ... brauner/linux
      
        linux commit 8f3220a806545442f6f26195bc491520f5276e7c
        arch: wire-up clone3() syscall
      
        linux commit 7f192e3cd316ba58c88dfa26796cf77789dd9872
        fork: add clone3
      fa765ca5
    • S
      add pidfd_open syscall number from linux v5.3 · a4528911
      Szabolcs Nagy 提交于
      see
      
        linux commit 7615d9e1780e26e0178c93c55b73309a5dc093d7
        arch: wire-up pidfd_open()
      
        linux commit 32fcb426ec001cb6d5a4a195091a8486ea77e2df
        pid: add pidfd_open()
      a4528911
    • S
      sys/ptrace.h: add PTRACE_GET_SYSCALL_INFO from linux v5.3 · f291c09e
      Szabolcs Nagy 提交于
      ptrace API to get details of the syscall the tracee is blocked in, see
      
        linux commit 201766a20e30f982ccfe36bebfad9602c3ff574a
        ptrace: add PTRACE_GET_SYSCALL_INFO request
      
      the align attribute was used to keep the layout the same across targets
      e.g. on m68k uint32_t is 2 byte aligned, this helps with compat ptrace.
      f291c09e