public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/vineet/arc-port-latest] (85 commits) Documentation for ARC port
@ 2020-07-09 16:32 Vineet Gupta
  0 siblings, 0 replies; only message in thread
From: Vineet Gupta @ 2020-07-09 16:32 UTC (permalink / raw)
  To: glibc-cvs

The branch 'vineet/arc-port-latest' was updated to point to:

 b4d11c70b1... Documentation for ARC port

It previously pointed to:

 a5bd4b3abf... Documentation for ARC port

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  a5bd4b3... Documentation for ARC port
  b50d986... build-many-glibcs.py: Enable ARC builds
  4552c5b... ARC: Build Infrastructure
  56681e9... ARC: ABI lists
  d8bcefb... ARC: Linux Startup and Dynamic Loading
  3b7c4da... ARC: Linux ABI
  eb1c100... ARC: Linux Syscall Interface
  64ee224... ARC: hardware floating point support
  a78b89d... ARC: math soft float support
  9d9133f... ARC: Atomics and Locking primitives
  4b0b108... ARC: Thread Local Storage support
  8d892fd... ARC: startup and dynamic linking code
  a627360... ARC: ABI Implementation
  bdacce7... xxx: test hacks
  feb2d33... sysv: linux: Add 64-bit time_t variant for shmctl
  19f0daf... sysvipc: Remove the linux shm-pad.h file
  d1d6f92... sysvipc: Split out linux struct shmid_ds
  e6fc514... sysv: linux: Add 64-bit time_t variant for msgctl
  ec8a57d... sysvipc: Remove the linux msq-pad.h file
  3721447... sysvipc: Split out linux struct semid_ds
  14e996e... sysv: linux: Add 64-bit time_t variant for semctl

commit a5bd4b3abf8479cc424f1e255ddb3e3b722b77dc
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Mon Nov 20 12:46:17 2017 -0800

    Documentation for ARC port
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit b50d98671614d9fd40c99eea09357ffa6d0e58f7
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Thu Mar 12 18:29:59 2020 -0700

    build-many-glibcs.py: Enable ARC builds
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 4552c5b92582376abb7f816e41055450665ba874
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 15:39:50 2018 -0700

    ARC: Build Infrastructure
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 56681e994624a907d6e1e659b63ab64243b17211
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 15:37:08 2018 -0700

    ARC: ABI lists
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit d8bcefbc26831737a389f4ea77b2c7c6d04bcfcd
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:58:39 2018 -0700

    ARC: Linux Startup and Dynamic Loading
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 3b7c4dabcde526ca84109cb2b062ba9db0bb61fb
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:56:39 2018 -0700

    ARC: Linux ABI
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit eb1c100cee91168278d31103ab010762a846cc71
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:44:30 2018 -0700

    ARC: Linux Syscall Interface
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 64ee2244532021ef3e25d3cca78326a66879d9b4
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Mon Nov 4 16:20:37 2019 -0800

    ARC: hardware floating point support
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit a78b89d0f1c8d7a0d8182d3ba95ceb11a0c90b4a
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Wed Oct 24 14:22:54 2018 -0700

    ARC: math soft float support
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 9d9133f11e635e6d33f7d59e5fd256011d718fb9
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:36:39 2018 -0700

    ARC: Atomics and Locking primitives
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 4b0b10872f1e00ef958ce5bce592978f921be53c
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:18:04 2018 -0700

    ARC: Thread Local Storage support
    
    This includes all 4 TLS addressing models
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 8d892fde326ba0c88525f4074743cb5bbbfd7caa
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 12:36:32 2018 -0700

    ARC: startup and dynamic linking code
    
    Code for C runtime startup and dynamic loading including PLT layout.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit a62736069b0a3d98af771c4b746f455dfce2607a
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 11:38:32 2018 -0700

    ARC: ABI Implementation
    
    This code deals with the ARC ABI.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit bdacce719e4038f24d75ada1fc0736fb50816313
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Thu Mar 12 19:33:44 2020 -0700

    xxx: test hacks

commit feb2d33e22e2d86c92ae42e7dc92c3ba3eb88c85
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 14:08:22 2020 -0300

    sysv: linux: Add 64-bit time_t variant for shmctl
    
    To provide a y2038 safe interface a new symbol __shmctl64 is added
    and __shmctl is change to call it instead (it adds some extra buffer
    copy for the 32 bit time_t implementation).
    
    Two two new structures are added:
    
      1. kernel_shmid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful architectures (hppa, i386, mips,
         powerpc32, and sparc32) requires specific implementation due its
         specific kernel ABI.
    
      2. shmid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit semctl.  It is different than the kernel one because
         the exported 64-bit time_t might require different alignment
         depending of the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes shmid_ds already contains
         64-bit time_t fields it will result in just the __shmctl symbol
         using the __shmctl64 code.  The shmid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low time handling.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support on
         basis of the 64-bit one.
    
         The default 32-bit symbol will allocate and copy the shmid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __shmctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.

commit 19f0daf89ac6b31d3b3e82ce83a3a489d39129c7
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 11:02:52 2020 -0300

    sysvipc: Remove the linux shm-pad.h file
    
    Each architecture overrides the struct msqid_ds which its required
    kernel ABI one.
    
    Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa,
    mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le,
    powerpc64, and powerpc.

commit d1d6f9219236232d36b8961a0b564c32394d8bdf
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 10:30:14 2020 -0300

    sysvipc: Split out linux struct shmid_ds
    
    This will allow us to have architectures specify their own version.
    
    Not semantic changes expected.  Checked with a build against the
    all affected ABIs.

commit e6fc514b3d2cab211d1df3e2da0a4f423df83e67
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 09:20:48 2020 -0300

    sysv: linux: Add 64-bit time_t variant for msgctl
    
    To provide a y2038 safe interface a new symbol __msgctl64 is added
    and __msgctl is change to call it instead (it adds some extra buffer
    copy for the 32 bit time_t implementation).
    
    Two two new structures are added:
    
      1. kernel_msqid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful architectures (hppa, i386, mips,
         powerpc32, and sparc32) requires specific implementation due its
         specific kernel ABI.
    
      2. msqid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit semctl.  It is different than the kernel one because
         the exported 64-bit time_t might require different alignment
         depending of the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes msqid_ds already contains
         64-bit time_t fields it will result in just the __msgctl symbol
         using the __msgctl64 code.  The msgid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low time handling.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support on
         basis of the 64-bit one.
    
         The default 32-bit symbol will allocate and copy the msqid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __msgctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.

commit ec8a57d1f1f5f9a3d614353fc36600d3f0cab47f
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 21:33:14 2020 -0300

    sysvipc: Remove the linux msq-pad.h file
    
    Each architecture overrides the struct msqid_ds which its required
    kernel ABI one.
    
    Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa,
    mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le,
    powerpc64, and powerpc.

commit 3721447c84e4a500c5af87f9048a9de6b4fe4964
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 18:21:14 2020 -0300

    sysvipc: Split out linux struct semid_ds
    
    This will allow us to have architectures specify their own version.
    
    Not semantic changes expected.  Checked with a build against the
    all affected ABIs.

commit 14e996e0f7ae00bf04f4e5c06d1e92ba39df921b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 13:35:50 2020 -0300

    sysv: linux: Add 64-bit time_t variant for semctl
    
    Different than others 64-bit time_t syscalls, the SysIPC interface
    does not provide a new set of syscall for y2038 safeness.  Instead it
    uses ununsed fields in semid_ds structure the return the high bits for
    the timestamps.
    
    To provide a y2038 safe interface a new symbol __semctl64 is added
    and __semctl is change to call it instead (it adds some extra buffer
    copy for the 32 bit time_t implementation).
    
    Two two new structures are added:
    
      1. kernel_semid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful architectures (hppa, i386, mips,
         powerpc32, sparc32) requires specific implementation due its
         specific kernel ABI.
    
      2. semid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit semctl.  It is different than the kernel one because
         the exported 64-bit time_t might require different alignment
         depending of the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes semid_ds already contains
         64-bit time_t fields it will result in just the __semctl symbol
         using the __semctl64 code.  The semid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low handling.
    
         It might be possible to optimize it further to avoid the
         kernel_semid64_ds to semun transformation if the exported ABI
         for the architectures matches the expected kernel ABI, but the
         implementation is already complex enough and don't think this
         should be a hotspot in any case.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support on
         basis of the 64-bit one.
    
         The default 32-bit symbol will allocate and copy the semid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __semctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.


Summary of changes (added commits):
-----------------------------------

  b4d11c7... Documentation for ARC port
  bd7b247... build-many-glibcs.py: Enable ARC builds
  3806217... ARC: Build Infrastructure
  a673ab8... ARC: ABI lists
  22d3a39... ARC: Linux Startup and Dynamic Loading
  4be42eb... ARC: Linux ABI
  3b6a007... ARC: Linux Syscall Interface
  3947fe7... ARC: hardware floating point support
  12f3547... ARC: math soft float support
  ab0d755... ARC: Atomics and Locking primitives
  c42e90b... ARC: Thread Local Storage support
  80a65d0... ARC: startup and dynamic linking code
  39bc99c... ARC: ABI Implementation
  ffd178c... sysv: linux: Add 64-bit time_t variant for shmctl
  7929d77... sysvipc: Remove the linux shm-pad.h file
  380b7ce... sysvipc: Split out linux struct shmid_ds
  3283f71... sysv: linux: Add 64-bit time_t variant for msgctl
  915b9fe... sysvipc: Remove the linux msq-pad.h file
  078a892... sysvipc: Split out linux struct semid_ds
  dba950e... sysv: linux: Add 64-bit time_t variant for semctl
  ffb17e7... rtld: Avoid using up static TLS surplus for optimizations [
  1779641... rtld: Account static TLS surplus for audit modules
  0c7b002... rtld: Add rtld.nns tunable for the number of supported name
  ae7a94e... Remove --enable-obsolete-nsl configure flag
  acb5279... Move non-deprecated RPC-related functions from sunrpc to in
  a2a83bf... aarch64: add NEWS entry about branch protection support
  d174ec2... aarch64: redefine RETURN_ADDRESS to strip PAC
  c947677... aarch64: fix pac-ret support in _mcount
  1be3d6e... aarch64: Add pac-ret support to assembly files
  9e1751e... aarch64: configure check for pac-ret code generation
  de9301c... aarch64: ensure objects are BTI compatible
  6053387... aarch64: enable BTI at runtime
  5f846c8... aarch64: fix RTLD_START for BTI
  fddbd7c... aarch64: fix swapcontext for BTI
  9118195... aarch64: Add BTI support to assembly files
  2a4c2dd... aarch64: Rename place holder .S files to .c
  1b0a4f5... aarch64: configure test for BTI support
  dbfefbd... Rewrite abi-note.S in C.
  c7aa859... rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling
  c1e63c7... string: Move tst-strsignal tst-strerror to tests-container
  5b2deed... string: Fix prototype mismatch in sigabbrev_np, __sigdescr_
  beea361... arm: CVE-2020-6096: Fix multiarch memcpy for negative lengt
  79a4fa3... arm: CVE-2020-6096: fix memcpy and memmove for negative len
  78e02c4... sunrpc: Remove hidden aliases for global data symbols (bug 
  01ac385... hurd: Fix strerror not setting errno
  5549370... tst-strsignal: fix checking for RT signals support
  d63387d... hurd: Evaluate fd before entering the critical section
  91927b7... Rewrite iconv option parsing [BZ #19519]
  94d9c76... nss: Remove cryptographic key support from nss_files, nss_n
  afc3a2e... sunrpc: Do not export getrpcport by default
  ed6fc7d... sunrpc: Do not export key handling hooks by default
  d7ebcd4... sunrpc: Turn clnt_sperrno into a libc_hidden_nolink_sunrpc 
  325081b... string: Add strerrorname_np and strerrordesc_np
  bfe05aa... string: Add sigabbrev_np and sigdescr_np
  4f92497... string: Add strerror_l on test-strerror-errno
  653200e... string: Add strerror, strerror_r, and strerror_l test
  c2723ce... string: Add strsignal test
  08d2024... string: Simplify strerror_r
  725eeb4... string: Use tls-internal on strerror_l
  28aff04... string: Implement strerror in terms of strerror_l
  9deec7c... string: Remove old TLS usage on strsignal
  f26d456... linux: Fix __NSIG_WORDS and add __NSIG_BYTES
  f13d260... signal: Move sys_errlist to a compat symbol
  b1ccfc0... signal: Move sys_siglist to a compat symbol
  e4e11b1... signal: Add signum-{generic,arch}.h
  6caddd3... Remove most vfprintf width/precision-dependent allocations 
  3ad5dab... elf: Do not signal LA_ACT_CONSISTENT for an empty namespace
  08538f3... Fix stringop-overflow errors from gcc 10 in iconv.
  3f4b61a... x86: Add thresholds for "rep movsb/stosb" to tunables
  6c010c5... Use C2x return value from getpayload of non-NaN (bug 26073)
  28c13ae... x86: Detect Extended Feature Disable (XFD)
  f8b4630... x86: Correct bit_cpu_CLFSH [BZ #26208]
  01ffa60... manual: Document __libc_single_threaded
  706ad1e... Add the __libc_single_threaded variable
  8f4632d... Linux: rseq registration tests
  6e29cb3... Linux: Use rseq in sched_getcpu if available
  0c76fc3... Linux: Perform rseq registration at C startup and thread cr
  f9cf873... tst-cancel4: deal with ENOSYS errors
  a3f747a... manual: Show copyright information not just in the printed 
  c6aac3b... Fix typo in comment in bug 26137 fix.
  09555b9... Fix strtod multiple-precision division bug (bug 26137).
  5f40e4b... Linux: Fix UTC offset setting in settimeofday for __TIMESIZ
  354b98c... random: range is not portably RAND_MAX [BZ #7003]
  3ee1e0e... Update kernel version to 5.7 in tst-mman-consts.py.
  d2ba367... powerpc: Add support for POWER10

commit b4d11c70b157ff27851e73ef05a8eb71253e4d86
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Mon Nov 20 12:46:17 2017 -0800

    Documentation for ARC port
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit bd7b247cffcf0df9e7f62a5aefc250e86d68958c
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Thu Mar 12 18:29:59 2020 -0700

    build-many-glibcs.py: Enable ARC builds
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 38062176f9c6b044674d9e13514bb9dbee4f33be
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 15:39:50 2018 -0700

    ARC: Build Infrastructure
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit a673ab867e92a8da7510dcb23310daae37b62be4
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 15:37:08 2018 -0700

    ARC: ABI lists
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 22d3a39077e930cd58eb0ce5946a9d00f4276318
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:58:39 2018 -0700

    ARC: Linux Startup and Dynamic Loading
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 4be42eb5067f869a9f1fb3349be811f9e0991348
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:56:39 2018 -0700

    ARC: Linux ABI
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 3b6a0070434433e79c9e14ff460c29001fb4d010
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:44:30 2018 -0700

    ARC: Linux Syscall Interface
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 3947fe7dfcf6ef9ab0f4359646f106447ade1631
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Mon Nov 4 16:20:37 2019 -0800

    ARC: hardware floating point support
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 12f3547bf8d2269973f3bb8280199c54c721443a
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Wed Oct 24 14:22:54 2018 -0700

    ARC: math soft float support
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit ab0d755cfee20361b957c9826d9e4efcc7c85f49
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:36:39 2018 -0700

    ARC: Atomics and Locking primitives
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit c42e90bfa8f1ed9be56906cc8df4fd3a581b7a87
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 14:18:04 2018 -0700

    ARC: Thread Local Storage support
    
    This includes all 4 TLS addressing models
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 80a65d0431af27eaa760156a6d8a345b2af49bf6
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 12:36:32 2018 -0700

    ARC: startup and dynamic linking code
    
    Code for C runtime startup and dynamic loading including PLT layout.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 39bc99cd97bdc7582151805ead887696ed67008c
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Oct 23 11:38:32 2018 -0700

    ARC: ABI Implementation
    
    This code deals with the ARC ABI.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit ffd178c651b827f24acead02284abbb12f3f723b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 14:08:22 2020 -0300

    sysv: linux: Add 64-bit time_t variant for shmctl
    
    To provide a y2038 safe interface a new symbol __shmctl64 is added
    and __shmctl is change to call it instead (it adds some extra buffer
    copying for the 32 bit time_t implementation).
    
    Two new structures are added:
    
      1. kernel_shmid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful of architectures (hppa, i386,
         mips, powerpc32, and sparc32) require specific implementations
         due to their kernel ABI.
    
      2. shmid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit shmctl.  It is different than the kernel struct because
         the exported 64-bit time_t might require different alignment
         depending on the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes shmid_ds already contains
         64-bit time_t fields and will result in just the __shmctl symbol
         using the __shmctl64 code.  The shmid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low time handling.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support
         using of the 64-bit one.
    
         The default 32-bit symbol will allocate and copy the shmid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __shmctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.
    
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 7929d779850aaaf9fd2377ed0945fb53f60dee63
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 11:02:52 2020 -0300

    sysvipc: Remove the linux shm-pad.h file
    
    Each architecture overrides the struct msqid_ds which its required
    kernel ABI one.
    
    Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa,
    mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le,
    powerpc64, and powerpc.
    
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 380b7ced6ab792cf2095377498ed4bbc2716f139
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 10:30:14 2020 -0300

    sysvipc: Split out linux struct shmid_ds
    
    This will allow us to have architectures specify their own version.
    
    Not semantic changes expected.  Checked with a build against the
    all affected ABIs.
    
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 3283f711132eaadc4f04bd8c1d84c910c29ba066
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 30 09:20:48 2020 -0300

    sysv: linux: Add 64-bit time_t variant for msgctl
    
    To provide a y2038 safe interface a new symbol __msgctl64 is added
    and __msgctl is change to call it instead (it adds some extra buffer
    coping for the 32 bit time_t implementation).
    
    Two new structures are added:
    
      1. kernel_msqid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful of architectures (hppa, i386, mips,
         powerpc32, and sparc32) require specific implementations due to
         their kernel ABI.
    
      2. msqid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit msgctl.  It is different than the kernel struct because
         the exported 64-bit time_t might require different alignment
         depending on the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes msqid_ds already contains
         64-bit time_t fields and will result in just the __msgctl symbol
         using the __msgctl64 code.  The msgid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low time handling.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support using
         the 64-bit time_t.
    
         The default 32-bit symbol will allocate and copy the msqid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __msgctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>

commit 915b9fe3124d87ff1734c902c0d36b5eac7688ff
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 21:33:14 2020 -0300

    sysvipc: Remove the linux msq-pad.h file
    
    Each architecture overrides the struct msqid_ds which its required
    kernel ABI one.
    
    Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa,
    mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le,
    powerpc64, and powerpc.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>

commit 078a8920854217d0251fa699145174121e76f15d
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 18:21:14 2020 -0300

    sysvipc: Split out linux struct semid_ds
    
    This will allow us to have architectures specify their own version.
    
    Not semantic changes expected.  Checked with a build against the
    all affected ABIs.
    
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>

commit dba950e3174a5210b900a26a7d2f361cadea2834
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 29 13:35:50 2020 -0300

    sysv: linux: Add 64-bit time_t variant for semctl
    
    Different than others 64-bit time_t syscalls, the SysIPC interface
    does not provide a new set of syscall for y2038 safeness.  Instead it
    uses unused fields in semid_ds structure to return the high bits for
    the timestamps.
    
    To provide a y2038 safe interface a new symbol __semctl64 is added
    and __semctl is change to call it instead (it adds some extra buffer
    copying for the 32 bit time_t implementation).
    
    Two new structures are added:
    
      1. kernel_semid64_ds: used internally only on 32-bit architectures
         to issue the syscall.  A handful of architectures (hppa, i386,
         mips, powerpc32, sparc32) require specific implementations due
         their kernel ABI.
    
      2. semid_ds64: this is only for __TIMESIZE != 64 to use along with
         the 64-bit semctl.  It is different than the kernel struct because
         the exported 64-bit time_t might require different alignment
         depending on the architecture ABI.
    
    So the resulting implementation does:
    
      1. For 64-bit architectures it assumes semid_ds already contains
         64-bit time_t fields and will result in just the __semctl symbol
         using the __semctl64 code.  The semid_ds argument is passed as-is
         to the syscall.
    
      2. For 32-bit architectures with default 64-bit time_t (newer ABIs
         such riscv32 or arc), it will also result in only one exported
         symbol but with the required high/low handling.
    
         It might be possible to optimize it further to avoid the
         kernel_semid64_ds to semun transformation if the exported ABI
         for the architectures matches the expected kernel ABI, but the
         implementation is already complex enough and don't think this
         should be a hotspot in any case.
    
      3. Finally for 32-bit architecture with both 32-bit and 64-bit time_t
         support we follow the already set way to provide one symbol with
         64-bit time_t support and implement the 32-bit time_t support
         using the 64-bit one.
    
         The default 32-bit symbol will allocate and copy the semid_ds
         over multiple buffers, but this should be deprecated in favor
         of the __semctl64 anyway.
    
    Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did some sniff
    tests on powerpc, powerpc64, mips, mips64, armhf, sparcv9, and
    sparc64.
    
    Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Alistair Francis <alistair.francis@wdc.com>
    Tested-by: Vineet Gupta <vgupta@synopsys.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>

commit ffb17e7ba3a5ba9632cee97330b325072fbe41dd
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Jun 10 13:40:40 2020 +0100

    rtld: Avoid using up static TLS surplus for optimizations [BZ #25051]
    
    On some targets static TLS surplus area can be used opportunistically
    for dynamically loaded modules such that the TLS access then becomes
    faster (TLSDESC and powerpc TLS optimization). However we don't want
    all surplus TLS to be used for this optimization because dynamically
    loaded modules with initial-exec model TLS can only use surplus TLS.
    
    The new contract for surplus static TLS use is:
    
    - libc.so can have up to 192 bytes of IE TLS,
    - other system libraries together can have up to 144 bytes of IE TLS.
    - Some "optional" static TLS is available for opportunistic use.
    
    The optional TLS is now tunable: rtld.optional_static_tls, so users
    can directly affect the allocated static TLS size. (Note that module
    unloading with dlclose does not reclaim static TLS. After the optional
    TLS runs out, TLS access is no longer optimized to use static TLS.)
    
    The default setting of rtld.optional_static_tls is 512 so the surplus
    TLS is 3*192 + 4*144 + 512 = 1664 by default, the same as before.
    
    Fixes BZ #25051.
    
    Tested on aarch64-linux-gnu and x86_64-linux-gnu.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 17796419b5fd694348cceb65c3f77601faae082c
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Tue Jul 7 10:49:11 2020 +0100

    rtld: Account static TLS surplus for audit modules
    
    The new static TLS surplus size computation is
    
      surplus_tls = 192 * (nns-1) + 144 * nns + 512
    
    where nns is controlled via the rtld.nns tunable. This commit
    accounts audit modules too so nns = rtld.nns + audit modules.
    
    rtld.nns should only include the namespaces required by the
    application, namespaces for audit modules are accounted on top
    of that so audit modules don't use up the static TLS that is
    reserved for the application. This allows loading many audit
    modules without tuning rtld.nns or using up static TLS, and it
    fixes
    
    FAIL: elf/tst-auditmany
    
    Note that DL_NNS is currently a hard upper limit for nns, and
    if rtld.nns + audit modules go over the limit that's a fatal
    error. By default rtld.nns is 4 which allows 12 audit modules.
    
    Counting the audit modules is based on existing audit string
    parsing code, we cannot use GLRO(dl_naudit) before the modules
    are actually loaded.

commit 0c7b002fac12dcb2f53ba83ee56bb3b5d2439447
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Tue Jun 9 09:57:28 2020 +0100

    rtld: Add rtld.nns tunable for the number of supported namespaces
    
    TLS_STATIC_SURPLUS is 1664 bytes currently which is not enough to
    support DL_NNS (== 16) number of dynamic link namespaces, if we
    assume 192 bytes of TLS are reserved for libc use and 144 bytes
    are reserved for other system libraries that use IE TLS.
    
    A new tunable is introduced to control the number of supported
    namespaces and to adjust the surplus static TLS size as follows:
    
    surplus_tls = 192 * (rtld.nns-1) + 144 * rtld.nns + 512
    
    The default is rtld.nns == 4 and then the surplus TLS size is the
    same as before, so the behaviour is unchanged by default. If an
    application creates more namespaces than the rtld.nns setting
    allows, then it is not guaranteed to work, but the limit is not
    checked. So existing usage will continue to work, but in the
    future if an application creates more than 4 dynamic link
    namespaces then the tunable will need to be set.
    
    In this patch DL_NNS is a fixed value and provides a maximum to
    the rtld.nns setting.
    
    Static linking used fixed 2048 bytes surplus TLS, this is changed
    so the same contract is used as for dynamic linking.  With static
    linking DL_NNS == 1 so rtld.nns tunable is forced to 1, so by
    default the surplus TLS is reduced to 144 + 512 = 656 bytes. This
    change is not expected to cause problems.
    
    Tested on aarch64-linux-gnu and x86_64-linux-gnu.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit ae7a94e5e3edf78f4da562edc05ece229614c716
Author: Petr Vorel <pvorel@suse.cz>
Date:   Wed Jul 8 13:06:55 2020 +0200

    Remove --enable-obsolete-nsl configure flag
    
    this means that *always* libnsl is only built as shared library for
    backward compatibility and the NSS modules libnss_nis and libnss_nisplus
    are not built at all, libnsl's headers aren't installed.
    
    This compatibility is kept only for architectures and ABIs that have
    been added in or before version 2.28.
    
    Replacement implementations based on TIRPC, which additionally support
    IPv6, are available from <https://github.com/thkukuk/>.
    
    This change does not affect libnss_compat which does not depended
    on libnsl since 2.27 and thus can be used without NIS.
    
    libnsl code depends on Sun RPC, e.g. on --enable-obsolete-rpc (installed
    libnsl headers use installed Sun RPC headers), which will be removed in
    the following commit.

commit acb527929d0c2b3bb0798472c42ddb3203729708
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Jul 8 12:15:23 2020 +0200

    Move non-deprecated RPC-related functions from sunrpc to inet
    
    This includes bindresvport and the NSS-related RPC functions.  This will
    simplify the removal of the sunrpc functionality because these functions
    no longer have to be treated specially.

commit a2a83bf6d9f1d4d297c5378f0fda0d8f85bc75f2
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Thu Jun 11 18:19:40 2020 +0100

    aarch64: add NEWS entry about branch protection support
    
    This is a new security feature that relies on architecture
    extensions and needs glibc to be built with a gcc configured
    with branch protection.

commit d174ec248d5b6bba3842f425f036495b682c313f
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Apr 15 17:40:45 2020 +0100

    aarch64: redefine RETURN_ADDRESS to strip PAC
    
    RETURN_ADDRESS is used at several places in glibc to mean a valid
    code address of the call site, but with pac-ret it may contain a
    pointer authentication code (PAC), so its definition is adjusted.
    
    This is gcc PR target/94891: __builtin_return_address should not
    expose signed pointers to user code where it can cause ABI issues.
    In glibc RETURN_ADDRESS is only changed if it is built with pac-ret.
    There is no detection for the specific gcc issue because it is
    hard to test and the additional xpac does not cause problems.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit c94767712b06fd37e82d23f86d4d6e1c93948d8a
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed May 13 12:10:13 2020 +0100

    aarch64: fix pac-ret support in _mcount
    
    Currently gcc -pg -mbranch-protection=pac-ret passes signed return
    address to _mcount, so _mcount now has to always strip pac from the
    frompc since that's from user code that may be built with pac-ret.
    
    This is gcc PR target/94791: signed pointers should not escape and get
    passed across extern call boundaries, since that's an ABI break, but
    because existing gcc has this issue we work it around in glibc until
    that is resolved. This is compatible with a fixed gcc and it is a nop
    on systems without PAuth support. The bug was introduced in gcc-7 with
    -msign-return-address=non-leaf|all support which in gcc-9 got renamed
    to -mbranch-protection=pac-ret|pac-ret+leaf|standard.
    
    strip_pac uses inline asm instead of __builtin_aarch64_xpaclri since
    that is not a documented api and not available in all supported gccs.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 1be3d6eb823d8b952fa54b7bbc90cbecb8981380
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Apr 29 11:49:20 2020 +0100

    aarch64: Add pac-ret support to assembly files
    
    Use return address signing in assembly files for functions that save
    LR when pac-ret is enabled in the compiler.
    
    The GNU property note for PAC-RET is not meaningful to the dynamic
    linker so it is not strictly required, but it may be used to track
    the security property of binaries. (The PAC-RET property is only set
    if BTI is set too because BTI implies working GNU property support.)
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 9e1751e6d693b73b95db2f6d8438dd80f1aeffe0
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Thu May 7 18:30:12 2020 +0100

    aarch64: configure check for pac-ret code generation
    
    Return address signing requires unwinder support, which is
    present in libgcc since >=gcc-7, however due to bugs the
    support may be broken in <gcc-10 (and similarly there may
    be issues in custom unwinders), so pac-ret is not always
    safe to use. So in assembly code glibc should only use
    pac-ret if the compiler uses it too. Unfortunately there
    is no predefined feature macro for it set by the compiler
    so pac-ret is inferred from the code generation.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit de9301c02e898fb20a609b459d81afda42f39c61
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Tue Jun 30 11:12:40 2020 +0100

    aarch64: ensure objects are BTI compatible
    
    When glibc is built with branch protection (i.e. with a gcc configured
    with --enable-standard-branch-protection), all glibc binaries should
    be BTI compatible and marked as such.
    
    It is easy to link BTI incompatible objects by accident and this is
    silent currently which is usually not the expectation, so this is
    changed into a link error. (There is no linker flag for failing on
    BTI incompatible inputs so all warnings are turned into fatal errors
    outside the test system when building glibc with branch protection.)
    
    Unfortunately, outlined atomic functions are not BTI compatible in
    libgcc (PR libgcc/96001), so to build glibc with current gcc use
    'CC=gcc -mno-outline-atomics', this should be fixed in libgcc soon
    and then glibc can be built and tested without such workarounds.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 605338745ba15930e9acac46c32ce6cada12a52b
Author: Sudakshina Das <sudi.das@arm.com>
Date:   Mon Jun 22 10:57:20 2020 +0100

    aarch64: enable BTI at runtime
    
    Binaries can opt-in to using BTI via an ELF object file marking.
    The dynamic linker has to then mprotect the executable segments
    with PROT_BTI. In case of static linked executables or in case
    of the dynamic linker itself, PROT_BTI protection is done by the
    operating system.
    
    On AArch64 glibc uses PT_GNU_PROPERTY instead of PT_NOTE to check
    the properties of a binary because PT_NOTE can be unreliable with
    old linkers (old linkers just append the notes of input objects
    together and add them to the output without checking them for
    consistency which means multiple incompatible GNU property notes
    can be present in PT_NOTE).
    
    BTI property is handled in the loader even if glibc is not built
    with BTI support, so in theory user code can be BTI protected
    independently of glibc. In practice though user binaries are not
    marked with the BTI property if glibc has no support because the
    static linked libc objects (crt files, libc_nonshared.a) are
    unmarked.
    
    This patch relies on Linux userspace API that is not yet in a
    linux release but in v5.8-rc1 so scheduled to be in Linux 5.8.
    
    Co-authored-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 5f846c8b0dea05554a48ec5ad13874cc757a886f
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Tue Mar 31 17:32:14 2020 +0100

    aarch64: fix RTLD_START for BTI
    
    Tailcalls must use x16 or x17 for the indirect branch instruction
    to be compatible with code that uses BTI c at function entries.
    (Other forms of indirect branches can only land on BTI j.)
    
    Also added a BTI c at the ELF entry point of rtld, this is not
    strictly necessary since the kernel does not use indirect branch
    to get there, but it seems safest once building glibc itself with
    BTI is supported.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit fddbd7c0ef4960fc0a17712a95a146dd3f43de0a
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Apr 1 10:31:41 2020 +0100

    aarch64: fix swapcontext for BTI
    
    setcontext returns to the specified context via an indirect jump,
    so there should be a BTI j.
    
    In case of getcontext (and all other returns_twice functions) the
    compiler adds BTI j at the call site, but swapcontext is a normal
    c call that is currently not handled specially by the compiler.
    
    So we change swapcontext such that the saved context returns to a
    local address that has BTI j and then swapcontext returns to the
    caller via a normal RET. For this we save the original return
    address in the slot for x1 of the context because x1 need not be
    preserved by swapcontext but it is restored when the context saved
    by swapcontext is resumed.
    
    The alternative fix (which is done on x86) would make swapcontext
    special in the compiler so BTI j is emitted at call sites, on
    x86 there is an indirect_return attribute for this, on AArch64
    we would have to use returns_twice. It was decided against because
    such fix may need user code updates: the attribute has to be added
    when swapcontext is called via a function pointer and it breaks
    always_inline functions with swapcontext.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 91181954f94917b1e1ae591c60cbadf0321d35af
Author: Sudakshina Das <sudi.das@arm.com>
Date:   Tue Mar 17 15:44:18 2020 +0000

    aarch64: Add BTI support to assembly files
    
    To enable building glibc with branch protection, assembly code
    needs BTI landing pads and ELF object file markings in the form
    of a GNU property note.
    
    The landing pads are unconditionally added to all functions that
    may be indirectly called. When the code segment is not mapped
    with PROT_BTI these instructions are nops. They are kept in the
    code when BTI is not supported so that the layout of performance
    critical code is unchanged across configurations.
    
    The GNU property notes are only added when there is support for
    BTI in the toolchain, because old binutils does not handle the
    notes right. (Does not know how to merge them nor to put them in
    PT_GNU_PROPERTY segment instead of PT_NOTE, and some versions
    of binutils emit warnings about the unknown GNU property. In
    such cases the produced libc binaries would not have valid
    ELF marking so BTI would not be enabled.)
    
    Note: functions using ENTRY or ENTRY_ALIGN now start with an
    additional BTI c, so alignment of the following code changes,
    but ENTRY_ALIGN_AND_PAD was fixed so there is no change to the
    existing code layout. Some string functions may need to be
    tuned for optimal performance after this commit.
    
    Co-authored-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 2a4c2dde4918c2c4e443e8328eab97db2c26e327
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Apr 1 09:52:37 2020 +0100

    aarch64: Rename place holder .S files to .c
    
    The compiler can add required elf markings based on CFLAGS
    but the assembler cannot, so using C code for empty files
    creates less of a maintenance problem.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 1b0a4f58f5b10cf6d5ad10ee8d81772c5bd29248
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed May 6 20:22:16 2020 +0100

    aarch64: configure test for BTI support
    
    Check BTI support in the compiler and linker.  The check also
    requires READELF that understands the BTI GNU property note.
    It is expected to succeed with gcc >=gcc-9 configured with
    --enable-standard-branch-protection and binutils >=binutils-2.33.
    
    Note: passing -mbranch-protection=bti in CFLAGS when building glibc
    may not be enough to get a glibc that supports BTI because crtbegin*
    and crtend* provided by the compiler needs to be BTI compatible too.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit dbfefbdc3aeec88868cb9d46267f91dc62461226
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Wed Apr 1 16:02:03 2020 +0100

    Rewrite abi-note.S in C.
    
    Using C code allows the compiler to add target specific object file
    markings based on CFLAGS.
    
    The arm specific abi-note.S is removed and similar object file fix
    up will be avoided on AArch64 with standard branch protection.

commit c7aa8596de86fb667914ccb95c10495ad056ff96
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Mon Jun 22 10:56:38 2020 +0100

    rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling
    
    Add generic code to handle PT_GNU_PROPERTY notes. Invalid
    content is ignored, _dl_process_pt_gnu_property is always called
    after PT_LOAD segments are mapped and it has no failure modes.
    Currently only one NT_GNU_PROPERTY_TYPE_0 note is handled, which
    contains target specific properties: the _dl_process_gnu_property
    hook is called for each property.
    
    The old _dl_process_pt_note and _rtld_process_pt_note differ in how
    the program header is read.  The old _dl_process_pt_note is called
    before PT_LOAD segments are mapped and _rtld_process_pt_note is called
    after PT_LOAD segments are mapped. The old _rtld_process_pt_note is
    removed and _dl_process_pt_note is always called after PT_LOAD
    segments are mapped and now it has no failure modes.
    
    The program headers are scanned backwards so that PT_NOTE can be
    skipped if PT_GNU_PROPERTY exists.
    
    Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit c1e63c7214aaef99039068da384a0ab3abc176f2
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Jul 8 10:23:14 2020 -0300

    string: Move tst-strsignal tst-strerror to tests-container
    
    Both tests require libc.mo translation files which might not be
    installed on the system.
    
    Checked on x86_64-linux-gnu.

commit 5b2deed8a5d5cca2d82423572415a1c629bea488
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Jul 8 14:19:58 2020 +0200

    string: Fix prototype mismatch in sigabbrev_np, __sigdescr_np
    
    GCC 6 does not ignore the const specifier on the return type.

commit beea361050728138b82c57dda0c4810402d342b9
Author: Alexander Anisimov <a.anisimov@omprussia.ru>
Date:   Wed Jul 8 14:18:31 2020 +0200

    arm: CVE-2020-6096: Fix multiarch memcpy for negative length [BZ #25620]
    
    Unsigned branch instructions could be used for r2 to fix the wrong
    behavior when a negative length is passed to memcpy.
    This commit fixes the armv7 version.

commit 79a4fa341b8a89cb03f84564fd72abaa1a2db394
Author: Evgeny Eremin <e.eremin@omprussia.ru>
Date:   Wed Jul 8 14:18:19 2020 +0200

    arm: CVE-2020-6096: fix memcpy and memmove for negative length [BZ #25620]
    
    Unsigned branch instructions could be used for r2 to fix the wrong
    behavior when a negative length is passed to memcpy and memmove.
    This commit fixes the generic arm implementation of memcpy amd memmove.

commit 78e02c469828fcfb6a5cf73dbcceb4f60fb6fafd
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Jul 8 07:58:51 2020 +0200

    sunrpc: Remove hidden aliases for global data symbols (bug 26210)
    
    It is generally not possible to add hidden aliases for global data
    symbols: If the main executable contains a copy relocation against
    the symbol, the hidden aliases keep pointing to the glibc-internal
    copy of the symbol, instead of the symbol actually used by the
    application.
    
    Fixes commit 89aacb513eb77549a29df2638913a0f8178cf3f5 ("sunrpc:
    Remove stray exports without --enable-obsolete-rpc [BZ #23166]").
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 01ac385ca819599f7f1815115ffe926b5e1460ef
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Tue Jul 7 21:46:53 2020 +0000

    hurd: Fix strerror not setting errno
    
    * sysdeps/mach/strerror_l.c: Include <errno.h>.
    (__strerror_l): Save errno on entry and restore it on exit.

commit 5549370a73c45b12621a1abe58920771278a72b4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Tue Jul 7 21:24:48 2020 +0000

    tst-strsignal: fix checking for RT signals support
    
    * string/tst-strsignal.c (do_test): Actually check that RT signals are
    available by comparing SIGRTMAX to SIGRTMIN. Check that SIGRTMAX is 64
    before testing for a message reporting 65 for SIGRTMAX+1.

commit d63387d81d575ba8187345d216070595bd58cb2b
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Tue Jul 7 22:09:29 2020 +0200

    hurd: Evaluate fd before entering the critical section
    
    * sysdeps/hurd/include/hurd/fd.h (HURD_FD_PORT_USE_CANCEL): Evaluate fd
    before calling _hurd_critical_section_lock.

commit 91927b7c76437db860cd86a7714476b56bb39d07
Author: Arjun Shankar <arjun@redhat.com>
Date:   Tue Jul 7 20:31:48 2020 +0200

    Rewrite iconv option parsing [BZ #19519]
    
    This commit replaces string manipulation during `iconv_open' and iconv_prog
    option parsing with a structured, flag based conversion specification.  In
    doing so, it alters the internal `__gconv_open' interface and accordingly
    adjusts its uses.
    
    This change fixes several hangs in the iconv program and therefore includes
    a new test to exercise iconv_prog options that originally led to these hangs.
    It also includes a new regression test for option handling in the iconv
    function.
    
    Reviewed-by: Florian Weimer <fweimer@redhat.com>
    Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 94d9c76e4acc798894ea23d9ac049ce7ce995ec0
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Jul 6 20:20:44 2020 +0200

    nss: Remove cryptographic key support from nss_files, nss_nis, nss_nisplus
    
    The interface has hard-coded buffer sizes and is therefore tied to
    DES.  It also does not match current practice where different
    services on the same host use different key material.
    
    This change simplifies removal of the sunrpc code.

commit afc3a2eb80617adaa8be75a7649c7ee2e1116a72
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Jul 6 19:19:24 2020 +0200

    sunrpc: Do not export getrpcport by default
    
    This function looks like an NSS function, but is actually a wrapper
    around pmap_getport, so it should only be exported with
    --enable-obsolete-rpc.

commit ed6fc7daed8858ae971e3d9c165ec45816759dbd
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Jul 6 17:59:26 2020 +0200

    sunrpc: Do not export key handling hooks by default
    
    __key_encryptsession_pk_LOCAL, __key_decryptsession_pk_LOCAL,
    __key_gendes_LOCAL had a default version symbol even without
    --enable-obsolete-rpc.

commit d7ebcd43804891434c167ab4f1487aac65399548
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Jul 6 17:43:09 2020 +0200

    sunrpc: Turn clnt_sperrno into a libc_hidden_nolink_sunrpc symbol
    
    Before this change, the function had a default symbol version even
    without --enable-obsolete-rpc.

commit 325081b9eb2035f8f025255206889208f330b590
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 18 17:41:25 2020 -0300

    string: Add strerrorname_np and strerrordesc_np
    
    The strerrorname_np returns error number name (e.g. "EINVAL" for EINVAL)
    while strerrordesc_np returns string describing error number (e.g
    "Invalid argument" for EINVAL).  Different than strerror,
    strerrordesc_np does not attempt to translate the return description,
    both functions return NULL for an invalid error number.
    
    They should be used instead of sys_errlist and sys_nerr, both are
    thread and async-signal safe.  These functions are GNU extensions.
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit bfe05aa289054744b68f136b701705cfd242c4de
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 18 17:05:05 2020 -0300

    string: Add sigabbrev_np and sigdescr_np
    
    The sigabbrev_np returns the abbreviated signal name (e.g. "HUP" for
    SIGHUP) while sigdescr_np returns the string describing the error
    number (e.g "Hangup" for SIGHUP).  Different than strsignal,
    sigdescr_np does not attempt to translate the return description and
    both functions return NULL for an invalid signal number.
    
    They should be used instead of sys_siglist or sys_sigabbrev and they
    are both thread and async-signal safe.  They are added as GNU
    extensions on string.h header (same as strsignal).
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 4f92497488c90fea1ef6796c6d564ff5f8a3add6
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 18 14:36:45 2020 -0300

    string: Add strerror_l on test-strerror-errno
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 653200ef42674cd0b71c9e07145054ccfadf2f0f
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 18 14:36:19 2020 -0300

    string: Add strerror, strerror_r, and strerror_l test
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit c2723ce317f858f70237fc8866935114e2bb61b2
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 18 10:16:48 2020 -0300

    string: Add strsignal test
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 08d2024b4167913623cefcceb2fec6e483972868
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu May 14 18:14:43 2020 -0300

    string: Simplify strerror_r
    
    Use snprintf instead of mempcpy plus itoa_word and remove unused
    definitions.  There is no potential for infinite recursion because
    snprintf only use strerror_r for the %m specifier.
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 725eeb4af14c6fec4ed26a796cdfd6d50df86d42
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu May 14 17:56:25 2020 -0300

    string: Use tls-internal on strerror_l
    
    The buffer allocation uses the same strategy of strsignal.
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 28aff047818eb1726394296d27b9c7885340bead
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu May 14 17:44:15 2020 -0300

    string: Implement strerror in terms of strerror_l
    
    If the thread is terminated then __libc_thread_freeres will free the
    storage via __glibc_tls_internal_free.
    
    It is only within the calling thread that this matters.  It makes
    strerror MT-safe.
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 9deec7c8bab24659e78172dd850f4ca37c57940c
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu May 14 17:02:38 2020 -0300

    string: Remove old TLS usage on strsignal
    
    The per-thread state is refactored two use two strategies:
    
      1. The default one uses a TLS structure, which will be placed in the
         static TLS space (using __thread keyword).
    
      2. Linux allocates via struct pthread and access it through THREAD_*
         macros.
    
    The default strategy has the disadvantage of increasing libc.so static
    TLS consumption and thus decreasing the possible surplus used in
    some scenarios (which might be mitigated by BZ#25051 fix).
    
    It is used only on Hurd, where accessing the thread storage in the in
    single thread case is not straightforward (afaiu, Hurd developers could
    correct me here).
    
    The fallback static allocation used for allocation failure is also
    removed: defining its size is problematic without synchronizing with
    translated messages (to avoid partial translation) and the resulting
    usage is not thread-safe.
    
    Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
    and s390x-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit f26d456b98abf02b3ff92f1a3c0d4473b7ffd85c
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Apr 23 10:58:01 2020 -0300

    linux: Fix __NSIG_WORDS and add __NSIG_BYTES
    
    The __NSIG_WORDS value is based on minimum number of words to hold
    the maximum number of signals supported by the architecture.
    
    This patch also adds __NSIG_BYTES, which is the number of bytes
    required to represent the supported number of signals.  It is used in
    syscalls which takes a sigset_t.
    
    Checked on x86_64-linux-gnu and i686-linux-gnu.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit f13d260190d47bd38c0ae939080001e7bb58bd04
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Apr 24 21:25:31 2020 -0300

    signal: Move sys_errlist to a compat symbol
    
    The symbol is deprecated by strerror since its usage imposes some issues
    such as copy relocations.
    
    Its internal name is also changed to _sys_errlist_internal to avoid
    static linking usage.  The compat code is also refactored by removing
    the over enginered errlist-compat.c generation from manual entried and
    extra comment token in linker script file.  It disantangle the code
    generation from manual and simplify both Linux and Hurd compat code.
    
    The definitions from errlist.c are moved to errlist.h and a new test
    is added to avoid a new errno entry without an associated one in manual.
    
    Checked on x86_64-linux-gnu and i686-linux-gnu. I also run a check-abi
    on all affected platforms.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit b1ccfc061feee9ce616444ded8e1cd5acf9fa97f
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Apr 24 11:09:00 2020 -0300

    signal: Move sys_siglist to a compat symbol
    
    The symbol was deprecated by strsignal and its usage imposes issues
    such as copy relocations.
    
    Its internal name is changed to __sys_siglist and __sys_sigabbrev to
    avoid static linking usage.  The compat code is also refactored, since
    both Linux and Hurd usage the same strategy: export the same array with
    different object sizes.
    
    The libSegfault change avoids calling strsignal on the SIGFAULT signal
    handler (the current usage is already sketchy, adding a call that
    potentially issue locale internal function is even sketchier).
    
    Checked on x86_64-linux-gnu and i686-linux-gnu. I also run a check-abi
    on all affected platforms.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit e4e11b1dba261cb650e631978622bf3b4a4d8c37
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Apr 22 11:02:11 2020 -0300

    signal: Add signum-{generic,arch}.h
    
    It refactor how signals are defined by each architecture.  Instead of
    include a generic header (bits/signum-generic.h) and undef non-default
    values in an arch specific header (bits/signum.h) the new scheme uses a
    common definition (bits/signum-generic.h) and each architectures add
    its specific definitions on a new header (bits/signum-arch.h).
    
    For Linux it requires copy some system default definitions to alpha,
    hppa, and sparc.  They are historical values and newer ports uses
    the generic Linux signum-arch.h.
    
    For Hurd the BSD signum is removed and moved to a new header (it is
    used currently only on Hurd).
    
    Checked on a build against all affected ABIs.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Tested-by: Carlos O'Donell <carlos@redhat.com>

commit 6caddd34bd7ffb5ac4f36c8e036eee100c2cc535
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Jul 7 14:54:12 2020 +0000

    Remove most vfprintf width/precision-dependent allocations (bug 14231, bug 26211).
    
    The vfprintf implementation (used for all printf-family functions)
    contains complicated logic to allocate internal buffers of a size
    depending on the width and precision used for a format, using either
    malloc or alloca depending on that size, and with consequent checks
    for size overflow and allocation failure.
    
    As noted in bug 26211, the version of that logic used when '$' plus
    argument number formats are in use is missing the overflow checks,
    which can result in segfaults (quite possibly exploitable, I didn't
    try to work that out) when the width or precision is in the range
    0x7fffffe0 through 0x7fffffff (maybe smaller values as well in the
    wprintf case on 32-bit systems, when the multiplication by sizeof
    (CHAR_T) can overflow).
    
    All that complicated logic in fact appears to be useless.  As far as I
    can tell, there has been no need (outside the floating-point printf
    code, which does its own allocations) for allocations depending on
    width or precision since commit
    3e95f6602b226e0de06aaff686dc47b282d7cc16 ("Remove limitation on size
    of precision for integers", Sun Sep 12 21:23:32 1999 +0000).  Thus,
    this patch removes that logic completely, thereby fixing both problems
    with excessive allocations for large width and precision for
    non-floating-point formats, and the problem with missing overflow
    checks with such allocations.  Note that this does have the
    consequence that width and precision up to INT_MAX are now allowed
    where previously INT_MAX / sizeof (CHAR_T) - EXTSIZ or more would have
    been rejected, so could potentially expose any other overflows where
    the value would previously have been rejected by those removed checks.
    
    I believe this completely fixes bugs 14231 and 26211.
    
    Excessive allocations are still possible in the floating-point case
    (bug 21127), as are other integer or buffer overflows (see bug 26201).
    This does not address the cases where a precision larger than INT_MAX
    (embedded in the format string) would be meaningful without printf's
    return value overflowing (when it's used with a string format, or %g
    without the '#' flag, so the actual output will be much smaller), as
    mentioned in bug 17829 comment 8; using size_t internally for
    precision to handle that case would be complicated by struct
    printf_info being a public ABI.  Nor does it address the matter of an
    INT_MIN width being negated (bug 17829 comment 7; the same logic
    appears a second time in the file as well, in the form of multiplying
    by -1).  There may be other sources of memory allocations with malloc
    in printf functions as well (bug 24988, bug 16060).  From inspection,
    I think there are also integer overflows in two copies of "if ((width
    -= len) < 0)" logic (where width is int, len is size_t and a very long
    string could result in spurious padding being output on a 32-bit
    system before printf overflows the count of output characters).
    
    Tested for x86-64 and x86.

commit 3ad5dab476205d6e16156cf0511fa6884b3b0fc4
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Jul 7 09:58:45 2020 +0200

    elf: Do not signal LA_ACT_CONSISTENT for an empty namespace [BZ #26076]
    
    The auditing interface identifies namespaces by their first loaded
    module.  Once the namespace is empty, it is no longer possible to signal
    LA_ACT_CONSISTENT for it because the first loaded module is already gone
    at that point.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 08538f360f14dbe2e3b04a30148e342f248d9de5
Author: Stefan Liebler <stli@linux.ibm.com>
Date:   Tue Jun 16 14:24:20 2020 +0200

    Fix stringop-overflow errors from gcc 10 in iconv.
    
    On s390x, I've recognize various -Werror=stringop-overflow messages
    in iconv/loop.c and iconv/skeleton.c if build with gcc10 -O3.
    
    With this commit gcc knows the size and do not raise those errors anymore.

commit 3f4b61a0b8de67ef9f20737919c713ddfc4bd620
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jul 6 11:48:09 2020 -0700

    x86: Add thresholds for "rep movsb/stosb" to tunables
    
    Add x86_rep_movsb_threshold and x86_rep_stosb_threshold to tunables
    to update thresholds for "rep movsb" and "rep stosb" at run-time.
    
    Note that the user specified threshold for "rep movsb" smaller than
    the minimum threshold will be ignored.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 6c010c5dde1735f93cc3a6597cdcc2b482af85f8
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Jul 6 16:18:02 2020 +0000

    Use C2x return value from getpayload of non-NaN (bug 26073).
    
    In TS 18661-1, getpayload had an unspecified return value for a
    non-NaN argument, while C2x requires the return value -1 in that case.
    
    This patch implements the return value of -1.  I don't think this is
    worth having a new symbol version that's an alias of the old one,
    although occasionally we do that in such cases where the new function
    semantics are a refinement of the old ones (to avoid programs relying
    on the new semantics running on older glibc versions but not behaving
    as intended).
    
    Tested for x86_64 and x86; also ran math/ tests for aarch64 and
    powerpc.

commit 28c13ae5bbc81aa2ae67890ce53e65257d4703a4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jul 6 06:57:08 2020 -0700

    x86: Detect Extended Feature Disable (XFD)
    
    An extension called extended feature disable (XFD) is an extension added
    for Intel AMX to the XSAVE feature set that allows an operating system
    to enable a feature while preventing specific user threads from using
    the feature.

commit f8b4630ef673486c2c77bd291a08ef132981e149
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jul 6 06:38:05 2020 -0700

    x86: Correct bit_cpu_CLFSH [BZ #26208]
    
    bit_cpu_CLFSH should be (1u << 19), not (1u << 20).

commit 01ffa6002e4f1917574be4fbaddeec31ad829390
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Jun 24 14:32:26 2020 +0200

    manual: Document __libc_single_threaded
    
    Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
    Reviewed-by: DJ Delorie <dj@redhat.com>

commit 706ad1e7af37be1d25fc2359bda006d31fe0d11b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed May 20 15:40:35 2020 +0200

    Add the __libc_single_threaded variable
    
    The variable is placed in libc.so, and it can be true only in
    an outer libc, not libcs loaded via dlmopen or static dlopen.
    Since thread creation from inner namespaces does not work,
    pthread_create can update __libc_single_threaded directly.
    
    Using __libc_early_init and its initial flag, implementation of this
    variable is very straightforward.  A future version may reset the flag
    during fork (but not in an inner namespace), or after joining all
    threads except one.
    
    Reviewed-by: DJ Delorie <dj@redhat.com>

commit 8f4632deb3545b2949cec5454afc3cb21a0024ea
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date:   Mon Jul 6 10:21:35 2020 +0200

    Linux: rseq registration tests
    
    These tests validate that rseq is registered from various execution
    contexts (main thread, destructor, other threads, other threads created
    from destructor, forked process (without exec), pthread_atfork handlers,
    pthread setspecific destructors, signal handlers, atexit handlers).
    
    tst-rseq.c only links against libc.so, testing registration of rseq in
    a non-multithreaded environment.
    
    tst-rseq-nptl.c also links against libpthread.so, testing registration
    of rseq in a multithreaded environment.
    
    See the Linux kernel selftests for extensive rseq stress-tests.

commit 6e29cb3f61ff5432c78a1c84b0d9b123a350ab36
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date:   Mon Jul 6 10:21:31 2020 +0200

    Linux: Use rseq in sched_getcpu if available
    
    When available, use the cpu_id field from __rseq_abi on Linux to
    implement sched_getcpu().  Fall-back on the vgetcpu vDSO if unavailable.
    
    Benchmarks:
    
    x86-64: Intel E5-2630 v3@2.40GHz, 16-core, hyperthreading
    
    glibc sched_getcpu():                     13.7 ns (baseline)
    glibc sched_getcpu() using rseq:           2.5 ns (speedup:  5.5x)
    inline load cpuid from __rseq_abi TLS:     0.8 ns (speedup: 17.1x)

commit 0c76fc3c2b346dc5401dc055d97d4279632b0fb3
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date:   Mon Jul 6 10:21:16 2020 +0200

    Linux: Perform rseq registration at C startup and thread creation
    
    Register rseq TLS for each thread (including main), and unregister for
    each thread (excluding main).  "rseq" stands for Restartable Sequences.
    
    See the rseq(2) man page proposed here:
      https://lkml.org/lkml/2018/9/19/647
    
    Those are based on glibc master branch commit 3ee1e0ec5c.
    The rseq system call was merged into Linux 4.18.
    
    The TLS_STATIC_SURPLUS define is increased to leave additional room for
    dlopen'd initial-exec TLS, which keeps elf/tst-auditmany working.
    
    The increase (76 bytes) is larger than 32 bytes because it has not been
    increased in quite a while.  The cost in terms of additional TLS storage
    is quite significant, but it will also obscure some initial-exec-related
    dlopen failures.

commit f9cf87353772ca370b7bb901d86365a564fba49f
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Jul 5 19:21:45 2020 +0200

    tst-cancel4: deal with ENOSYS errors
    
    The Hurd port doesn't have support for sigwaitinfo, sigtimedwait, and msgget
    yet, so let us ignore the test for these when they return ENOSYS.
    
    * nptl/tst-cancel4.c (tf_sigwaitinfo): Fallback on sigwait when
    sigwaitinfo returns ENOSYS.
    (tf_sigtimedwait): Likewise with sigtimedwait.
    (tf_msgrcv, tf_msgsnd): Fallback on tf_usleep when msgget returns ENOSYS.

commit a3f747a912c53a172388a0a0f896cb88ca3549c8
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jul 3 10:06:24 2020 +0200

    manual: Show copyright information not just in the printed manual
    
    @insertcopying was not used at all in the Info and HTML versions.
    As a result, the notices that need to be present according to the
    GNU Free Documentation License were missing.
    
    This commit shows these notices above the table of contents in the
    HTML version, and as part of the Main Menu node in the Info version.
    
    Remove the "This file documents" line because it is redundant with the
    following line.
    
    Tested-by: Carlos O'Donell <carlos@redhat.com>
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit c6aac3bf3663709cdefde5f5d5e9e875d607be5e
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Jul 1 14:53:30 2020 +0000

    Fix typo in comment in bug 26137 fix.

commit 09555b9721d090f7917f8221be2613a4d6a9b0f6
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Jun 30 23:04:06 2020 +0000

    Fix strtod multiple-precision division bug (bug 26137).
    
    Bug 26137 reports spurious "inexact" exceptions from strtod, on 32-bit
    systems only, for a decimal argument that is exactly 1 + 2^-32.  In
    fact the same issue also appears for 1 + 2^-64 and 1 + 2^-96 as
    arguments to strtof128 on 32-bit systems, and 1 + 2^-64 as an argument
    to strtof128 on 64-bit systems.  In FE_DOWNWARD or FE_TOWARDZERO mode,
    the return value is also incorrect.
    
    The problem is in the multiple-precision division logic used in the
    case of dividing by a denominator that occupies at least three GMP
    limbs.  There was a comment "The division does not work if the upper
    limb of the two-limb mumerator is greater than the denominator.", but
    in fact there were problems for the case of equality (that is, where
    the high limbs are equal, offset by some multiple of the GMP limb
    size) as well.  In such cases, the code used "quot = ~(mp_limb_t) 0;"
    (with subsequent correction if that is an overestimate), because
    udiv_qrnnd does not support the case of equality, but it's possible
    for the shifted numerator to be greater than or equal to the
    denominator, in which case that is an underestimate.  To avoid that,
    this patch changes the ">" condition to ">=", meaning the first
    division is done with a zero high word.
    
    The tests added are all 1 + 2^-n for n from 1 to 113 except for those
    that were already present in tst-strtod-round-data.
    
    Tested for x86_64 and x86.

commit 5f40e4b1ba69a22923f6ec692d2d0f65733ccb0b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Jun 30 21:19:43 2020 +0200

    Linux: Fix UTC offset setting in settimeofday for __TIMESIZE != 64
    
    The time argument is NULL in this case, and attempt to convert it
    leads to a null pointer dereference.
    
    This fixes commit d2e3b697da2433c08702f95c76458c51545c3df1
    ("y2038: linux: Provide __settimeofday64 implementation").
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 354b98cdfd78fc8ca0f6ed7b0e3aa8c311f1deba
Author: John Marshall <John.W.Marshall@glasgow.ac.uk>
Date:   Tue Jun 30 14:16:03 2020 -0400

    random: range is not portably RAND_MAX [BZ #7003]
    
    On other platforms, RAND_MAX (which is the range of rand(3))
    may differ from 2^31-1 (which is the range of random(3)).
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 3ee1e0ec5cd0441954be9181dc437358846b39c6
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Jun 29 14:06:32 2020 +0000

    Update kernel version to 5.7 in tst-mman-consts.py.
    
    This patch updates the kernel version in the test tst-mman-consts.py
    to 5.7.  (There are no new constants covered by this test in 5.7 that
    need any other header changes; there's a new MREMAP_DONTUNMAP, but
    this test doesn't yet cover MREMAP_*.)
    
    Tested with build-many-glibcs.py.

commit d2ba3677da7a785556fcd708404d8e049b1c063b
Author: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date:   Wed Jun 24 18:04:41 2020 -0300

    powerpc: Add support for POWER10
    
    1. Add the directories to hold POWER10 files.
    
    2. Add support to select POWER10 libraries based on AT_PLATFORM.
    
    3. Let submachine=power10 be set automatically.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-07-09 16:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 16:32 [glibc/vineet/arc-port-latest] (85 commits) Documentation for ARC port Vineet Gupta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).