Project import generated by Copybara.

GitOrigin-RevId: 4842f32639f47ab481d2e3e13c4ca4f5c4146d6c
diff --git a/README b/README
index 83e9aae..878e853 100755
--- a/README
+++ b/README
@@ -5,15 +5,15 @@
 set -o errtrace
 trap 'echo Fatal error: script $0 aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR
 
-snapshot="2021.01.07.200850"
+snapshot="2022.03.12.131524"
 
 snapshot_year=`echo $snapshot | cut -d . -f 1`
 snapshot_month=`echo $snapshot | cut -d . -f 2`
 snapshot_day=`echo $snapshot | cut -d . -f 3`
 snapshot_time=`echo $snapshot | cut -d . -f 4`
-glibc_version=2.27-r20
+glibc_version=2.33-r16
 
-# Upgrade CrOS toolchain to GCC 4.9.x ${snapshot}
+# Upgrade CrOS toolchain to GCC 10.2.0 ${snapshot}
 
 function build_toolchain_arm_none_eabi {
   pushd ${SCRIPT_DIR}
@@ -21,14 +21,14 @@
 
   # 1. Obtain {toolchain,glibc} prebuilts from Chrome OS.
   gsutil.py cp gs://chromiumos-sdk/${snapshot_year}/${snapshot_month}/arm-none-eabi-${snapshot}.tar.xz .
-  gsutil.py cp gs://chromeos-prebuilt/host/amd64/amd64-host/chroot-${snapshot}/packages/cross-arm-none-eabi/newlib-2.2.0.tbz2 .
+  gsutil.py cp gs://chromeos-prebuilt/host/amd64/amd64-host/chroot-${snapshot}/packages/cross-arm-none-eabi/newlib-4.1.0.tbz2 .
 
   # 2. Extract downloaded toolchain (overwrite armv7a contents)
   rm -rf arm
   mkdir arm
   tar -C arm -xf arm-none-eabi-${snapshot}.tar.xz
-  tar -C arm -xf newlib-2.2.0.tbz2
-  rm arm-none-eabi-${snapshot}.tar.xz newlib-2.2.0.tbz2
+  tar -C arm -xf newlib-4.1.0.tbz2
+  rm arm-none-eabi-${snapshot}.tar.xz newlib-4.1.0.tbz2
 
   # 3. Make copies of libgcc_s.so.1 to fit with chromecast build system.
 
@@ -44,7 +44,7 @@
   popd # ${SCRIPT_DIR}
 }
 
-# Upgrade CrOS toolchain to GCC 4.9.x ${snapshot}
+# Upgrade CrOS toolchain to GCC 10.2.0 ${snapshot}
 
 function build_toolchain {
   pushd ${SCRIPT_DIR}
@@ -55,8 +55,8 @@
   rm -rf ${arch}
 
   # 1. Obtain {toolchain,glibc} prebuilts from Chrome OS.
-  gsutil cp gs://chromiumos-sdk/${snapshot_year}/${snapshot_month}/${arch}-cros-linux-${abi}-${snapshot}.tar.xz .
-  gsutil cp gs://chromeos-prebuilt/host/amd64/amd64-host/chroot-${snapshot}/packages/cross-${arch}-cros-linux-${abi}/glibc-${glibc_version}.tbz2 .
+  gsutil.py cp gs://chromiumos-sdk/${snapshot_year}/${snapshot_month}/${arch}-cros-linux-${abi}-${snapshot}.tar.xz .
+  gsutil.py cp gs://chromeos-prebuilt/host/amd64/amd64-host/chroot-${snapshot}/packages/cross-${arch}-cros-linux-${abi}/glibc-${glibc_version}.tbz2 .
 
   # 2. Extract downloaded toolchain (overwrite armv7a contents)
   rm -rf ${arch}
@@ -66,8 +66,7 @@
   rm ${arch}-cros-linux-${abi}-${snapshot}.tar.xz glibc-${glibc_version}.tbz2
 
   # 3. Make copies of libgcc_s.so.1 to fit with chromecast build system.
-  cp ${arch}/usr/lib/gcc/${arch}-cros-linux-${abi}/4.9.x/libgcc_s.so.1 ${arch}/lib/
-  cp ${arch}/usr/lib/gcc/${arch}-cros-linux-${abi}/4.9.x/libgcc_s.so.1 ${arch}/usr/${arch}-cros-linux-${abi}/lib/
+  cp ${arch}/usr/lib/gcc/${arch}-cros-linux-${abi}/10.2.0/libgcc_s.so.1 ${arch}/usr/${arch}-cros-linux-${abi}/lib/
 
   # 4. Add NOTICE files.
   curl -L https://www.gnu.org/licenses/lgpl-2.1.txt > ${arch}/usr/${arch}-cros-linux-${abi}/NOTICE-eglibc
diff --git a/README_gdbserver b/README_gdbserver
index ebc34af..fe5c035 100755
--- a/README_gdbserver
+++ b/README_gdbserver
@@ -19,8 +19,14 @@
   # 5. Install gdbserver ${gdbserver_version}
   wget https://ftp.gnu.org/gnu/gdb/gdb-${gdbserver_version}.tar.gz
   tar -xf gdb-${gdbserver_version}.tar.gz
+
+  # patch the gdb-8.0.1 to pass compilation w/ glibc 2.32
+  pushd gdb-${gdbserver_version}
+  patch -p1 < ../fix_gdb-8.0.1_glibc-2.32.patch
+  popd
+
   pushd gdb-${gdbserver_version}/gdb/gdbserver
-  PATH=$PATH:`pwd`/../../../${arch}/usr/x86_64-pc-linux-gnu/${name}/gcc-bin/4.9.x/ ; ./configure --host=${name} \
+  PATH=`pwd`/../../../${arch}/usr/bin/:$PATH ; ./configure --host=${name} \
     CC=${name}-clang CXX=${name}-clang++ CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++ --rtlib=compiler-rt"
   make -j50
   popd
diff --git a/aarch64/bin/FileCheck b/aarch64/bin/FileCheck
index 3086c50..0e6b2f5 100755
--- a/aarch64/bin/FileCheck
+++ b/aarch64/bin/FileCheck
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/FileCheck" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/FileCheck" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/FileCheck.elf b/aarch64/bin/FileCheck.elf
index 1050a38..fc3e37e 100755
--- a/aarch64/bin/FileCheck.elf
+++ b/aarch64/bin/FileCheck.elf
Binary files differ
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-addr2line b/aarch64/bin/aarch64-cros-linux-gnu-addr2line
index 3d93f11..984197c 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-addr2line
+++ b/aarch64/bin/aarch64-cros-linux-gnu-addr2line
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/addr2line" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/addr2line" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-addr2line.elf b/aarch64/bin/aarch64-cros-linux-gnu-addr2line.elf
new file mode 100755
index 0000000..2ff42cc
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-addr2line.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/addr2line.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ar b/aarch64/bin/aarch64-cros-linux-gnu-ar
index 97f1113..dc18d4c 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-ar
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ar
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/ar" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ar" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ar.elf b/aarch64/bin/aarch64-cros-linux-gnu-ar.elf
new file mode 100755
index 0000000..839935a
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ar.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ar.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-as b/aarch64/bin/aarch64-cros-linux-gnu-as
index ee72500..669eb19 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-as
+++ b/aarch64/bin/aarch64-cros-linux-gnu-as
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/as" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/as" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-as.elf b/aarch64/bin/aarch64-cros-linux-gnu-as.elf
new file mode 100755
index 0000000..e8217e0
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-as.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/as.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-c++ b/aarch64/bin/aarch64-cros-linux-gnu-c++
index 5713edc..28a13c9 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-c++
+++ b/aarch64/bin/aarch64-cros-linux-gnu-c++
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-c++" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-c++" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-c++-10.2.0 b/aarch64/bin/aarch64-cros-linux-gnu-c++-10.2.0
new file mode 120000
index 0000000..b5eb719
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-c++-10.2.0
@@ -0,0 +1 @@
+../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-c++
\ No newline at end of file
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-c++-4.9.x b/aarch64/bin/aarch64-cros-linux-gnu-c++-4.9.x
deleted file mode 100755
index 648bb36..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-c++-4.9.x
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/sysroot_wrapper.hardened.ccache" "$@"
-exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-c++filt b/aarch64/bin/aarch64-cros-linux-gnu-c++filt
index b3ecc34..2902820 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-c++filt
+++ b/aarch64/bin/aarch64-cros-linux-gnu-c++filt
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/c++filt" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/c++filt" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-c++filt.elf b/aarch64/bin/aarch64-cros-linux-gnu-c++filt.elf
new file mode 100755
index 0000000..3fd199b
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-c++filt.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/c++filt.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-clang b/aarch64/bin/aarch64-cros-linux-gnu-clang
index 3f7cb17..d19b012 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-clang
+++ b/aarch64/bin/aarch64-cros-linux-gnu-clang
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-clang" "$@"
+"${basedir}/../usr/bin/aarch64-cros-linux-gnu-clang" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-clang++ b/aarch64/bin/aarch64-cros-linux-gnu-clang++
index 56fded2..ef8e125 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-clang++
+++ b/aarch64/bin/aarch64-cros-linux-gnu-clang++
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-clang++" "$@"
+"${basedir}/../usr/bin/aarch64-cros-linux-gnu-clang++" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-cpp b/aarch64/bin/aarch64-cros-linux-gnu-cpp
index ac357b5..c329d82 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-cpp
+++ b/aarch64/bin/aarch64-cros-linux-gnu-cpp
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-cpp" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-cpp" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-cpp-10.2.0 b/aarch64/bin/aarch64-cros-linux-gnu-cpp-10.2.0
new file mode 100755
index 0000000..c329d82
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-cpp-10.2.0
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-cpp" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-cpp-4.9.x b/aarch64/bin/aarch64-cros-linux-gnu-cpp-4.9.x
deleted file mode 100755
index ac357b5..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-cpp-4.9.x
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-cpp" "$@"
-exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-dwp b/aarch64/bin/aarch64-cros-linux-gnu-dwp
index b43a30a..39c1d5d 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-dwp
+++ b/aarch64/bin/aarch64-cros-linux-gnu-dwp
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/dwp" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/dwp" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-dwp.elf b/aarch64/bin/aarch64-cros-linux-gnu-dwp.elf
new file mode 100755
index 0000000..53759c9
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-dwp.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/dwp.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-elfedit b/aarch64/bin/aarch64-cros-linux-gnu-elfedit
index 388811a..1c4d326 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-elfedit
+++ b/aarch64/bin/aarch64-cros-linux-gnu-elfedit
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/elfedit" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/elfedit" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-elfedit.elf b/aarch64/bin/aarch64-cros-linux-gnu-elfedit.elf
new file mode 100755
index 0000000..e099966
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-elfedit.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/elfedit.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-g++ b/aarch64/bin/aarch64-cros-linux-gnu-g++
index e73c9d6..b64dab1 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-g++
+++ b/aarch64/bin/aarch64-cros-linux-gnu-g++
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-g++" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-g++" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-g++-10.2.0 b/aarch64/bin/aarch64-cros-linux-gnu-g++-10.2.0
new file mode 100755
index 0000000..701dfa9
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-g++-10.2.0
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/sysroot_wrapper.hardened.ccache" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-g++-4.9.x b/aarch64/bin/aarch64-cros-linux-gnu-g++-4.9.x
deleted file mode 120000
index 7d9e90f..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-g++-4.9.x
+++ /dev/null
@@ -1 +0,0 @@
-../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-g++
\ No newline at end of file
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc b/aarch64/bin/aarch64-cros-linux-gnu-gcc
index 1c34c42..794141f 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcc
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcc
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcc" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcc" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc-10.2.0 b/aarch64/bin/aarch64-cros-linux-gnu-gcc-10.2.0
new file mode 100755
index 0000000..a04eee8
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcc-10.2.0
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcc-10.2.0" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc-4.9.x b/aarch64/bin/aarch64-cros-linux-gnu-gcc-4.9.x
deleted file mode 100755
index dce4b09..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcc-4.9.x
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcc-4.9.x" "$@"
-exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc-ar b/aarch64/bin/aarch64-cros-linux-gnu-gcc-ar
index 203b9ff..d40793e 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcc-ar
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcc-ar
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcc-ar" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcc-ar" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc-nm b/aarch64/bin/aarch64-cros-linux-gnu-gcc-nm
index 7d0b623..1c2ed6f 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcc-nm
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcc-nm
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcc-nm" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcc-nm" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcc-ranlib b/aarch64/bin/aarch64-cros-linux-gnu-gcc-ranlib
index 8762bcb..1125b70 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcc-ranlib
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcc-ranlib
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcc-ranlib" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcc-ranlib" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcov b/aarch64/bin/aarch64-cros-linux-gnu-gcov
index 0e3831b..deb8fca 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcov
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcov
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcov" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcov" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcov-10.2.0 b/aarch64/bin/aarch64-cros-linux-gnu-gcov-10.2.0
new file mode 100755
index 0000000..deb8fca
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcov-10.2.0
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcov" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcov-4.9.x b/aarch64/bin/aarch64-cros-linux-gnu-gcov-4.9.x
deleted file mode 100755
index 0e3831b..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcov-4.9.x
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcov" "$@"
-exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcov-dump b/aarch64/bin/aarch64-cros-linux-gnu-gcov-dump
new file mode 100755
index 0000000..4bf0a0a
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcov-dump
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcov-dump" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gcov-tool b/aarch64/bin/aarch64-cros-linux-gnu-gcov-tool
index 673002c..234a969 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gcov-tool
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gcov-tool
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/4.9.x/aarch64-cros-linux-gnu-gcov-tool" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-gcov-tool" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gdb b/aarch64/bin/aarch64-cros-linux-gnu-gdb
index 5a338b9..d2ac4bd 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gdb
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gdb
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/aarch64-cros-linux-gnu-gdb" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/aarch64-cros-linux-gnu-gdb" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gdb.elf b/aarch64/bin/aarch64-cros-linux-gnu-gdb.elf
index 35a7967..a2c1ca7 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gdb.elf
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gdb.elf
Binary files differ
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gprof b/aarch64/bin/aarch64-cros-linux-gnu-gprof
index dd0d5ea..04b0b4c 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-gprof
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gprof
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/gprof" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/gprof" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-gprof.elf b/aarch64/bin/aarch64-cros-linux-gnu-gprof.elf
new file mode 100755
index 0000000..9e9fd50
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-gprof.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/gprof.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ld b/aarch64/bin/aarch64-cros-linux-gnu-ld
index 611509a..7095060 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-ld
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ld
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/ld" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ld" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd b/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd
index ef81294..c4e510d 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/ld.bfd" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ld.bfd" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd.real.elf b/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd.real.elf
new file mode 100755
index 0000000..e4e9118
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ld.bfd.real.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ld.bfd.real.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ld.gold b/aarch64/bin/aarch64-cros-linux-gnu-ld.gold
deleted file mode 100755
index 8cc1f06..0000000
--- a/aarch64/bin/aarch64-cros-linux-gnu-ld.gold
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/ld.gold" "$@"
-exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ld.lld b/aarch64/bin/aarch64-cros-linux-gnu-ld.lld
index f240615..8f94dfa 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-ld.lld
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ld.lld
@@ -6,4 +6,4 @@
 # This files wraps lld.
 # Enable smallpie, now, relro and hash-style=gnu to match gold wrapper.
 # Enable norosegment to match gold wrapper, for symbolization. b/140622025
-exec "$(dirname "$(readlink -f "$0")")"/ld.lld --pack-dyn-relocs=relr -z now -z relro --no-rosegment --hash-style=gnu "$@"
+exec "$(dirname "$(readlink -f "$0")")"/ld.lld --pack-dyn-relocs=relr -z now -z relro --no-rosegment --hash-style=gnu -z nostart-stop-gc "$@"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-lto-dump b/aarch64/bin/aarch64-cros-linux-gnu-lto-dump
new file mode 100755
index 0000000..6678e89
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-lto-dump
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/gcc-bin/10.2.0/aarch64-cros-linux-gnu-lto-dump" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-nm b/aarch64/bin/aarch64-cros-linux-gnu-nm
index 33db217..9d35a5c 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-nm
+++ b/aarch64/bin/aarch64-cros-linux-gnu-nm
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/nm" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/nm" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-nm.elf b/aarch64/bin/aarch64-cros-linux-gnu-nm.elf
new file mode 100755
index 0000000..045f225
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-nm.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/nm.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-objcopy b/aarch64/bin/aarch64-cros-linux-gnu-objcopy
index 10a6e0a..211611f 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-objcopy
+++ b/aarch64/bin/aarch64-cros-linux-gnu-objcopy
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/objcopy" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/objcopy" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-objcopy.elf b/aarch64/bin/aarch64-cros-linux-gnu-objcopy.elf
new file mode 100755
index 0000000..fece6ee
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-objcopy.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/objcopy.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-objdump b/aarch64/bin/aarch64-cros-linux-gnu-objdump
index 391aec6..4f6b5c0 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-objdump
+++ b/aarch64/bin/aarch64-cros-linux-gnu-objdump
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/objdump" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/objdump" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-objdump.elf b/aarch64/bin/aarch64-cros-linux-gnu-objdump.elf
new file mode 100755
index 0000000..a0583f9
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-objdump.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/objdump.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ranlib b/aarch64/bin/aarch64-cros-linux-gnu-ranlib
index 9033e1e..0ef1787 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-ranlib
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ranlib
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/ranlib" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ranlib" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-ranlib.elf b/aarch64/bin/aarch64-cros-linux-gnu-ranlib.elf
new file mode 100755
index 0000000..ec1f11e
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-ranlib.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/ranlib.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-readelf b/aarch64/bin/aarch64-cros-linux-gnu-readelf
index 51cb7a5..9caca3f 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-readelf
+++ b/aarch64/bin/aarch64-cros-linux-gnu-readelf
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/readelf" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/readelf" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-readelf.elf b/aarch64/bin/aarch64-cros-linux-gnu-readelf.elf
new file mode 100755
index 0000000..44f9f61
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-readelf.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/readelf.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-run b/aarch64/bin/aarch64-cros-linux-gnu-run
index 88724e3..43e5c09 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-run
+++ b/aarch64/bin/aarch64-cros-linux-gnu-run
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/aarch64-cros-linux-gnu-run" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/aarch64-cros-linux-gnu-run" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-run.elf b/aarch64/bin/aarch64-cros-linux-gnu-run.elf
index 8777bbb..cdb65e0 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-run.elf
+++ b/aarch64/bin/aarch64-cros-linux-gnu-run.elf
Binary files differ
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-size b/aarch64/bin/aarch64-cros-linux-gnu-size
index d45842a..6256a37 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-size
+++ b/aarch64/bin/aarch64-cros-linux-gnu-size
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/size" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/size" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-size.elf b/aarch64/bin/aarch64-cros-linux-gnu-size.elf
new file mode 100755
index 0000000..dc75652
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-size.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/size.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-strings b/aarch64/bin/aarch64-cros-linux-gnu-strings
index 510852f..6f5c761 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-strings
+++ b/aarch64/bin/aarch64-cros-linux-gnu-strings
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/strings" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/strings" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-strings.elf b/aarch64/bin/aarch64-cros-linux-gnu-strings.elf
new file mode 100755
index 0000000..6c681ff
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-strings.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/strings.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-strip b/aarch64/bin/aarch64-cros-linux-gnu-strip
index 7929e37..18b4d5d 100755
--- a/aarch64/bin/aarch64-cros-linux-gnu-strip
+++ b/aarch64/bin/aarch64-cros-linux-gnu-strip
@@ -1,4 +1,4 @@
 #!/bin/sh
 basedir=$(dirname "$0")
-"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.27.0-gold/strip" "$@"
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/strip" "$@"
 exit "$?"
diff --git a/aarch64/bin/aarch64-cros-linux-gnu-strip.elf b/aarch64/bin/aarch64-cros-linux-gnu-strip.elf
new file mode 100755
index 0000000..3b273c7
--- /dev/null
+++ b/aarch64/bin/aarch64-cros-linux-gnu-strip.elf
@@ -0,0 +1,4 @@
+#!/bin/sh
+basedir=$(dirname "$0")
+"${basedir}/../usr/x86_64-pc-linux-gnu/aarch64-cros-linux-gnu/binutils-bin/2.36.1/strip.elf" "$@"
+exit "$?"
diff --git a/aarch64/bin/analyze-build b/aarch64/bin/analyze-build
new file mode 100755
index 0000000..b3f6142
--- /dev/null
+++ b/aarch64/bin/analyze-build
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+import multiprocessing
+import sys
+import os.path
+this_dir = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
+
+from libscanbuild.analyze import analyze_build
+
+if __name__ == '__main__':
+    multiprocessing.freeze_support()
+    sys.exit(analyze_build())
diff --git a/aarch64/bin/asan_symbolize.py b/aarch64/bin/asan_symbolize.py
index 5c4001a..ab04b1c 100755
--- a/aarch64/bin/asan_symbolize.py
+++ b/aarch64/bin/asan_symbolize.py
@@ -208,7 +208,7 @@
       # EPIPE happens if addr2line exits early (which some implementations do
       # if an invalid file is passed).
       if e.errno == errno.EPIPE:
-        logging.debug("addr2line exited early (broken pipe), returncode=%d" % self.pipe.poll())
+        logging.debug(f"addr2line exited early (broken pipe) returncode={self.pipe.poll()}")
       else:
         logging.debug("unexpected I/O exception communicating with addr2line", exc_info=e)
       lines.append(('??', '??:0'))
diff --git a/aarch64/bin/bugpoint b/aarch64/bin/bugpoint
index edaf98a..5ff3448 100755
--- a/aarch64/bin/bugpoint
+++ b/aarch64/bin/bugpoint
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/bugpoint" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/bugpoint" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/bugpoint.elf b/aarch64/bin/bugpoint.elf
index f09d663..f837688 100755
--- a/aarch64/bin/bugpoint.elf
+++ b/aarch64/bin/bugpoint.elf
Binary files differ
diff --git a/aarch64/bin/c-index-test b/aarch64/bin/c-index-test
index 4039b91..50cec88 100755
--- a/aarch64/bin/c-index-test
+++ b/aarch64/bin/c-index-test
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/c-index-test" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/c-index-test" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/c-index-test.elf b/aarch64/bin/c-index-test.elf
index df41318..2d129e8 100755
--- a/aarch64/bin/c-index-test.elf
+++ b/aarch64/bin/c-index-test.elf
Binary files differ
diff --git a/aarch64/bin/clippy-driver b/aarch64/bin/clippy-driver
index 0802c6e..7852c38 100755
--- a/aarch64/bin/clippy-driver
+++ b/aarch64/bin/clippy-driver
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/clippy-driver" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib:${basedir}/../usr/lib64/rust/rustlib/x86_64-unknown-linux-gnu/lib:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/clippy-driver" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib:${basedir}/../usr/lib64/rust/rustlib/x86_64-unknown-linux-gnu/lib:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/clippy-driver.elf b/aarch64/bin/clippy-driver.elf
index 3660332..a795106 100755
--- a/aarch64/bin/clippy-driver.elf
+++ b/aarch64/bin/clippy-driver.elf
Binary files differ
diff --git a/aarch64/bin/count b/aarch64/bin/count
index d1562a4..8e08470 100755
--- a/aarch64/bin/count
+++ b/aarch64/bin/count
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/count" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/count" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/count.elf b/aarch64/bin/count.elf
index e4e756e..91c98cb 100755
--- a/aarch64/bin/count.elf
+++ b/aarch64/bin/count.elf
Binary files differ
diff --git a/aarch64/bin/diagtool b/aarch64/bin/diagtool
index 975527f..e66971d 100755
--- a/aarch64/bin/diagtool
+++ b/aarch64/bin/diagtool
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/diagtool" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/diagtool" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/diagtool.elf b/aarch64/bin/diagtool.elf
index f8bfdeb..1bfa7af 100755
--- a/aarch64/bin/diagtool.elf
+++ b/aarch64/bin/diagtool.elf
Binary files differ
diff --git a/aarch64/bin/dsymutil b/aarch64/bin/dsymutil
index 13be5a2..bd48395 100755
--- a/aarch64/bin/dsymutil
+++ b/aarch64/bin/dsymutil
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/dsymutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/dsymutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/dsymutil.elf b/aarch64/bin/dsymutil.elf
index fb22153..312f18e 100755
--- a/aarch64/bin/dsymutil.elf
+++ b/aarch64/bin/dsymutil.elf
Binary files differ
diff --git a/aarch64/bin/eu-addr2line b/aarch64/bin/eu-addr2line
index 7f03eed..d9aeb63 100755
--- a/aarch64/bin/eu-addr2line
+++ b/aarch64/bin/eu-addr2line
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-addr2line" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-addr2line" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-addr2line.elf b/aarch64/bin/eu-addr2line.elf
index 74822f3..77d56ec 100755
--- a/aarch64/bin/eu-addr2line.elf
+++ b/aarch64/bin/eu-addr2line.elf
Binary files differ
diff --git a/aarch64/bin/eu-ar b/aarch64/bin/eu-ar
index 3dbc757..eb2d5a7 100755
--- a/aarch64/bin/eu-ar
+++ b/aarch64/bin/eu-ar
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-ar" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-ar" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-ar.elf b/aarch64/bin/eu-ar.elf
index d56755d..87f2b7c 100755
--- a/aarch64/bin/eu-ar.elf
+++ b/aarch64/bin/eu-ar.elf
Binary files differ
diff --git a/aarch64/bin/eu-elfclassify b/aarch64/bin/eu-elfclassify
index 7fba23b..eb0c830 100755
--- a/aarch64/bin/eu-elfclassify
+++ b/aarch64/bin/eu-elfclassify
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-elfclassify" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-elfclassify" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-elfclassify.elf b/aarch64/bin/eu-elfclassify.elf
index 01a563d..fae5790 100755
--- a/aarch64/bin/eu-elfclassify.elf
+++ b/aarch64/bin/eu-elfclassify.elf
Binary files differ
diff --git a/aarch64/bin/eu-elfcmp b/aarch64/bin/eu-elfcmp
index ec7be79..0c71dc9 100755
--- a/aarch64/bin/eu-elfcmp
+++ b/aarch64/bin/eu-elfcmp
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-elfcmp" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-elfcmp" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-elfcmp.elf b/aarch64/bin/eu-elfcmp.elf
index 84e42d6..20032d4 100755
--- a/aarch64/bin/eu-elfcmp.elf
+++ b/aarch64/bin/eu-elfcmp.elf
Binary files differ
diff --git a/aarch64/bin/eu-elfcompress b/aarch64/bin/eu-elfcompress
index d6b161d..0125c18 100755
--- a/aarch64/bin/eu-elfcompress
+++ b/aarch64/bin/eu-elfcompress
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-elfcompress" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-elfcompress" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-elfcompress.elf b/aarch64/bin/eu-elfcompress.elf
index a2b2186..f427be2 100755
--- a/aarch64/bin/eu-elfcompress.elf
+++ b/aarch64/bin/eu-elfcompress.elf
Binary files differ
diff --git a/aarch64/bin/eu-elflint b/aarch64/bin/eu-elflint
index bd35ff2..2ac99de 100755
--- a/aarch64/bin/eu-elflint
+++ b/aarch64/bin/eu-elflint
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-elflint" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-elflint" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-elflint.elf b/aarch64/bin/eu-elflint.elf
index 10f52b2..dd940f7 100755
--- a/aarch64/bin/eu-elflint.elf
+++ b/aarch64/bin/eu-elflint.elf
Binary files differ
diff --git a/aarch64/bin/eu-findtextrel b/aarch64/bin/eu-findtextrel
index a9a0959..6541a08 100755
--- a/aarch64/bin/eu-findtextrel
+++ b/aarch64/bin/eu-findtextrel
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-findtextrel" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-findtextrel" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-findtextrel.elf b/aarch64/bin/eu-findtextrel.elf
index c4b9d25..082f8e3 100755
--- a/aarch64/bin/eu-findtextrel.elf
+++ b/aarch64/bin/eu-findtextrel.elf
Binary files differ
diff --git a/aarch64/bin/eu-make-debug-archive b/aarch64/bin/eu-make-debug-archive
index b798e75..7439a31 100755
--- a/aarch64/bin/eu-make-debug-archive
+++ b/aarch64/bin/eu-make-debug-archive
@@ -45,7 +45,7 @@
 
 script_version()
 {
-  echo "`basename $0` (elfutils) 0.177"
+  echo "`basename $0` (elfutils) 0.185"
   echo "Copyright (C) 2007 Red Hat, Inc."
   echo "This is free software; see the source for copying conditions."
   echo "There is NO warranty; not even for MERCHANTABILITY or"
diff --git a/aarch64/bin/eu-nm b/aarch64/bin/eu-nm
index b6f3f28..ad460e1 100755
--- a/aarch64/bin/eu-nm
+++ b/aarch64/bin/eu-nm
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-nm" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-nm" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-nm.elf b/aarch64/bin/eu-nm.elf
index e9af74c..f541d1b 100755
--- a/aarch64/bin/eu-nm.elf
+++ b/aarch64/bin/eu-nm.elf
Binary files differ
diff --git a/aarch64/bin/eu-objdump b/aarch64/bin/eu-objdump
index 02d0014..980d2dd 100755
--- a/aarch64/bin/eu-objdump
+++ b/aarch64/bin/eu-objdump
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-objdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-objdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-objdump.elf b/aarch64/bin/eu-objdump.elf
index e15cade..cc87020 100755
--- a/aarch64/bin/eu-objdump.elf
+++ b/aarch64/bin/eu-objdump.elf
Binary files differ
diff --git a/aarch64/bin/eu-ranlib b/aarch64/bin/eu-ranlib
index a53fa7e..a2d0e4e 100755
--- a/aarch64/bin/eu-ranlib
+++ b/aarch64/bin/eu-ranlib
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-ranlib" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-ranlib" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-ranlib.elf b/aarch64/bin/eu-ranlib.elf
index bb54485..b80e1cf 100755
--- a/aarch64/bin/eu-ranlib.elf
+++ b/aarch64/bin/eu-ranlib.elf
Binary files differ
diff --git a/aarch64/bin/eu-readelf b/aarch64/bin/eu-readelf
index 1cd8230..867bb6d 100755
--- a/aarch64/bin/eu-readelf
+++ b/aarch64/bin/eu-readelf
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-readelf" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-readelf" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-readelf.elf b/aarch64/bin/eu-readelf.elf
index 8fb67e7..3db5e4a 100755
--- a/aarch64/bin/eu-readelf.elf
+++ b/aarch64/bin/eu-readelf.elf
Binary files differ
diff --git a/aarch64/bin/eu-size b/aarch64/bin/eu-size
index 26ebc59..da31068 100755
--- a/aarch64/bin/eu-size
+++ b/aarch64/bin/eu-size
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-size" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-size" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-size.elf b/aarch64/bin/eu-size.elf
index b64e1b1..49b308b 100755
--- a/aarch64/bin/eu-size.elf
+++ b/aarch64/bin/eu-size.elf
Binary files differ
diff --git a/aarch64/bin/eu-stack b/aarch64/bin/eu-stack
index 7df09d7..d849807 100755
--- a/aarch64/bin/eu-stack
+++ b/aarch64/bin/eu-stack
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-stack" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-stack" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-stack.elf b/aarch64/bin/eu-stack.elf
index d0af395..fe197db 100755
--- a/aarch64/bin/eu-stack.elf
+++ b/aarch64/bin/eu-stack.elf
Binary files differ
diff --git a/aarch64/bin/eu-strings b/aarch64/bin/eu-strings
index e90b197..129fc70 100755
--- a/aarch64/bin/eu-strings
+++ b/aarch64/bin/eu-strings
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-strings" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-strings" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-strings.elf b/aarch64/bin/eu-strings.elf
index 1f0d6a2..11d567b 100755
--- a/aarch64/bin/eu-strings.elf
+++ b/aarch64/bin/eu-strings.elf
Binary files differ
diff --git a/aarch64/bin/eu-strip b/aarch64/bin/eu-strip
index 976842b..423ff5d 100755
--- a/aarch64/bin/eu-strip
+++ b/aarch64/bin/eu-strip
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-strip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-strip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-strip.elf b/aarch64/bin/eu-strip.elf
index b9c27a2..e0eb6e8 100755
--- a/aarch64/bin/eu-strip.elf
+++ b/aarch64/bin/eu-strip.elf
Binary files differ
diff --git a/aarch64/bin/eu-unstrip b/aarch64/bin/eu-unstrip
index b7581fa..f00eff2 100755
--- a/aarch64/bin/eu-unstrip
+++ b/aarch64/bin/eu-unstrip
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/eu-unstrip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/eu-unstrip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/eu-unstrip.elf b/aarch64/bin/eu-unstrip.elf
index 7d2c5ca..d1a4921 100755
--- a/aarch64/bin/eu-unstrip.elf
+++ b/aarch64/bin/eu-unstrip.elf
Binary files differ
diff --git a/aarch64/bin/find-all-symbols b/aarch64/bin/find-all-symbols
index 0e58599..2b11eb5 100755
--- a/aarch64/bin/find-all-symbols
+++ b/aarch64/bin/find-all-symbols
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/find-all-symbols" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/find-all-symbols" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/find-all-symbols.elf b/aarch64/bin/find-all-symbols.elf
index 932098a..2f91149 100755
--- a/aarch64/bin/find-all-symbols.elf
+++ b/aarch64/bin/find-all-symbols.elf
Binary files differ
diff --git a/aarch64/bin/hmaptool b/aarch64/bin/hmaptool
index 58baab2..7949002 100755
--- a/aarch64/bin/hmaptool
+++ b/aarch64/bin/hmaptool
@@ -1,6 +1,7 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 from __future__ import absolute_import, division, print_function
 
+from ctypes import ArgumentError
 import json
 import optparse
 import os
@@ -9,8 +10,8 @@
 
 ###
 
-k_header_magic_LE = 'pamh'
-k_header_magic_BE = 'hmap'
+k_header_magic_LE = b'pamh'
+k_header_magic_BE = b'hmap'
 
 def hmap_hash(str):
     """hash(str) -> int
@@ -43,7 +44,7 @@
                         path,))
 
             (version, reserved, strtable_offset, num_entries,
-             num_buckets, max_value_len) = struct.unpack(header_fmt, data)
+             num_buckets) = struct.unpack(header_fmt, data)
 
             if version != 1:
                 raise SystemExit("error: %s: unknown headermap version: %r" % (
@@ -83,7 +84,7 @@
             if len(strtable) != strtable_size:
                 raise SystemExit("error: %s: unable to read complete string table"%(
                         path,))
-            if strtable[-1] != '\0':
+            if strtable[-1] != 0:
                 raise SystemExit("error: %s: invalid string table in headermap" % (
                         path,))
 
@@ -97,8 +98,8 @@
     def get_string(self, idx):
         if idx >= len(self.strtable):
             raise SystemExit("error: %s: invalid string index" % (
-                    path,))
-        end_idx = self.strtable.index('\0', idx)
+                    idx,))
+        end_idx = self.strtable.index(0, idx)
         return self.strtable[idx:end_idx]
 
     @property
@@ -147,7 +148,7 @@
             suffix = hmap.get_string(suffix_idx)
 
             print ("  bucket[%d]: %r -> (%r, %r) -- %d" % (
-                i, key, prefix, suffix, (hmap_hash(key) & (num_buckets - 1))))
+                i, key, prefix, suffix, (hmap_hash(key) & (len(hmap.buckets) - 1))))
     else:
         mappings = sorted(hmap.mappings)
         for key,value in mappings:
@@ -220,7 +221,7 @@
 
     # Write out the headermap.
     with open(output_path, 'wb') as f:
-        f.write(magic.encode())
+        f.write(magic)
         f.write(struct.pack(header_fmt, *header))
         for bucket in table:
             f.write(struct.pack(bucket_fmt, *bucket))
diff --git a/aarch64/bin/intercept-build b/aarch64/bin/intercept-build
new file mode 100755
index 0000000..9ecde39
--- /dev/null
+++ b/aarch64/bin/intercept-build
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+import multiprocessing
+import sys
+import os.path
+this_dir = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
+
+from libscanbuild.intercept import intercept_build
+
+if __name__ == '__main__':
+    multiprocessing.freeze_support()
+    sys.exit(intercept_build())
diff --git a/aarch64/bin/ld64.lld.darwinnew b/aarch64/bin/ld64.lld.darwinnew
new file mode 120000
index 0000000..02416ac
--- /dev/null
+++ b/aarch64/bin/ld64.lld.darwinnew
@@ -0,0 +1 @@
+lld
\ No newline at end of file
diff --git a/aarch64/bin/ld64.lld.darwinold b/aarch64/bin/ld64.lld.darwinold
new file mode 120000
index 0000000..02416ac
--- /dev/null
+++ b/aarch64/bin/ld64.lld.darwinold
@@ -0,0 +1 @@
+lld
\ No newline at end of file
diff --git a/aarch64/bin/llc b/aarch64/bin/llc
index 6dce27b..abbf13e 100755
--- a/aarch64/bin/llc
+++ b/aarch64/bin/llc
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llc.elf b/aarch64/bin/llc.elf
index 8517d01..0704899 100755
--- a/aarch64/bin/llc.elf
+++ b/aarch64/bin/llc.elf
Binary files differ
diff --git a/aarch64/bin/lld b/aarch64/bin/lld
index 0c4a6ab..7d9f14b 100755
--- a/aarch64/bin/lld
+++ b/aarch64/bin/lld
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/lld" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/lld" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lld.elf b/aarch64/bin/lld.elf
index 4f24da7..3e12ab1 100755
--- a/aarch64/bin/lld.elf
+++ b/aarch64/bin/lld.elf
Binary files differ
diff --git a/aarch64/bin/lldb b/aarch64/bin/lldb
new file mode 100755
index 0000000..8fe7a23
--- /dev/null
+++ b/aarch64/bin/lldb
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/lldb" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lldb-argdumper b/aarch64/bin/lldb-argdumper
new file mode 100755
index 0000000..396d49c
--- /dev/null
+++ b/aarch64/bin/lldb-argdumper
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/lldb-argdumper" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lldb-argdumper.elf b/aarch64/bin/lldb-argdumper.elf
new file mode 100755
index 0000000..aba4dd8
--- /dev/null
+++ b/aarch64/bin/lldb-argdumper.elf
Binary files differ
diff --git a/aarch64/bin/lldb-instr b/aarch64/bin/lldb-instr
new file mode 100755
index 0000000..c6cb78b
--- /dev/null
+++ b/aarch64/bin/lldb-instr
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/lldb-instr" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lldb-instr.elf b/aarch64/bin/lldb-instr.elf
new file mode 100755
index 0000000..26682bb
--- /dev/null
+++ b/aarch64/bin/lldb-instr.elf
Binary files differ
diff --git a/aarch64/bin/lldb-server b/aarch64/bin/lldb-server
new file mode 100755
index 0000000..1dad366
--- /dev/null
+++ b/aarch64/bin/lldb-server
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/lldb-server" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lldb-server.elf b/aarch64/bin/lldb-server.elf
new file mode 100755
index 0000000..e02790d
--- /dev/null
+++ b/aarch64/bin/lldb-server.elf
Binary files differ
diff --git a/aarch64/bin/lldb-vscode b/aarch64/bin/lldb-vscode
new file mode 100755
index 0000000..7f3118e
--- /dev/null
+++ b/aarch64/bin/lldb-vscode
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/lldb-vscode" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lldb-vscode.elf b/aarch64/bin/lldb-vscode.elf
new file mode 100755
index 0000000..a34d905
--- /dev/null
+++ b/aarch64/bin/lldb-vscode.elf
Binary files differ
diff --git a/aarch64/bin/lldb.elf b/aarch64/bin/lldb.elf
new file mode 100755
index 0000000..7b69520
--- /dev/null
+++ b/aarch64/bin/lldb.elf
Binary files differ
diff --git a/aarch64/bin/lli b/aarch64/bin/lli
index fec696f..3c9d160 100755
--- a/aarch64/bin/lli
+++ b/aarch64/bin/lli
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/lli" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/lli" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lli-child-target b/aarch64/bin/lli-child-target
index 2b54b19..86fcd7a 100755
--- a/aarch64/bin/lli-child-target
+++ b/aarch64/bin/lli-child-target
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/lli-child-target" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/lli-child-target" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/lli-child-target.elf b/aarch64/bin/lli-child-target.elf
index c75d93c..7c8190d 100755
--- a/aarch64/bin/lli-child-target.elf
+++ b/aarch64/bin/lli-child-target.elf
Binary files differ
diff --git a/aarch64/bin/lli.elf b/aarch64/bin/lli.elf
index 90063ad..94d0c80 100755
--- a/aarch64/bin/lli.elf
+++ b/aarch64/bin/lli.elf
Binary files differ
diff --git a/aarch64/bin/llvm-PerfectShuffle b/aarch64/bin/llvm-PerfectShuffle
index b5da558..b6429e3 100755
--- a/aarch64/bin/llvm-PerfectShuffle
+++ b/aarch64/bin/llvm-PerfectShuffle
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-PerfectShuffle" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-PerfectShuffle" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-PerfectShuffle.elf b/aarch64/bin/llvm-PerfectShuffle.elf
index 8b3f05e..79e64c8 100755
--- a/aarch64/bin/llvm-PerfectShuffle.elf
+++ b/aarch64/bin/llvm-PerfectShuffle.elf
Binary files differ
diff --git a/aarch64/bin/llvm-ar b/aarch64/bin/llvm-ar
index 75cdca9..093f33c 100755
--- a/aarch64/bin/llvm-ar
+++ b/aarch64/bin/llvm-ar
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-ar" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-ar" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-ar.elf b/aarch64/bin/llvm-ar.elf
index 36210d8..93dde07 100755
--- a/aarch64/bin/llvm-ar.elf
+++ b/aarch64/bin/llvm-ar.elf
Binary files differ
diff --git a/aarch64/bin/llvm-as b/aarch64/bin/llvm-as
index b31c269..0629fda 100755
--- a/aarch64/bin/llvm-as
+++ b/aarch64/bin/llvm-as
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-as" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-as" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-as.elf b/aarch64/bin/llvm-as.elf
index afea3bf..6395787 100755
--- a/aarch64/bin/llvm-as.elf
+++ b/aarch64/bin/llvm-as.elf
Binary files differ
diff --git a/aarch64/bin/llvm-bcanalyzer b/aarch64/bin/llvm-bcanalyzer
index 4ddbebf..3d10099 100755
--- a/aarch64/bin/llvm-bcanalyzer
+++ b/aarch64/bin/llvm-bcanalyzer
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-bcanalyzer" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-bcanalyzer" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-bcanalyzer.elf b/aarch64/bin/llvm-bcanalyzer.elf
index ff23986..c710ebc 100755
--- a/aarch64/bin/llvm-bcanalyzer.elf
+++ b/aarch64/bin/llvm-bcanalyzer.elf
Binary files differ
diff --git a/aarch64/bin/llvm-c-test b/aarch64/bin/llvm-c-test
index 7927297..c4f4a32 100755
--- a/aarch64/bin/llvm-c-test
+++ b/aarch64/bin/llvm-c-test
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-c-test" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-c-test" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-c-test.elf b/aarch64/bin/llvm-c-test.elf
index 527ef7c..af1b1f6 100755
--- a/aarch64/bin/llvm-c-test.elf
+++ b/aarch64/bin/llvm-c-test.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cat b/aarch64/bin/llvm-cat
index 56ee863..d8243cb 100755
--- a/aarch64/bin/llvm-cat
+++ b/aarch64/bin/llvm-cat
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cat" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cat" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cat.elf b/aarch64/bin/llvm-cat.elf
index 19de1e0..78fb4fd 100755
--- a/aarch64/bin/llvm-cat.elf
+++ b/aarch64/bin/llvm-cat.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cfi-verify b/aarch64/bin/llvm-cfi-verify
index d81f16a..3663f91 100755
--- a/aarch64/bin/llvm-cfi-verify
+++ b/aarch64/bin/llvm-cfi-verify
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cfi-verify" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cfi-verify" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cfi-verify.elf b/aarch64/bin/llvm-cfi-verify.elf
index 63350a8..135e5fe 100755
--- a/aarch64/bin/llvm-cfi-verify.elf
+++ b/aarch64/bin/llvm-cfi-verify.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cov b/aarch64/bin/llvm-cov
index 9f85452..0143403 100755
--- a/aarch64/bin/llvm-cov
+++ b/aarch64/bin/llvm-cov
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cov" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cov" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cov.elf b/aarch64/bin/llvm-cov.elf
index 6588222..fa74ab1 100755
--- a/aarch64/bin/llvm-cov.elf
+++ b/aarch64/bin/llvm-cov.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cvtres b/aarch64/bin/llvm-cvtres
index f428f87..20f7884 100755
--- a/aarch64/bin/llvm-cvtres
+++ b/aarch64/bin/llvm-cvtres
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cvtres" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cvtres" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cvtres.elf b/aarch64/bin/llvm-cvtres.elf
index fa386b8..d82e3f9 100755
--- a/aarch64/bin/llvm-cvtres.elf
+++ b/aarch64/bin/llvm-cvtres.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cxxdump b/aarch64/bin/llvm-cxxdump
index 19b4ed7..b63f036 100755
--- a/aarch64/bin/llvm-cxxdump
+++ b/aarch64/bin/llvm-cxxdump
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cxxdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cxxdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cxxdump.elf b/aarch64/bin/llvm-cxxdump.elf
index b978a4e..edf6d94 100755
--- a/aarch64/bin/llvm-cxxdump.elf
+++ b/aarch64/bin/llvm-cxxdump.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cxxfilt b/aarch64/bin/llvm-cxxfilt
index 4e61a15..ae2edc6 100755
--- a/aarch64/bin/llvm-cxxfilt
+++ b/aarch64/bin/llvm-cxxfilt
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cxxfilt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cxxfilt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cxxfilt.elf b/aarch64/bin/llvm-cxxfilt.elf
index a169b94..3671971 100755
--- a/aarch64/bin/llvm-cxxfilt.elf
+++ b/aarch64/bin/llvm-cxxfilt.elf
Binary files differ
diff --git a/aarch64/bin/llvm-cxxmap b/aarch64/bin/llvm-cxxmap
index d462e14..ec8b71f 100755
--- a/aarch64/bin/llvm-cxxmap
+++ b/aarch64/bin/llvm-cxxmap
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-cxxmap" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-cxxmap" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-cxxmap.elf b/aarch64/bin/llvm-cxxmap.elf
index a02ca55..40b7a86 100755
--- a/aarch64/bin/llvm-cxxmap.elf
+++ b/aarch64/bin/llvm-cxxmap.elf
Binary files differ
diff --git a/aarch64/bin/llvm-diff b/aarch64/bin/llvm-diff
index 0d8d9fd..f2bffb7 100755
--- a/aarch64/bin/llvm-diff
+++ b/aarch64/bin/llvm-diff
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-diff" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-diff" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-diff.elf b/aarch64/bin/llvm-diff.elf
index 1cd82ad..f4c980f 100755
--- a/aarch64/bin/llvm-diff.elf
+++ b/aarch64/bin/llvm-diff.elf
Binary files differ
diff --git a/aarch64/bin/llvm-dis b/aarch64/bin/llvm-dis
index 9cc35ce..d77a6c7 100755
--- a/aarch64/bin/llvm-dis
+++ b/aarch64/bin/llvm-dis
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-dis" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-dis" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-dis.elf b/aarch64/bin/llvm-dis.elf
index 14e5f77..d5a3dbb 100755
--- a/aarch64/bin/llvm-dis.elf
+++ b/aarch64/bin/llvm-dis.elf
Binary files differ
diff --git a/aarch64/bin/llvm-dwarfdump b/aarch64/bin/llvm-dwarfdump
index 6c78ba1..f996d44 100755
--- a/aarch64/bin/llvm-dwarfdump
+++ b/aarch64/bin/llvm-dwarfdump
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-dwarfdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-dwarfdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-dwarfdump.elf b/aarch64/bin/llvm-dwarfdump.elf
index 3abe6e6..19290da 100755
--- a/aarch64/bin/llvm-dwarfdump.elf
+++ b/aarch64/bin/llvm-dwarfdump.elf
Binary files differ
diff --git a/aarch64/bin/llvm-dwp b/aarch64/bin/llvm-dwp
index 3a0a3d8..81a4dc4 100755
--- a/aarch64/bin/llvm-dwp
+++ b/aarch64/bin/llvm-dwp
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-dwp" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-dwp" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-dwp.elf b/aarch64/bin/llvm-dwp.elf
index c86722a..60f3ca0 100755
--- a/aarch64/bin/llvm-dwp.elf
+++ b/aarch64/bin/llvm-dwp.elf
Binary files differ
diff --git a/aarch64/bin/llvm-elfabi b/aarch64/bin/llvm-elfabi
deleted file mode 100755
index 2ae9028..0000000
--- a/aarch64/bin/llvm-elfabi
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-if base=$(readlink "$0" 2>/dev/null); then
-  case $base in
-  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
-  *)  base=$(dirname "$0")/"${base}";;
-  esac
-else
-  case $0 in
-  /*) base=$0;;
-  *)  base=${PWD:-`pwd`}/$0;;
-  esac
-fi
-basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-elfabi" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-elfabi.elf b/aarch64/bin/llvm-elfabi.elf
deleted file mode 100755
index 946dce7..0000000
--- a/aarch64/bin/llvm-elfabi.elf
+++ /dev/null
Binary files differ
diff --git a/aarch64/bin/llvm-exegesis b/aarch64/bin/llvm-exegesis
index fcf157e..48f0773 100755
--- a/aarch64/bin/llvm-exegesis
+++ b/aarch64/bin/llvm-exegesis
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-exegesis" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-exegesis" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-exegesis.elf b/aarch64/bin/llvm-exegesis.elf
index 992dea6..d7916f3 100755
--- a/aarch64/bin/llvm-exegesis.elf
+++ b/aarch64/bin/llvm-exegesis.elf
Binary files differ
diff --git a/aarch64/bin/llvm-extract b/aarch64/bin/llvm-extract
index b36dca4..fc8cf6c 100755
--- a/aarch64/bin/llvm-extract
+++ b/aarch64/bin/llvm-extract
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-extract" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-extract" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-extract.elf b/aarch64/bin/llvm-extract.elf
index 89197f0..fe8c3d1 100755
--- a/aarch64/bin/llvm-extract.elf
+++ b/aarch64/bin/llvm-extract.elf
Binary files differ
diff --git a/aarch64/bin/llvm-gsymutil b/aarch64/bin/llvm-gsymutil
index a987c2f..aa8d08b 100755
--- a/aarch64/bin/llvm-gsymutil
+++ b/aarch64/bin/llvm-gsymutil
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-gsymutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-gsymutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-gsymutil.elf b/aarch64/bin/llvm-gsymutil.elf
index baa2b7d..a11f029 100755
--- a/aarch64/bin/llvm-gsymutil.elf
+++ b/aarch64/bin/llvm-gsymutil.elf
Binary files differ
diff --git a/aarch64/bin/llvm-ifs b/aarch64/bin/llvm-ifs
index 7f5ed08..84e6426 100755
--- a/aarch64/bin/llvm-ifs
+++ b/aarch64/bin/llvm-ifs
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-ifs" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-ifs" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-ifs.elf b/aarch64/bin/llvm-ifs.elf
index b494abc..a350f0b 100755
--- a/aarch64/bin/llvm-ifs.elf
+++ b/aarch64/bin/llvm-ifs.elf
Binary files differ
diff --git a/aarch64/bin/llvm-jitlink b/aarch64/bin/llvm-jitlink
index ce108f1..b94e72d 100755
--- a/aarch64/bin/llvm-jitlink
+++ b/aarch64/bin/llvm-jitlink
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-jitlink" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-jitlink" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-jitlink-executor b/aarch64/bin/llvm-jitlink-executor
new file mode 100755
index 0000000..9838dfe
--- /dev/null
+++ b/aarch64/bin/llvm-jitlink-executor
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/llvm-jitlink-executor" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-jitlink-executor.elf b/aarch64/bin/llvm-jitlink-executor.elf
new file mode 100755
index 0000000..17b834f
--- /dev/null
+++ b/aarch64/bin/llvm-jitlink-executor.elf
Binary files differ
diff --git a/aarch64/bin/llvm-jitlink.elf b/aarch64/bin/llvm-jitlink.elf
index 39430a2..a6b0bb3 100755
--- a/aarch64/bin/llvm-jitlink.elf
+++ b/aarch64/bin/llvm-jitlink.elf
Binary files differ
diff --git a/aarch64/bin/llvm-libtool-darwin b/aarch64/bin/llvm-libtool-darwin
index 0bf1c38..0700cba 100755
--- a/aarch64/bin/llvm-libtool-darwin
+++ b/aarch64/bin/llvm-libtool-darwin
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-libtool-darwin" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-libtool-darwin" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-libtool-darwin.elf b/aarch64/bin/llvm-libtool-darwin.elf
index 6863806..8fd95ba 100755
--- a/aarch64/bin/llvm-libtool-darwin.elf
+++ b/aarch64/bin/llvm-libtool-darwin.elf
Binary files differ
diff --git a/aarch64/bin/llvm-link b/aarch64/bin/llvm-link
index 14e62e3..d43355b 100755
--- a/aarch64/bin/llvm-link
+++ b/aarch64/bin/llvm-link
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-link" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-link" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-link.elf b/aarch64/bin/llvm-link.elf
index 33adfb9..333dd66 100755
--- a/aarch64/bin/llvm-link.elf
+++ b/aarch64/bin/llvm-link.elf
Binary files differ
diff --git a/aarch64/bin/llvm-lipo b/aarch64/bin/llvm-lipo
index 97a4454..b9d5c86 100755
--- a/aarch64/bin/llvm-lipo
+++ b/aarch64/bin/llvm-lipo
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-lipo" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-lipo" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-lipo.elf b/aarch64/bin/llvm-lipo.elf
index 77c852d..01122da 100755
--- a/aarch64/bin/llvm-lipo.elf
+++ b/aarch64/bin/llvm-lipo.elf
Binary files differ
diff --git a/aarch64/bin/llvm-lto b/aarch64/bin/llvm-lto
index 5c0b6eb..bb70806 100755
--- a/aarch64/bin/llvm-lto
+++ b/aarch64/bin/llvm-lto
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-lto" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-lto" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-lto.elf b/aarch64/bin/llvm-lto.elf
index 3818536..7707618 100755
--- a/aarch64/bin/llvm-lto.elf
+++ b/aarch64/bin/llvm-lto.elf
Binary files differ
diff --git a/aarch64/bin/llvm-lto2 b/aarch64/bin/llvm-lto2
index 806eed6..b7a1634 100755
--- a/aarch64/bin/llvm-lto2
+++ b/aarch64/bin/llvm-lto2
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-lto2" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-lto2" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-lto2.elf b/aarch64/bin/llvm-lto2.elf
index 5cec785..7b8d6d6 100755
--- a/aarch64/bin/llvm-lto2.elf
+++ b/aarch64/bin/llvm-lto2.elf
Binary files differ
diff --git a/aarch64/bin/llvm-mc b/aarch64/bin/llvm-mc
index c67296b..61a5f19 100755
--- a/aarch64/bin/llvm-mc
+++ b/aarch64/bin/llvm-mc
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-mc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-mc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-mc.elf b/aarch64/bin/llvm-mc.elf
index a1c5053..d44b0ac 100755
--- a/aarch64/bin/llvm-mc.elf
+++ b/aarch64/bin/llvm-mc.elf
Binary files differ
diff --git a/aarch64/bin/llvm-mca b/aarch64/bin/llvm-mca
index d9ccab9..e4b60bc 100755
--- a/aarch64/bin/llvm-mca
+++ b/aarch64/bin/llvm-mca
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-mca" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-mca" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-mca.elf b/aarch64/bin/llvm-mca.elf
index 9014355..0d3fe6c 100755
--- a/aarch64/bin/llvm-mca.elf
+++ b/aarch64/bin/llvm-mca.elf
Binary files differ
diff --git a/aarch64/bin/llvm-ml b/aarch64/bin/llvm-ml
index d1dc41b..a22bfd5 100755
--- a/aarch64/bin/llvm-ml
+++ b/aarch64/bin/llvm-ml
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-ml" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-ml" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-ml.elf b/aarch64/bin/llvm-ml.elf
index 9af4b25..91c553f 100755
--- a/aarch64/bin/llvm-ml.elf
+++ b/aarch64/bin/llvm-ml.elf
Binary files differ
diff --git a/aarch64/bin/llvm-modextract b/aarch64/bin/llvm-modextract
index 87e4a0f..a66716a 100755
--- a/aarch64/bin/llvm-modextract
+++ b/aarch64/bin/llvm-modextract
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-modextract" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-modextract" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-modextract.elf b/aarch64/bin/llvm-modextract.elf
index f294c3f..0ff1efe 100755
--- a/aarch64/bin/llvm-modextract.elf
+++ b/aarch64/bin/llvm-modextract.elf
Binary files differ
diff --git a/aarch64/bin/llvm-mt b/aarch64/bin/llvm-mt
index b404d1e..4618038 100755
--- a/aarch64/bin/llvm-mt
+++ b/aarch64/bin/llvm-mt
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-mt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-mt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-mt.elf b/aarch64/bin/llvm-mt.elf
index 9b54c63..7a0aaa6 100755
--- a/aarch64/bin/llvm-mt.elf
+++ b/aarch64/bin/llvm-mt.elf
Binary files differ
diff --git a/aarch64/bin/llvm-nm b/aarch64/bin/llvm-nm
index d084032..6bd36c6 100755
--- a/aarch64/bin/llvm-nm
+++ b/aarch64/bin/llvm-nm
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-nm" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-nm" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-nm.elf b/aarch64/bin/llvm-nm.elf
index 3f19982..c869342 100755
--- a/aarch64/bin/llvm-nm.elf
+++ b/aarch64/bin/llvm-nm.elf
Binary files differ
diff --git a/aarch64/bin/llvm-objcopy b/aarch64/bin/llvm-objcopy
index ef46ddd..7297bf2 100755
--- a/aarch64/bin/llvm-objcopy
+++ b/aarch64/bin/llvm-objcopy
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-objcopy" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-objcopy" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-objcopy.elf b/aarch64/bin/llvm-objcopy.elf
index 05133aa..788833b 100755
--- a/aarch64/bin/llvm-objcopy.elf
+++ b/aarch64/bin/llvm-objcopy.elf
Binary files differ
diff --git a/aarch64/bin/llvm-objdump b/aarch64/bin/llvm-objdump
index 3123e01..b1029cd 100755
--- a/aarch64/bin/llvm-objdump
+++ b/aarch64/bin/llvm-objdump
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-objdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-objdump" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-objdump.elf b/aarch64/bin/llvm-objdump.elf
index cc581cd..41e9156 100755
--- a/aarch64/bin/llvm-objdump.elf
+++ b/aarch64/bin/llvm-objdump.elf
Binary files differ
diff --git a/aarch64/bin/llvm-opt-report b/aarch64/bin/llvm-opt-report
index 6f77aa0..d85c99c 100755
--- a/aarch64/bin/llvm-opt-report
+++ b/aarch64/bin/llvm-opt-report
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-opt-report" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-opt-report" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-opt-report.elf b/aarch64/bin/llvm-opt-report.elf
index fb7620b..e22230e 100755
--- a/aarch64/bin/llvm-opt-report.elf
+++ b/aarch64/bin/llvm-opt-report.elf
Binary files differ
diff --git a/aarch64/bin/llvm-otool b/aarch64/bin/llvm-otool
new file mode 120000
index 0000000..8e4dc01
--- /dev/null
+++ b/aarch64/bin/llvm-otool
@@ -0,0 +1 @@
+llvm-objdump
\ No newline at end of file
diff --git a/aarch64/bin/llvm-pdbutil b/aarch64/bin/llvm-pdbutil
index 518e616..6150e3a 100755
--- a/aarch64/bin/llvm-pdbutil
+++ b/aarch64/bin/llvm-pdbutil
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-pdbutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-pdbutil" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-pdbutil.elf b/aarch64/bin/llvm-pdbutil.elf
index 8a1facd..8e55f17 100755
--- a/aarch64/bin/llvm-pdbutil.elf
+++ b/aarch64/bin/llvm-pdbutil.elf
Binary files differ
diff --git a/aarch64/bin/llvm-profdata b/aarch64/bin/llvm-profdata
index 40835f1..9a80be7 100755
--- a/aarch64/bin/llvm-profdata
+++ b/aarch64/bin/llvm-profdata
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-profdata" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-profdata" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-profdata.elf b/aarch64/bin/llvm-profdata.elf
index 9e19196..f3e440b 100755
--- a/aarch64/bin/llvm-profdata.elf
+++ b/aarch64/bin/llvm-profdata.elf
Binary files differ
diff --git a/aarch64/bin/llvm-profgen b/aarch64/bin/llvm-profgen
new file mode 100755
index 0000000..6f65a4b
--- /dev/null
+++ b/aarch64/bin/llvm-profgen
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/llvm-profgen" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-profgen.elf b/aarch64/bin/llvm-profgen.elf
new file mode 100755
index 0000000..c1b2d2f
--- /dev/null
+++ b/aarch64/bin/llvm-profgen.elf
Binary files differ
diff --git a/aarch64/bin/llvm-rc b/aarch64/bin/llvm-rc
index 08d23a9..a0cc465 100755
--- a/aarch64/bin/llvm-rc
+++ b/aarch64/bin/llvm-rc
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-rc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-rc" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-rc.elf b/aarch64/bin/llvm-rc.elf
index 460d0bf..a08adef 100755
--- a/aarch64/bin/llvm-rc.elf
+++ b/aarch64/bin/llvm-rc.elf
Binary files differ
diff --git a/aarch64/bin/llvm-readobj b/aarch64/bin/llvm-readobj
index 2257e61..edcb8e1 100755
--- a/aarch64/bin/llvm-readobj
+++ b/aarch64/bin/llvm-readobj
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-readobj" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-readobj" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-readobj.elf b/aarch64/bin/llvm-readobj.elf
index 800f2b1..35e84ef 100755
--- a/aarch64/bin/llvm-readobj.elf
+++ b/aarch64/bin/llvm-readobj.elf
Binary files differ
diff --git a/aarch64/bin/llvm-reduce b/aarch64/bin/llvm-reduce
index b0f4b1e..ff91325 100755
--- a/aarch64/bin/llvm-reduce
+++ b/aarch64/bin/llvm-reduce
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-reduce" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-reduce" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-reduce.elf b/aarch64/bin/llvm-reduce.elf
index 313d326..6db06ee 100755
--- a/aarch64/bin/llvm-reduce.elf
+++ b/aarch64/bin/llvm-reduce.elf
Binary files differ
diff --git a/aarch64/bin/llvm-rtdyld b/aarch64/bin/llvm-rtdyld
index fdcd578..2b58302 100755
--- a/aarch64/bin/llvm-rtdyld
+++ b/aarch64/bin/llvm-rtdyld
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-rtdyld" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-rtdyld" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-rtdyld.elf b/aarch64/bin/llvm-rtdyld.elf
index 7c188e8..f81cacc 100755
--- a/aarch64/bin/llvm-rtdyld.elf
+++ b/aarch64/bin/llvm-rtdyld.elf
Binary files differ
diff --git a/aarch64/bin/llvm-sim b/aarch64/bin/llvm-sim
new file mode 100755
index 0000000..0ae0a50
--- /dev/null
+++ b/aarch64/bin/llvm-sim
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/llvm-sim" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-sim.elf b/aarch64/bin/llvm-sim.elf
new file mode 100755
index 0000000..6ee757e
--- /dev/null
+++ b/aarch64/bin/llvm-sim.elf
Binary files differ
diff --git a/aarch64/bin/llvm-size b/aarch64/bin/llvm-size
index 769d525..dbd9e15 100755
--- a/aarch64/bin/llvm-size
+++ b/aarch64/bin/llvm-size
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-size" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-size" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-size.elf b/aarch64/bin/llvm-size.elf
index de75ac0..2279b02 100755
--- a/aarch64/bin/llvm-size.elf
+++ b/aarch64/bin/llvm-size.elf
Binary files differ
diff --git a/aarch64/bin/llvm-split b/aarch64/bin/llvm-split
index 5d0c7d7..022cd9a 100755
--- a/aarch64/bin/llvm-split
+++ b/aarch64/bin/llvm-split
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-split" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-split" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-split.elf b/aarch64/bin/llvm-split.elf
index c2f678c..a436c57 100755
--- a/aarch64/bin/llvm-split.elf
+++ b/aarch64/bin/llvm-split.elf
Binary files differ
diff --git a/aarch64/bin/llvm-stress b/aarch64/bin/llvm-stress
index e2a0412..d41af7f 100755
--- a/aarch64/bin/llvm-stress
+++ b/aarch64/bin/llvm-stress
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-stress" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-stress" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-stress.elf b/aarch64/bin/llvm-stress.elf
index 309a771..45d5701 100755
--- a/aarch64/bin/llvm-stress.elf
+++ b/aarch64/bin/llvm-stress.elf
Binary files differ
diff --git a/aarch64/bin/llvm-strings b/aarch64/bin/llvm-strings
index 37932bc..c40f59b 100755
--- a/aarch64/bin/llvm-strings
+++ b/aarch64/bin/llvm-strings
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-strings" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-strings" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-strings.elf b/aarch64/bin/llvm-strings.elf
index 96b1cdd..5543be4 100755
--- a/aarch64/bin/llvm-strings.elf
+++ b/aarch64/bin/llvm-strings.elf
Binary files differ
diff --git a/aarch64/bin/llvm-strip b/aarch64/bin/llvm-strip
index 73f150f..e4c8d12 100755
--- a/aarch64/bin/llvm-strip
+++ b/aarch64/bin/llvm-strip
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-strip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-strip" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-strip.elf b/aarch64/bin/llvm-strip.elf
index 05133aa..788833b 100755
--- a/aarch64/bin/llvm-strip.elf
+++ b/aarch64/bin/llvm-strip.elf
Binary files differ
diff --git a/aarch64/bin/llvm-symbolizer b/aarch64/bin/llvm-symbolizer
index 1c330db..06ee946 100755
--- a/aarch64/bin/llvm-symbolizer
+++ b/aarch64/bin/llvm-symbolizer
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-symbolizer" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-symbolizer" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-symbolizer.elf b/aarch64/bin/llvm-symbolizer.elf
index 5dd083e..6f2553b 100755
--- a/aarch64/bin/llvm-symbolizer.elf
+++ b/aarch64/bin/llvm-symbolizer.elf
Binary files differ
diff --git a/aarch64/bin/llvm-tapi-diff b/aarch64/bin/llvm-tapi-diff
new file mode 100755
index 0000000..676b6ce
--- /dev/null
+++ b/aarch64/bin/llvm-tapi-diff
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/llvm-tapi-diff" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-tapi-diff.elf b/aarch64/bin/llvm-tapi-diff.elf
new file mode 100755
index 0000000..feb77a1
--- /dev/null
+++ b/aarch64/bin/llvm-tapi-diff.elf
Binary files differ
diff --git a/aarch64/bin/llvm-tblgen b/aarch64/bin/llvm-tblgen
index 3b3133f..0fa5712 100755
--- a/aarch64/bin/llvm-tblgen
+++ b/aarch64/bin/llvm-tblgen
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-tblgen" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-tblgen" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-tblgen.elf b/aarch64/bin/llvm-tblgen.elf
index d0a07d0..96d8cd5 100755
--- a/aarch64/bin/llvm-tblgen.elf
+++ b/aarch64/bin/llvm-tblgen.elf
Binary files differ
diff --git a/aarch64/bin/llvm-tli-checker b/aarch64/bin/llvm-tli-checker
new file mode 100755
index 0000000..97f00a8
--- /dev/null
+++ b/aarch64/bin/llvm-tli-checker
@@ -0,0 +1,14 @@
+#!/bin/sh
+if base=$(readlink "$0" 2>/dev/null); then
+  case $base in
+  /*) base=$(readlink -f "$0" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
+  *)  base=$(dirname "$0")/"${base}";;
+  esac
+else
+  case $0 in
+  /*) base=$0;;
+  *)  base=${PWD:-`pwd`}/$0;;
+  esac
+fi
+basedir=${base%/*}
+LD_ARGV0_REL="../bin/llvm-tli-checker" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-tli-checker.elf b/aarch64/bin/llvm-tli-checker.elf
new file mode 100755
index 0000000..7040a31
--- /dev/null
+++ b/aarch64/bin/llvm-tli-checker.elf
Binary files differ
diff --git a/aarch64/bin/llvm-undname b/aarch64/bin/llvm-undname
index df6049b..aff7095 100755
--- a/aarch64/bin/llvm-undname
+++ b/aarch64/bin/llvm-undname
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-undname" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-undname" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-undname.elf b/aarch64/bin/llvm-undname.elf
index 7e729dc..05fd9fb 100755
--- a/aarch64/bin/llvm-undname.elf
+++ b/aarch64/bin/llvm-undname.elf
Binary files differ
diff --git a/aarch64/bin/llvm-windres b/aarch64/bin/llvm-windres
new file mode 120000
index 0000000..8a596fa
--- /dev/null
+++ b/aarch64/bin/llvm-windres
@@ -0,0 +1 @@
+llvm-rc
\ No newline at end of file
diff --git a/aarch64/bin/llvm-xray b/aarch64/bin/llvm-xray
index 76ecf0e..b87a78c 100755
--- a/aarch64/bin/llvm-xray
+++ b/aarch64/bin/llvm-xray
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/llvm-xray" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/llvm-xray" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/llvm-xray.elf b/aarch64/bin/llvm-xray.elf
index 4402d47..0c99ac1 100755
--- a/aarch64/bin/llvm-xray.elf
+++ b/aarch64/bin/llvm-xray.elf
Binary files differ
diff --git a/aarch64/bin/modularize b/aarch64/bin/modularize
index 2040310..bf80b18 100755
--- a/aarch64/bin/modularize
+++ b/aarch64/bin/modularize
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/modularize" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/modularize" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/modularize.elf b/aarch64/bin/modularize.elf
index 9706050..f9813a0 100755
--- a/aarch64/bin/modularize.elf
+++ b/aarch64/bin/modularize.elf
Binary files differ
diff --git a/aarch64/bin/not b/aarch64/bin/not
index 52369b3..cc87d60 100755
--- a/aarch64/bin/not
+++ b/aarch64/bin/not
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/not" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/not" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/not.elf b/aarch64/bin/not.elf
index 201e4f4..c43a344 100755
--- a/aarch64/bin/not.elf
+++ b/aarch64/bin/not.elf
Binary files differ
diff --git a/aarch64/bin/obj2yaml b/aarch64/bin/obj2yaml
index 35d71fb..3092247 100755
--- a/aarch64/bin/obj2yaml
+++ b/aarch64/bin/obj2yaml
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/obj2yaml" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/obj2yaml" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/obj2yaml.elf b/aarch64/bin/obj2yaml.elf
index 6d03d4a..cfd43f1 100755
--- a/aarch64/bin/obj2yaml.elf
+++ b/aarch64/bin/obj2yaml.elf
Binary files differ
diff --git a/aarch64/bin/opt b/aarch64/bin/opt
index bf7d6f1..20c1c3d 100755
--- a/aarch64/bin/opt
+++ b/aarch64/bin/opt
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/opt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/opt" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/opt.elf b/aarch64/bin/opt.elf
index 547fc61..5ca6e71 100755
--- a/aarch64/bin/opt.elf
+++ b/aarch64/bin/opt.elf
Binary files differ
diff --git a/aarch64/bin/pp-trace b/aarch64/bin/pp-trace
index 5d46f47..9daf0a0 100755
--- a/aarch64/bin/pp-trace
+++ b/aarch64/bin/pp-trace
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/pp-trace" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/pp-trace" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/pp-trace.elf b/aarch64/bin/pp-trace.elf
index f2098b5..ae4f2a8 100755
--- a/aarch64/bin/pp-trace.elf
+++ b/aarch64/bin/pp-trace.elf
Binary files differ
diff --git a/aarch64/bin/sancov b/aarch64/bin/sancov
index 895c53a..e9ac715 100755
--- a/aarch64/bin/sancov
+++ b/aarch64/bin/sancov
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/sancov" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/sancov" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/sancov.elf b/aarch64/bin/sancov.elf
index 3ec771e..5a1dab4 100755
--- a/aarch64/bin/sancov.elf
+++ b/aarch64/bin/sancov.elf
Binary files differ
diff --git a/aarch64/bin/sanstats b/aarch64/bin/sanstats
index 3ed5f19..bbce527 100755
--- a/aarch64/bin/sanstats
+++ b/aarch64/bin/sanstats
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/sanstats" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/sanstats" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/sanstats.elf b/aarch64/bin/sanstats.elf
index 4392b9f..24b307b 100755
--- a/aarch64/bin/sanstats.elf
+++ b/aarch64/bin/sanstats.elf
Binary files differ
diff --git a/aarch64/bin/scan-build b/aarch64/bin/scan-build
index aed8c41..71e7ced 100755
--- a/aarch64/bin/scan-build
+++ b/aarch64/bin/scan-build
@@ -14,7 +14,6 @@
 use strict;
 use warnings;
 use FindBin qw($RealBin);
-use Digest::MD5;
 use File::Basename;
 use File::Find;
 use File::Copy qw(copy);
@@ -269,27 +268,6 @@
 }
 
 ##----------------------------------------------------------------------------##
-# ComputeDigest - Compute a digest of the specified file.
-##----------------------------------------------------------------------------##
-
-sub ComputeDigest {
-  my $FName = shift;
-  DieDiag("Cannot read $FName to compute Digest.\n") if (! -r $FName);
-
-  # Use Digest::MD5.  We don't have to be cryptographically secure.  We're
-  # just looking for duplicate files that come from a non-malicious source.
-  # We use Digest::MD5 because it is a standard Perl module that should
-  # come bundled on most systems.
-  open(FILE, $FName) or DieDiag("Cannot open $FName when computing Digest.\n");
-  binmode FILE;
-  my $Result = Digest::MD5->new->addfile(*FILE)->hexdigest;
-  close(FILE);
-
-  # Return the digest.
-  return $Result;
-}
-
-##----------------------------------------------------------------------------##
 #  UpdatePrefix - Compute the common prefix of files.
 ##----------------------------------------------------------------------------##
 
@@ -374,8 +352,6 @@
 # Sometimes a source file is scanned more than once, and thus produces
 # multiple error reports.  We use a cache to solve this problem.
 
-my %AlreadyScanned;
-
 sub ScanFile {
 
   my $Index = shift;
@@ -383,19 +359,6 @@
   my $FName = shift;
   my $Stats = shift;
 
-  # Compute a digest for the report file.  Determine if we have already
-  # scanned a file that looks just like it.
-
-  my $digest = ComputeDigest("$Dir/$FName");
-
-  if (defined $AlreadyScanned{$digest}) {
-    # Redundant file.  Remove it.
-    unlink("$Dir/$FName");
-    return;
-  }
-
-  $AlreadyScanned{$digest} = 1;
-
   # At this point the report file is not world readable.  Make it happen.
   chmod(0644, "$Dir/$FName");
 
@@ -1925,7 +1888,7 @@
     $ClangCXX =~ s/.exe$/++.exe/;
   }
   else {
-    $ClangCXX =~ s/\-\d+\.\d+$//;
+    $ClangCXX =~ s/\-\d+(\.\d+)?$//;
     $ClangCXX .= "++";
   }
 }
diff --git a/aarch64/bin/scan-build-py b/aarch64/bin/scan-build-py
new file mode 100755
index 0000000..a341751
--- /dev/null
+++ b/aarch64/bin/scan-build-py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+import multiprocessing
+import sys
+import os.path
+this_dir = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(os.path.join(os.path.dirname(this_dir), 'lib'))
+
+from libscanbuild.analyze import scan_build
+
+if __name__ == '__main__':
+    multiprocessing.freeze_support()
+    sys.exit(scan_build())
diff --git a/aarch64/bin/split-file b/aarch64/bin/split-file
index 34ed71d..51fe9f0 100755
--- a/aarch64/bin/split-file
+++ b/aarch64/bin/split-file
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/split-file" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/split-file" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/split-file.elf b/aarch64/bin/split-file.elf
index e468a71..23ef930 100755
--- a/aarch64/bin/split-file.elf
+++ b/aarch64/bin/split-file.elf
Binary files differ
diff --git a/aarch64/bin/verify-uselistorder b/aarch64/bin/verify-uselistorder
index a587a2e..d3b19a8 100755
--- a/aarch64/bin/verify-uselistorder
+++ b/aarch64/bin/verify-uselistorder
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/verify-uselistorder" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/verify-uselistorder" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/verify-uselistorder.elf b/aarch64/bin/verify-uselistorder.elf
index a4188a7..8fc2a48 100755
--- a/aarch64/bin/verify-uselistorder.elf
+++ b/aarch64/bin/verify-uselistorder.elf
Binary files differ
diff --git a/aarch64/bin/x86_64-pc-linux-gnu-llvm-config b/aarch64/bin/x86_64-pc-linux-gnu-llvm-config
index dc99abf..f0fee6d 100755
--- a/aarch64/bin/x86_64-pc-linux-gnu-llvm-config
+++ b/aarch64/bin/x86_64-pc-linux-gnu-llvm-config
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/x86_64-pc-linux-gnu-llvm-config" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/x86_64-pc-linux-gnu-llvm-config" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/x86_64-pc-linux-gnu-llvm-config.elf b/aarch64/bin/x86_64-pc-linux-gnu-llvm-config.elf
index ff62958..cb89854 100755
--- a/aarch64/bin/x86_64-pc-linux-gnu-llvm-config.elf
+++ b/aarch64/bin/x86_64-pc-linux-gnu-llvm-config.elf
Binary files differ
diff --git a/aarch64/bin/yaml-bench b/aarch64/bin/yaml-bench
index 5cd2643..2770bc7 100755
--- a/aarch64/bin/yaml-bench
+++ b/aarch64/bin/yaml-bench
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/yaml-bench" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/yaml-bench" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/yaml-bench.elf b/aarch64/bin/yaml-bench.elf
index 8cfb860..a86dde0 100755
--- a/aarch64/bin/yaml-bench.elf
+++ b/aarch64/bin/yaml-bench.elf
Binary files differ
diff --git a/aarch64/bin/yaml2obj b/aarch64/bin/yaml2obj
index e60e0c0..3cca463 100755
--- a/aarch64/bin/yaml2obj
+++ b/aarch64/bin/yaml2obj
@@ -11,6 +11,4 @@
   esac
 fi
 basedir=${base%/*}
-# TODO(crbug/1003841): Remove LD_ARGV0 once
-# ld.so supports forwarding the binary name.
-LD_ARGV0="$0" LD_ARGV0_REL="../bin/yaml2obj" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
+LD_ARGV0_REL="../bin/yaml2obj" exec   "${basedir}/../lib/ld-linux-x86-64.so.2"   --argv0 "$0"   --library-path "${basedir}/../usr/lib64:${basedir}/../lib"   --inhibit-rpath ''   "${base}.elf"   "$@"
diff --git a/aarch64/bin/yaml2obj.elf b/aarch64/bin/yaml2obj.elf
index 265eaa8..3a37a57 100755
--- a/aarch64/bin/yaml2obj.elf
+++ b/aarch64/bin/yaml2obj.elf
Binary files differ
diff --git a/aarch64/lib/ld-linux-x86-64.so.2 b/aarch64/lib/ld-linux-x86-64.so.2
index 1936b1b..a7e7ab8 100755
--- a/aarch64/lib/ld-linux-x86-64.so.2
+++ b/aarch64/lib/ld-linux-x86-64.so.2
Binary files differ
diff --git a/aarch64/lib/libasm.so.1 b/aarch64/lib/libasm.so.1
index 91a20ec..078df71 100755
--- a/aarch64/lib/libasm.so.1
+++ b/aarch64/lib/libasm.so.1
Binary files differ
diff --git a/aarch64/lib/libbfd-2.27.0.20170315.so b/aarch64/lib/libbfd-2.27.0.20170315.so
deleted file mode 100755
index 0be059d..0000000
--- a/aarch64/lib/libbfd-2.27.0.20170315.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libbfd-2.36.1.so b/aarch64/lib/libbfd-2.36.1.so
new file mode 100755
index 0000000..eb75688
--- /dev/null
+++ b/aarch64/lib/libbfd-2.36.1.so
Binary files differ
diff --git a/aarch64/lib/libbz2.so.1 b/aarch64/lib/libbz2.so.1
index 9bf7682..626f891 100755
--- a/aarch64/lib/libbz2.so.1
+++ b/aarch64/lib/libbz2.so.1
Binary files differ
diff --git a/aarch64/lib/libc++.so.1 b/aarch64/lib/libc++.so.1
index fc10349..f37c614 100755
--- a/aarch64/lib/libc++.so.1
+++ b/aarch64/lib/libc++.so.1
Binary files differ
diff --git a/aarch64/lib/libc++abi.so.1 b/aarch64/lib/libc++abi.so.1
index cb8e7e9..befe6cc 100755
--- a/aarch64/lib/libc++abi.so.1
+++ b/aarch64/lib/libc++abi.so.1
Binary files differ
diff --git a/aarch64/lib/libc.so.6 b/aarch64/lib/libc.so.6
index f1f8fbd..3185b63 100755
--- a/aarch64/lib/libc.so.6
+++ b/aarch64/lib/libc.so.6
Binary files differ
diff --git a/aarch64/lib/libclang.so.12git b/aarch64/lib/libclang.so.12git
deleted file mode 100755
index 9859a76..0000000
--- a/aarch64/lib/libclang.so.12git
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libclang.so.13 b/aarch64/lib/libclang.so.13
new file mode 100755
index 0000000..4608f0d
--- /dev/null
+++ b/aarch64/lib/libclang.so.13
Binary files differ
diff --git a/aarch64/lib/libcrypto.so.1.1 b/aarch64/lib/libcrypto.so.1.1
index b329cc6..76b2a95 100755
--- a/aarch64/lib/libcrypto.so.1.1
+++ b/aarch64/lib/libcrypto.so.1.1
Binary files differ
diff --git a/aarch64/lib/libctf-nobfd.so.0 b/aarch64/lib/libctf-nobfd.so.0
new file mode 100755
index 0000000..2df7543
--- /dev/null
+++ b/aarch64/lib/libctf-nobfd.so.0
Binary files differ
diff --git a/aarch64/lib/libctf.so.0 b/aarch64/lib/libctf.so.0
new file mode 100755
index 0000000..c140710
--- /dev/null
+++ b/aarch64/lib/libctf.so.0
Binary files differ
diff --git a/aarch64/lib/libcurl.so.4 b/aarch64/lib/libcurl.so.4
index 92e6550..d25ec1e 100755
--- a/aarch64/lib/libcurl.so.4
+++ b/aarch64/lib/libcurl.so.4
Binary files differ
diff --git a/aarch64/lib/libdl.so.2 b/aarch64/lib/libdl.so.2
index 07fff0e..762428b 100755
--- a/aarch64/lib/libdl.so.2
+++ b/aarch64/lib/libdl.so.2
Binary files differ
diff --git a/aarch64/lib/libdw.so.1 b/aarch64/lib/libdw.so.1
index 221c9a8..d2b3321 100755
--- a/aarch64/lib/libdw.so.1
+++ b/aarch64/lib/libdw.so.1
Binary files differ
diff --git a/aarch64/lib/libelf.so.1 b/aarch64/lib/libelf.so.1
index 2491434..d6c0c0a 100755
--- a/aarch64/lib/libelf.so.1
+++ b/aarch64/lib/libelf.so.1
Binary files differ
diff --git a/aarch64/lib/libexpat.so.1 b/aarch64/lib/libexpat.so.1
index 70ae4b9..64f3724 100755
--- a/aarch64/lib/libexpat.so.1
+++ b/aarch64/lib/libexpat.so.1
Binary files differ
diff --git a/aarch64/lib/libffi.so.6 b/aarch64/lib/libffi.so.6
index 1527521..0af0184 100755
--- a/aarch64/lib/libffi.so.6
+++ b/aarch64/lib/libffi.so.6
Binary files differ
diff --git a/aarch64/lib/libgcc_s.so.1 b/aarch64/lib/libgcc_s.so.1
old mode 100644
new mode 100755
index 2afa482..f1e3e44
--- a/aarch64/lib/libgcc_s.so.1
+++ b/aarch64/lib/libgcc_s.so.1
Binary files differ
diff --git a/aarch64/lib/libgmp.so.10 b/aarch64/lib/libgmp.so.10
index eb96bbc..e16d06a 100755
--- a/aarch64/lib/libgmp.so.10
+++ b/aarch64/lib/libgmp.so.10
Binary files differ
diff --git a/aarch64/lib/liblldb.so.14git b/aarch64/lib/liblldb.so.14git
new file mode 100755
index 0000000..442d366
--- /dev/null
+++ b/aarch64/lib/liblldb.so.14git
Binary files differ
diff --git a/aarch64/lib/liblzma.so.5 b/aarch64/lib/liblzma.so.5
new file mode 100755
index 0000000..85e81b9
--- /dev/null
+++ b/aarch64/lib/liblzma.so.5
Binary files differ
diff --git a/aarch64/lib/libm.so.6 b/aarch64/lib/libm.so.6
index 4de47db..d78d6e5 100755
--- a/aarch64/lib/libm.so.6
+++ b/aarch64/lib/libm.so.6
Binary files differ
diff --git a/aarch64/lib/libmpc.so.3 b/aarch64/lib/libmpc.so.3
index 58667ec..726cfcd 100755
--- a/aarch64/lib/libmpc.so.3
+++ b/aarch64/lib/libmpc.so.3
Binary files differ
diff --git a/aarch64/lib/libmpfr.so.4 b/aarch64/lib/libmpfr.so.4
index 1c90931..5b852c6 100755
--- a/aarch64/lib/libmpfr.so.4
+++ b/aarch64/lib/libmpfr.so.4
Binary files differ
diff --git a/aarch64/lib/libncurses.so.5 b/aarch64/lib/libncurses.so.5
new file mode 100755
index 0000000..220ccd9
--- /dev/null
+++ b/aarch64/lib/libncurses.so.5
Binary files differ
diff --git a/aarch64/lib/libncursesw.so.5 b/aarch64/lib/libncursesw.so.5
index 251b493..3971e55 100755
--- a/aarch64/lib/libncursesw.so.5
+++ b/aarch64/lib/libncursesw.so.5
Binary files differ
diff --git a/aarch64/lib/libnghttp2.so.14 b/aarch64/lib/libnghttp2.so.14
index d6b21da..676d39e 100755
--- a/aarch64/lib/libnghttp2.so.14
+++ b/aarch64/lib/libnghttp2.so.14
Binary files differ
diff --git a/aarch64/lib/libopcodes-2.27.0.20170315.so b/aarch64/lib/libopcodes-2.27.0.20170315.so
deleted file mode 100755
index 0b80a1e..0000000
--- a/aarch64/lib/libopcodes-2.27.0.20170315.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libopcodes-2.36.1.so b/aarch64/lib/libopcodes-2.36.1.so
new file mode 100755
index 0000000..33181ee
--- /dev/null
+++ b/aarch64/lib/libopcodes-2.36.1.so
Binary files differ
diff --git a/aarch64/lib/libpanel.so.5 b/aarch64/lib/libpanel.so.5
new file mode 100755
index 0000000..0b332a8
--- /dev/null
+++ b/aarch64/lib/libpanel.so.5
Binary files differ
diff --git a/aarch64/lib/libpthread.so.0 b/aarch64/lib/libpthread.so.0
index 7b0e314..c05b67a 100755
--- a/aarch64/lib/libpthread.so.0
+++ b/aarch64/lib/libpthread.so.0
Binary files differ
diff --git a/aarch64/lib/libpython3.6m.so.1.0 b/aarch64/lib/libpython3.6m.so.1.0
index 82e4c60..1279471 100755
--- a/aarch64/lib/libpython3.6m.so.1.0
+++ b/aarch64/lib/libpython3.6m.so.1.0
Binary files differ
diff --git a/aarch64/lib/libreadline.so.8 b/aarch64/lib/libreadline.so.8
index cd406df..d5d96b5 100755
--- a/aarch64/lib/libreadline.so.8
+++ b/aarch64/lib/libreadline.so.8
Binary files differ
diff --git a/aarch64/lib/librt.so.1 b/aarch64/lib/librt.so.1
deleted file mode 100755
index ef40c0e..0000000
--- a/aarch64/lib/librt.so.1
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/librustc_driver-c9271175117188a9.so b/aarch64/lib/librustc_driver-c9271175117188a9.so
new file mode 100755
index 0000000..543f8f9
--- /dev/null
+++ b/aarch64/lib/librustc_driver-c9271175117188a9.so
Binary files differ
diff --git a/aarch64/lib/librustc_driver-e3920dca5d5acac3.so b/aarch64/lib/librustc_driver-e3920dca5d5acac3.so
deleted file mode 100755
index 3ea79b2..0000000
--- a/aarch64/lib/librustc_driver-e3920dca5d5acac3.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libssl.so.1.1 b/aarch64/lib/libssl.so.1.1
index e491735..f00bf4f 100755
--- a/aarch64/lib/libssl.so.1.1
+++ b/aarch64/lib/libssl.so.1.1
Binary files differ
diff --git a/aarch64/lib/libstd-1962cc37bfbc6a4b.so b/aarch64/lib/libstd-1962cc37bfbc6a4b.so
deleted file mode 100644
index 7883349..0000000
--- a/aarch64/lib/libstd-1962cc37bfbc6a4b.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libstd-2ed0c51f104da396.so b/aarch64/lib/libstd-2ed0c51f104da396.so
deleted file mode 100644
index edad76e..0000000
--- a/aarch64/lib/libstd-2ed0c51f104da396.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libstd-7e6c3b81e76f89be.so b/aarch64/lib/libstd-7e6c3b81e76f89be.so
new file mode 100644
index 0000000..9c03c20
--- /dev/null
+++ b/aarch64/lib/libstd-7e6c3b81e76f89be.so
Binary files differ
diff --git a/aarch64/lib/libstd-a3edd9f4530e2dd9.so b/aarch64/lib/libstd-a3edd9f4530e2dd9.so
new file mode 100644
index 0000000..fd6b0c4
--- /dev/null
+++ b/aarch64/lib/libstd-a3edd9f4530e2dd9.so
Binary files differ
diff --git a/aarch64/lib/libstd-c67bcafeb381150c.so b/aarch64/lib/libstd-c67bcafeb381150c.so
deleted file mode 100644
index ee6d9b3..0000000
--- a/aarch64/lib/libstd-c67bcafeb381150c.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libstd-ed739b04b73866c1.so b/aarch64/lib/libstd-ed739b04b73866c1.so
new file mode 100644
index 0000000..b0dda68
--- /dev/null
+++ b/aarch64/lib/libstd-ed739b04b73866c1.so
Binary files differ
diff --git a/aarch64/lib/libstdc++.so.6 b/aarch64/lib/libstdc++.so.6
index 20b1a4d..fa19fd3 100755
--- a/aarch64/lib/libstdc++.so.6
+++ b/aarch64/lib/libstdc++.so.6
Binary files differ
diff --git a/aarch64/lib/libtest-323fd96e86abe6d2.so b/aarch64/lib/libtest-323fd96e86abe6d2.so
deleted file mode 100755
index 0881d66..0000000
--- a/aarch64/lib/libtest-323fd96e86abe6d2.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/lib/libtest-4a32b55909f72754.so b/aarch64/lib/libtest-4a32b55909f72754.so
new file mode 100755
index 0000000..fd07e57
--- /dev/null
+++ b/aarch64/lib/libtest-4a32b55909f72754.so
Binary files differ
diff --git a/aarch64/lib/libtinfo.so.5 b/aarch64/lib/libtinfo.so.5
index d79781b..369ec97 100755
--- a/aarch64/lib/libtinfo.so.5
+++ b/aarch64/lib/libtinfo.so.5
Binary files differ
diff --git a/aarch64/lib/libtinfow.so.5 b/aarch64/lib/libtinfow.so.5
index 7a2e19f..36ce8e0 100755
--- a/aarch64/lib/libtinfow.so.5
+++ b/aarch64/lib/libtinfow.so.5
Binary files differ
diff --git a/aarch64/lib/libutil.so.1 b/aarch64/lib/libutil.so.1
index e8d666c..4c4d9b4 100755
--- a/aarch64/lib/libutil.so.1
+++ b/aarch64/lib/libutil.so.1
Binary files differ
diff --git a/aarch64/lib/libxml2.so.2 b/aarch64/lib/libxml2.so.2
index 23eb8f3..2b48af5 100755
--- a/aarch64/lib/libxml2.so.2
+++ b/aarch64/lib/libxml2.so.2
Binary files differ
diff --git a/aarch64/lib/libz.so.1 b/aarch64/lib/libz.so.1
index 03f57e5..71e0849 100755
--- a/aarch64/lib/libz.so.1
+++ b/aarch64/lib/libz.so.1
Binary files differ
diff --git a/aarch64/lib/libzstd.so.1 b/aarch64/lib/libzstd.so.1
new file mode 100755
index 0000000..e54e4dc
--- /dev/null
+++ b/aarch64/lib/libzstd.so.1
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib/libgcc_s.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib/libgcc_s.so.1
index 2afa482..854a5fb 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib/libgcc_s.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib/libgcc_s.so.1
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.27.so
deleted file mode 100755
index 165a1f1..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.33.so
new file mode 100755
index 0000000..398c3cb
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-linux-aarch64.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-linux-aarch64.so.1
index 2ffc93b..32ac5fb 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-linux-aarch64.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/ld-linux-aarch64.so.1
@@ -1 +1 @@
-ld-2.27.so
\ No newline at end of file
+ld-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.27.so
deleted file mode 100755
index 4e4b2ec..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.33.so
new file mode 100755
index 0000000..9c1fd8a
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale.so.1
index d0efb54..70f4e3b 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libBrokenLocale.so.1
@@ -1 +1 @@
-libBrokenLocale-2.27.so
\ No newline at end of file
+libBrokenLocale-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libSegFault.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libSegFault.so
index 37248dd..db6a2f7 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libSegFault.so
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libSegFault.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.27.so
deleted file mode 100755
index 4ce4803..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.33.so
new file mode 100755
index 0000000..b030e3c
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl.so.1
index ea60727..22a63c5 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libanl.so.1
@@ -1 +1 @@
-libanl-2.27.so
\ No newline at end of file
+libanl-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.27.so
deleted file mode 100755
index 80c0d4f..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.33.so
new file mode 100755
index 0000000..4def19b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc.so.6 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc.so.6
index aa8ad7a..3b28802 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc.so.6
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libc.so.6
@@ -1 +1 @@
-libc-2.27.so
\ No newline at end of file
+libc-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn-2.27.so
deleted file mode 100755
index 4a1c196..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn.so.1
deleted file mode 120000
index ae5e122..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcidn.so.1
+++ /dev/null
@@ -1 +0,0 @@
-libcidn-2.27.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.27.so
deleted file mode 100755
index 4b6804f..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.33.so
new file mode 100755
index 0000000..e17ba57
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt.so.1
index e527bb4..181ca8d 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libcrypt.so.1
@@ -1 +1 @@
-libcrypt-2.27.so
\ No newline at end of file
+libcrypt-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.27.so
deleted file mode 100755
index 5c41cfe..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.33.so
new file mode 100755
index 0000000..100e84b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl.so.2
index f607f6a..663ede7 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libdl.so.2
@@ -1 +1 @@
-libdl-2.27.so
\ No newline at end of file
+libdl-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.27.so
deleted file mode 100755
index b59c467..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.33.so
new file mode 100755
index 0000000..23999f4
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm.so.6 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm.so.6
index 8ca96af..dd1ae3e 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm.so.6
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libm.so.6
@@ -1 +1 @@
-libm-2.27.so
\ No newline at end of file
+libm-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libmemusage.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libmemusage.so
index 526f09a..de6393e 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libmemusage.so
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libmemusage.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.27.so
deleted file mode 100755
index 41e0ee6..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.33.so
new file mode 100755
index 0000000..7750640
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl.so.1
index 0fc9683..8ce2801 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnsl.so.1
@@ -1 +1 @@
-libnsl-2.27.so
\ No newline at end of file
+libnsl-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.27.so
deleted file mode 100755
index c3a9eff..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.33.so
new file mode 100755
index 0000000..c516b4b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat.so.2
index 5b1cfc2..0ee4d94 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_compat.so.2
@@ -1 +1 @@
-libnss_compat-2.27.so
\ No newline at end of file
+libnss_compat-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.27.so
deleted file mode 100755
index 76cc8b6..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.33.so
new file mode 100755
index 0000000..55554e4
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db.so.2
index c108269..cc3dfae 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_db.so.2
@@ -1 +1 @@
-libnss_db-2.27.so
\ No newline at end of file
+libnss_db-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.27.so
deleted file mode 100755
index 7b7d42e..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.33.so
new file mode 100755
index 0000000..16776e0
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns.so.2
index 812f3be..d3a756c 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_dns.so.2
@@ -1 +1 @@
-libnss_dns-2.27.so
\ No newline at end of file
+libnss_dns-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.27.so
deleted file mode 100755
index 62cfb46..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.33.so
new file mode 100755
index 0000000..970be11
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files.so.2
index ba3fbd8..968bb00 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_files.so.2
@@ -1 +1 @@
-libnss_files-2.27.so
\ No newline at end of file
+libnss_files-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.27.so
deleted file mode 100755
index 374347c..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.33.so
new file mode 100755
index 0000000..493cc86
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod.so.2
index bb380d6..888b31b 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libnss_hesiod.so.2
@@ -1 +1 @@
-libnss_hesiod-2.27.so
\ No newline at end of file
+libnss_hesiod-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpcprofile.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpcprofile.so
index 1b96eaf..fd6bfaf 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpcprofile.so
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpcprofile.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.27.so
deleted file mode 100755
index 37fdf3c..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.33.so
new file mode 100755
index 0000000..ff870d8
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread.so.0 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread.so.0
index 3c60c17..ff0d3c6 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread.so.0
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libpthread.so.0
@@ -1 +1 @@
-libpthread-2.27.so
\ No newline at end of file
+libpthread-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.27.so
deleted file mode 100755
index c5544d4..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.33.so
new file mode 100755
index 0000000..ffeaa6d
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv.so.2 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv.so.2
index d1f7cfc..3b652a5 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv.so.2
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libresolv.so.2
@@ -1 +1 @@
-libresolv-2.27.so
\ No newline at end of file
+libresolv-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.27.so
deleted file mode 100755
index 6083ee6..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.33.so
new file mode 100755
index 0000000..372ed98
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt.so.1
index 1a707c1..2033113 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/librt.so.1
@@ -1 +1 @@
-librt-2.27.so
\ No newline at end of file
+librt-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libthread_db-1.0.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libthread_db-1.0.so
index d6aa4c9..278649f 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libthread_db-1.0.so
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libthread_db-1.0.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.27.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.27.so
deleted file mode 100755
index 2916629..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.27.so
+++ /dev/null
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.33.so b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.33.so
new file mode 100755
index 0000000..0380bc2
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil-2.33.so
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil.so.1 b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil.so.1
index 554fe8f..032fa09 120000
--- a/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil.so.1
+++ b/aarch64/usr/aarch64-cros-linux-gnu/lib64/libutil.so.1
@@ -1 +1 @@
-libutil-2.27.so
\ No newline at end of file
+libutil-2.33.so
\ No newline at end of file
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/sbin/ldconfig b/aarch64/usr/aarch64-cros-linux-gnu/sbin/ldconfig
index 7d502ee..d605ac6 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/sbin/ldconfig
+++ b/aarch64/usr/aarch64-cros-linux-gnu/sbin/ldconfig
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/gdbserver b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/gdbserver
index bf0ea7b..70ae35b 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/gdbserver
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/gdbserver
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/getent b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/getent
index 7093f19..4fc913f 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/getent
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/getent
Binary files differ
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/ldd b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/ldd
index 65d5798..e1fed7c 100755
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/ldd
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/bin/ldd
@@ -1,5 +1,5 @@
 #! /bin/bash
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
 # You should have received a copy of the GNU Lesser General Public
 # License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
 
 
 # This is the `ldd' command, which lists what shared libraries are
@@ -34,11 +34,11 @@
 while test $# -gt 0; do
   case "$1" in
   --vers | --versi | --versio | --version)
-    echo 'ldd (Gentoo 2.27-r20 p3) 2.27'
+    echo 'ldd (Gentoo 2.33-r16 p9) 2.33'
     printf $"Copyright (C) %s Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-" "2018"
+" "2021"
     printf $"Written by %s and %s.
 " "Roland McGrath" "Ulrich Drepper"
     exit 0
@@ -167,7 +167,7 @@
     1)
       # This can be a non-ELF binary or no binary at all.
       nonelf "$file" || {
-	echo $"	not a dynamic executable"
+	echo $"	not a dynamic executable" >&2
 	result=1
       }
       ;;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/_G_config.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/_G_config.h
deleted file mode 100644
index 68de2fc..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/_G_config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _G_CONFIG_H
-#define _G_CONFIG_H 1
-
-#warning "<_G_config.h> is deprecated; use <stdio.h> instead."
-
-#include <bits/_G_config.h>
-
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/__libunwind_config.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/__libunwind_config.h
index 71d77ca..221980a 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/__libunwind_config.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/__libunwind_config.h
@@ -1,4 +1,4 @@
-//===------------------------- __libunwind_config.h -----------------------===//
+//===----------------------------------------------------------------------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -25,8 +25,12 @@
 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC     31
 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON   34
 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV     64
+#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE        143
 
 #if defined(_LIBUNWIND_IS_NATIVE_ONLY)
+# if defined(__linux__)
+#  define _LIBUNWIND_TARGET_LINUX 1
+# endif
 # if defined(__i386__)
 #  define _LIBUNWIND_TARGET_I386
 #  define _LIBUNWIND_CONTEXT_SIZE 8
@@ -127,14 +131,26 @@
   #define _LIBUNWIND_CONTEXT_SIZE 16
   #define _LIBUNWIND_CURSOR_SIZE 23
 # elif defined(__riscv)
-#  if __riscv_xlen == 64
-#    define _LIBUNWIND_TARGET_RISCV 1
-#    define _LIBUNWIND_CONTEXT_SIZE 64
-#    define _LIBUNWIND_CURSOR_SIZE 76
+#  define _LIBUNWIND_TARGET_RISCV 1
+#  if defined(__riscv_flen)
+#   define RISCV_FLEN __riscv_flen
 #  else
-#    error "Unsupported RISC-V ABI"
+#   define RISCV_FLEN 0
+#  endif
+#  define _LIBUNWIND_CONTEXT_SIZE (32 * (__riscv_xlen + RISCV_FLEN) / 64)
+#  if __riscv_xlen == 32
+#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 7)
+#  elif __riscv_xlen == 64
+#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 12)
+#  else
+#   error "Unsupported RISC-V ABI"
 #  endif
 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV
+# elif defined(__ve__)
+#  define _LIBUNWIND_TARGET_VE 1
+#  define _LIBUNWIND_CONTEXT_SIZE 67
+#  define _LIBUNWIND_CURSOR_SIZE 79
+#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE
 # else
 #  error "Unsupported architecture."
 # endif
@@ -151,6 +167,7 @@
 # define _LIBUNWIND_TARGET_SPARC 1
 # define _LIBUNWIND_TARGET_HEXAGON 1
 # define _LIBUNWIND_TARGET_RISCV 1
+# define _LIBUNWIND_TARGET_VE 1
 # define _LIBUNWIND_CONTEXT_SIZE 167
 # define _LIBUNWIND_CURSOR_SIZE 179
 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/a.out.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/a.out.h
index e3f4bdd..79df485 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/a.out.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/a.out.h
@@ -64,8 +64,8 @@
    && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
 #define _N_HDROFF(x)	(1024 - sizeof (struct exec))
 #define N_TXTOFF(x) \
-  (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) :	\
-   (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
+  (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec)		\
+   : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
 #define N_DATOFF(x)	(N_TXTOFF(x) + (x).a_text)
 #define N_TRELOFF(x)	(N_DATOFF(x) + (x).a_data)
 #define N_DRELOFF(x)	(N_TRELOFF(x) + N_TRSIZE(x))
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aio.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aio.h
index c3a1f4b..3a107b2 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aio.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * ISO/IEC 9945-1:1996 6.7: Asynchronous Input and Output
@@ -33,7 +33,7 @@
 /* Asynchronous I/O control block.  */
 struct aiocb
 {
-  int aio_fildes;		/* File desriptor.  */
+  int aio_fildes;		/* File descriptor.  */
   int aio_lio_opcode;		/* Operation to be performed.  */
   int aio_reqprio;		/* Request priority offset.  */
   volatile void *aio_buf;	/* Location of buffer.  */
@@ -61,7 +61,7 @@
 #ifdef __USE_LARGEFILE64
 struct aiocb64
 {
-  int aio_fildes;		/* File desriptor.  */
+  int aio_fildes;		/* File descriptor.  */
   int aio_lio_opcode;		/* Operation to be performed.  */
   int aio_reqprio;		/* Request priority offset.  */
   volatile void *aio_buf;	/* Location of buffer.  */
@@ -82,12 +82,11 @@
 
 
 #ifdef __USE_GNU
-/* To customize the implementation one can use the following struct.
-   This implementation follows the one in Irix.  */
+/* To optimize the implementation one can use the following struct.  */
 struct aioinit
   {
-    int aio_threads;		/* Maximal number of threads.  */
-    int aio_num;		/* Number of expected simultanious requests. */
+    int aio_threads;		/* Maximum number of threads.  */
+    int aio_num;		/* Number of expected simultaneous requests.  */
     int aio_locks;		/* Not used.  */
     int aio_usedba;		/* Not used.  */
     int aio_debug;		/* Not used.  */
@@ -99,7 +98,7 @@
 #endif
 
 
-/* Return values of cancelation function.  */
+/* Return values of the aio_cancel function.  */
 enum
 {
   AIO_CANCELED,
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aliases.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aliases.h
index ec44284..07514c4 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aliases.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/aliases.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _ALIASES_H
 #define _ALIASES_H	1
@@ -25,7 +25,7 @@
 
 __BEGIN_DECLS
 
-/* Structure to represent one entry of the alias data base.  */
+/* Structure to represent one entry of the alias database.  */
 struct aliasent
   {
     char *alias_name;
@@ -38,13 +38,13 @@
 /* Open alias data base files.  */
 extern void setaliasent (void) __THROW;
 
-/* Close alias data base files.  */
+/* Close alias database files.  */
 extern void endaliasent (void) __THROW;
 
-/* Get the next entry from the alias data base.  */
+/* Get the next entry from the alias database.  */
 extern struct aliasent *getaliasent (void) __THROW;
 
-/* Get the next entry from the alias data base and put it in RESULT_BUF.  */
+/* Get the next entry from the alias database and put it in RESULT_BUF.  */
 extern int getaliasent_r (struct aliasent *__restrict __result_buf,
 			  char *__restrict __buffer, size_t __buflen,
 			  struct aliasent **__restrict __result) __THROW;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/alloca.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/alloca.h
index c195adc..cd2a9e0 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/alloca.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/alloca.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_ALLOCA_H
 #define	_ALLOCA_H	1
@@ -25,7 +25,7 @@
 
 __BEGIN_DECLS
 
-/* Remove any previous definitions.  */
+/* Remove any previous definition.  */
 #undef	alloca
 
 /* Allocate a block that will be freed when the calling function exits.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/ar.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/ar.h
index 25a9a63..ce51926 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/ar.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/ar.h
@@ -1,5 +1,5 @@
 /* Header describing `ar' archive file format.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _AR_H
 #define _AR_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argp.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argp.h
index 0f25833..5dd3828 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argp.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argp.h
@@ -1,5 +1,5 @@
-/* Hierarchial argument parsing, layered over getopt.
-   Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Hierarchical argument parsing, layered over getopt.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _ARGP_H
 #define _ARGP_H
@@ -233,7 +233,7 @@
 };
 
 /* Possible KEY arguments to a help filter function.  */
-#define ARGP_KEY_HELP_PRE_DOC	0x2000001 /* Help text preceeding options. */
+#define ARGP_KEY_HELP_PRE_DOC	0x2000001 /* Help text preceding options. */
 #define ARGP_KEY_HELP_POST_DOC	0x2000002 /* Help text following options. */
 #define ARGP_KEY_HELP_HEADER	0x2000003 /* Option header string. */
 #define ARGP_KEY_HELP_EXTRA	0x2000004 /* After all other documentation;
@@ -447,7 +447,7 @@
    parsing routine (thus taking an argp_state structure as the first
    argument).  They may or may not print an error message and exit, depending
    on the flags in STATE -- in any case, the caller should be prepared for
-   them *not* to exit, and should return an appropiate error after calling
+   them *not* to exit, and should return an appropriate error after calling
    them.  [argp_usage & argp_error should probably be called argp_state_...,
    but they're used often enough that they should be short]  */
 
@@ -554,6 +554,11 @@
 # endif
 #endif /* Use extern inlines.  */
 
+#include <bits/floatn.h>
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
+# include <bits/argp-ldbl.h>
+#endif
+
 __END_DECLS
 
 #endif /* argp.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argz.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argz.h
index 9c496f5..c2f78f5 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argz.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/argz.h
@@ -1,5 +1,5 @@
 /* Routines for dealing with '\0' separated arg vectors.
-   Copyright (C) 1995-2018 Free Software Foundation, Inc.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _ARGZ_H
 #define _ARGZ_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/arpa/inet.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/arpa/inet.h
index 731f1c5..3a99dbf 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/arpa/inet.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/arpa/inet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _ARPA_INET_H
 #define	_ARPA_INET_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/asm-generic/unistd.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/asm-generic/unistd.h
index a8cb3bb..e1c762e 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/asm-generic/unistd.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/asm-generic/unistd.h
@@ -732,13 +732,60 @@
 __SYSCALL(__NR_pkey_free,     sys_pkey_free)
 #define __NR_statx 291
 __SYSCALL(__NR_statx,     sys_statx)
+/* 292 through 402 are unassigned to sync up with generic numbers, don't use */
+#if __BITS_PER_LONG == 32
+#define __NR_clock_gettime64 403
+__SYSCALL(__NR_clock_gettime64, sys_clock_gettime)
+#define __NR_clock_settime64 404
+__SYSCALL(__NR_clock_settime64, sys_clock_settime)
+#define __NR_clock_adjtime64 405
+__SYSCALL(__NR_clock_adjtime64, sys_clock_adjtime)
+#define __NR_clock_getres_time64 406
+__SYSCALL(__NR_clock_getres_time64, sys_clock_getres)
+#define __NR_clock_nanosleep_time64 407
+__SYSCALL(__NR_clock_nanosleep_time64, sys_clock_nanosleep)
+#define __NR_timer_gettime64 408
+__SYSCALL(__NR_timer_gettime64, sys_timer_gettime)
+#define __NR_timer_settime64 409
+__SYSCALL(__NR_timer_settime64, sys_timer_settime)
+#define __NR_timerfd_gettime64 410
+__SYSCALL(__NR_timerfd_gettime64, sys_timerfd_gettime)
+#define __NR_timerfd_settime64 411
+__SYSCALL(__NR_timerfd_settime64, sys_timerfd_settime)
+#define __NR_utimensat_time64 412
+__SYSCALL(__NR_utimensat_time64, sys_utimensat)
+#define __NR_pselect6_time64 413
+__SC_COMP(__NR_pselect6_time64, sys_pselect6, compat_sys_pselect6_time64)
+#define __NR_ppoll_time64 414
+__SC_COMP(__NR_ppoll_time64, sys_ppoll, compat_sys_ppoll_time64)
+#define __NR_io_pgetevents_time64 416
+__SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents)
+#define __NR_recvmmsg_time64 417
+__SC_COMP(__NR_recvmmsg_time64, sys_recvmmsg, compat_sys_recvmmsg_time64)
+#define __NR_mq_timedsend_time64 418
+__SYSCALL(__NR_mq_timedsend_time64, sys_mq_timedsend)
+#define __NR_mq_timedreceive_time64 419
+__SYSCALL(__NR_mq_timedreceive_time64, sys_mq_timedreceive)
+#define __NR_semtimedop_time64 420
+__SYSCALL(__NR_semtimedop_time64, sys_semtimedop)
+#define __NR_rt_sigtimedwait_time64 421
+__SC_COMP(__NR_rt_sigtimedwait_time64, sys_rt_sigtimedwait, compat_sys_rt_sigtimedwait_time64)
+#define __NR_futex_time64 422
+__SYSCALL(__NR_futex_time64, sys_futex)
+#define __NR_sched_rr_get_interval_time64 423
+__SYSCALL(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval)
+#endif
+/* 424 is unused */
 #define __NR_io_uring_setup 425
 __SYSCALL(__NR_io_uring_setup, sys_io_uring_setup)
 #define __NR_io_uring_enter 426
 __SYSCALL(__NR_io_uring_enter, sys_io_uring_enter)
 
+#define __NR_faccessat2 439
+__SYSCALL(__NR_faccessat2, sys_faccessat2)
+
 #undef __NR_syscalls
-#define __NR_syscalls 427
+#define __NR_syscalls 440
 
 /*
  * All syscalls below here should go away really,
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/assert.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/assert.h
index 5468c16..2894908 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/assert.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/assert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  *	ISO C99 Standard: 7.2 Diagnostics	<assert.h>
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/_G_config.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/_G_config.h
deleted file mode 100644
index 9994869..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/_G_config.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* This file is needed by libio to define various configuration parameters.
-   These are always the same in the GNU C library.  */
-
-#ifndef _BITS_G_CONFIG_H
-#define _BITS_G_CONFIG_H 1
-
-#if !defined _BITS_LIBIO_H && !defined _G_CONFIG_H
-# error "Never include <bits/_G_config.h> directly; use <stdio.h> instead."
-#endif
-
-/* Define types for libio in terms of the standard internal type names.  */
-
-#include <bits/types.h>
-#define __need_size_t
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-# define __need_wchar_t
-#endif
-#define __need_NULL
-#include <stddef.h>
-
-#include <bits/types/__mbstate_t.h>
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-# include <bits/types/wint_t.h>
-#endif
-
-typedef struct
-{
-  __off_t __pos;
-  __mbstate_t __state;
-} _G_fpos_t;
-typedef struct
-{
-  __off64_t __pos;
-  __mbstate_t __state;
-} _G_fpos64_t;
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-# include <gconv.h>
-typedef union
-{
-  struct __gconv_info __cd;
-  struct
-  {
-    struct __gconv_info __cd;
-    struct __gconv_step_data __data;
-  } __combined;
-} _G_iconv_t;
-#endif
-
-
-/* These library features are always available in the GNU C library.  */
-#define _G_va_list __gnuc_va_list
-
-#define _G_HAVE_MMAP 1
-#define _G_HAVE_MREMAP 1
-
-#define _G_IO_IO_FILE_VERSION 0x20001
-
-/* This is defined by <bits/stat.h> if `st_blksize' exists.  */
-#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
-
-#define _G_BUFSIZ 8192
-
-#endif	/* bits/_G_config.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/argp-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/argp-ldbl.h
new file mode 100644
index 0000000..903b06f
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/argp-ldbl.h
@@ -0,0 +1,24 @@
+/* Redirections for argp functions for -mlong-double-64.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _ARGP_H
+# error "Never include <bits/argp-ldbl.h> directly; use <argp.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (argp_error)
+__LDBL_REDIR_DECL (argp_failure)
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap-16.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap-16.h
deleted file mode 100644
index 0fbd8d6..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap-16.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Macros to swap the order of bytes in 16-bit integer values.
-   Copyright (C) 2012-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_BYTESWAP_H
-# error "Never use <bits/byteswap-16.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifdef __GNUC__
-# define __bswap_16(x) \
-    (__extension__							      \
-     ({ unsigned short int __bsx = (unsigned short int) (x);		      \
-       __bswap_constant_16 (__bsx); }))
-#else
-static __inline unsigned short int
-__bswap_16 (unsigned short int __bsx)
-{
-  return __bswap_constant_16 (__bsx);
-}
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap.h
index f99a6a4..6438a8b 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/byteswap.h
@@ -1,5 +1,5 @@
-/* Macros to swap the order of bytes in integer values.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Macros and inline functions to swap the order of bytes in integer values.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
 # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
@@ -26,87 +26,54 @@
 #include <features.h>
 #include <bits/types.h>
 
-/* Swap bytes in 16 bit value.  */
-#define __bswap_constant_16(x) \
-	((unsigned short int)((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)))
+/* Swap bytes in 16-bit value.  */
+#define __bswap_constant_16(x)					\
+  ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
 
-/* Get __bswap_16.  */
-#include <bits/byteswap-16.h>
-
-/* Swap bytes in 32 bit value.  */
-#define __bswap_constant_32(x) \
-     ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >>  8) |	      \
-      (((x) & 0x0000ff00u) <<  8) | (((x) & 0x000000ffu) << 24))
-
-#ifdef __GNUC__
-# if __GNUC_PREREQ (4, 3)
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
 {
+#if __GNUC_PREREQ (4, 8)
+  return __builtin_bswap16 (__bsx);
+#else
+  return __bswap_constant_16 (__bsx);
+#endif
+}
+
+/* Swap bytes in 32-bit value.  */
+#define __bswap_constant_32(x)					\
+  ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8)	\
+   | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
+
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+#if __GNUC_PREREQ (4, 3)
   return __builtin_bswap32 (__bsx);
-}
-# else
-#  define __bswap_32(x) \
-  (__extension__							      \
-   ({ unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
-# endif
 #else
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
   return __bswap_constant_32 (__bsx);
-}
 #endif
+}
 
-/* Swap bytes in 64 bit value.  */
-#if __GNUC_PREREQ (2, 0)
-# define __bswap_constant_64(x) \
-     (__extension__ ((((x) & 0xff00000000000000ull) >> 56)		      \
-		     | (((x) & 0x00ff000000000000ull) >> 40)		      \
-		     | (((x) & 0x0000ff0000000000ull) >> 24)		      \
-		     | (((x) & 0x000000ff00000000ull) >> 8)		      \
-		     | (((x) & 0x00000000ff000000ull) << 8)		      \
-		     | (((x) & 0x0000000000ff0000ull) << 24)		      \
-		     | (((x) & 0x000000000000ff00ull) << 40)		      \
-		     | (((x) & 0x00000000000000ffull) << 56)))
+/* Swap bytes in 64-bit value.  */
+#define __bswap_constant_64(x)			\
+  ((((x) & 0xff00000000000000ull) >> 56)	\
+   | (((x) & 0x00ff000000000000ull) >> 40)	\
+   | (((x) & 0x0000ff0000000000ull) >> 24)	\
+   | (((x) & 0x000000ff00000000ull) >> 8)	\
+   | (((x) & 0x00000000ff000000ull) << 8)	\
+   | (((x) & 0x0000000000ff0000ull) << 24)	\
+   | (((x) & 0x000000000000ff00ull) << 40)	\
+   | (((x) & 0x00000000000000ffull) << 56))
 
-# if __GNUC_PREREQ (4, 3)
-static __inline __uint64_t
+__extension__ static __inline __uint64_t
 __bswap_64 (__uint64_t __bsx)
 {
+#if __GNUC_PREREQ (4, 3)
   return __builtin_bswap64 (__bsx);
-}
-# else
-#  define __bswap_64(x) \
-     (__extension__							      \
-      ({ union { __extension__ __uint64_t __ll;				      \
-		 unsigned int __l[2]; } __w, __r;			      \
-	 if (__builtin_constant_p (x))					      \
-	   __r.__ll = __bswap_constant_64 (x);				      \
-	 else								      \
-	   {								      \
-	     __w.__ll = (x);						      \
-	     __r.__l[0] = __bswap_32 (__w.__l[1]);			      \
-	     __r.__l[1] = __bswap_32 (__w.__l[0]);			      \
-	   }								      \
-	 __r.__ll; }))
-# endif
 #else
-# define __bswap_constant_64(x) \
-     ((((x) & 0xff00000000000000ull) >> 56)				      \
-      | (((x) & 0x00ff000000000000ull) >> 40)				      \
-      | (((x) & 0x0000ff0000000000ull) >> 24)				      \
-      | (((x) & 0x000000ff00000000ull) >> 8)				      \
-      | (((x) & 0x00000000ff000000ull) << 8)				      \
-      | (((x) & 0x0000000000ff0000ull) << 24)				      \
-      | (((x) & 0x000000000000ff00ull) << 40)				      \
-      | (((x) & 0x00000000000000ffull) << 56))
-
-static __inline __uint64_t
-__bswap_64 (__uint64_t __bsx)
-{
   return __bswap_constant_64 (__bsx);
-}
 #endif
+}
 
 #endif /* _BITS_BYTESWAP_H */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cmathcalls.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cmathcalls.h
index e22b804..20a65b5 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cmathcalls.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cmathcalls.h
@@ -1,6 +1,6 @@
 /* Prototype declarations for complex math functions;
    helper file for <complex.h>.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* NOTE: Because of the special way this file is used by <complex.h>, this
    file must NOT be protected from multiple inclusion as header files
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/confname.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/confname.h
index 59d3172..8068bda 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/confname.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/confname.h
@@ -1,5 +1,5 @@
 /* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-   Copyright (C) 1993-2018 Free Software Foundation, Inc.
+   Copyright (C) 1993-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _UNISTD_H
 # error "Never use <bits/confname.h> directly; include <unistd.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cpu-set.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cpu-set.h
index c5e919e..9a7e559 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cpu-set.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/cpu-set.h
@@ -1,6 +1,6 @@
 /* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
    scheduling interface.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_CPU_SET_H
 #define _BITS_CPU_SET_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent.h
index 2ed7919..88c86de 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _DIRENT_H
 # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
@@ -54,4 +54,6 @@
 #if defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T
 /* Inform libc code that these two types are effectively identical.  */
 # define _DIRENT_MATCHES_DIRENT64	1
+#else
+# define _DIRENT_MATCHES_DIRENT64	0
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent_ext.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent_ext.h
new file mode 100644
index 0000000..83cebc5
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dirent_ext.h
@@ -0,0 +1,33 @@
+/* System-specific extensions of <dirent.h>.  Linux version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _DIRENT_H
+# error "Never include <bits/dirent_ext.h> directly; use <dirent.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Read from the directory descriptor FD into LENGTH bytes at BUFFER.
+   Return the number of bytes read on success (0 for end of
+   directory), and -1 for failure.  */
+extern __ssize_t getdents64 (int __fd, void *__buffer, size_t __length)
+  __THROW __nonnull ((2));
+#endif
+
+__END_DECLS
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dlfcn.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dlfcn.h
index b0b129b..f3bc63e 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dlfcn.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/dlfcn.h
@@ -1,5 +1,5 @@
 /* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _DLFCN_H
 # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endian.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endian.h
index 1f18733..6372c6f 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endian.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endian.h
@@ -1,11 +1,11 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
-
+/* Endian macros for string.h functions
+   Copyright (C) 1992-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,18 +13,37 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
+   License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+#ifndef _BITS_ENDIAN_H
+#define _BITS_ENDIAN_H 1
+
+/* Definitions for byte order, according to significance of bytes,
+   from low addresses to high addresses.  The value is what you get by
+   putting '4' in the most significant byte, '3' in the second most
+   significant byte, '2' in the second least significant byte, and '1'
+   in the least significant byte, and then writing down one digit for
+   each byte, starting with the byte at the lowest address at the left,
+   and proceeding to the byte with the highest address at the right.  */
+
+#define	__LITTLE_ENDIAN	1234
+#define	__BIG_ENDIAN	4321
+#define	__PDP_ENDIAN	3412
+
+/* This file defines `__BYTE_ORDER' for the particular machine.  */
+#include <bits/endianness.h>
+
+/* Some machines may need to use a different endianness for floating point
+   values.  */
+#ifndef __FLOAT_WORD_ORDER
+# define __FLOAT_WORD_ORDER __BYTE_ORDER
 #endif
 
-/* AArch64 can be either big or little endian.  */
-#ifdef __AARCH64EB__
-# define __BYTE_ORDER __BIG_ENDIAN
-#else
-# define __BYTE_ORDER __LITTLE_ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) LO, HI
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) HI, LO
 #endif
 
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
+#endif /* bits/endian.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endianness.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endianness.h
new file mode 100644
index 0000000..300ebc8
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/endianness.h
@@ -0,0 +1,15 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* AArch64 has selectable endianness.  */
+#ifdef __AARCH64EB__
+# define __BYTE_ORDER __BIG_ENDIAN
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/environments.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/environments.h
index 22ea9f0..7049784 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/environments.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _UNISTD_H
 # error "Never include this file directly.  Use <unistd.h> instead"
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/epoll.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/epoll.h
index d4aea32..5810ad6 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/epoll.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_SYS_EPOLL_H
 # error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/err-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/err-ldbl.h
new file mode 100644
index 0000000..330e7dd
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/err-ldbl.h
@@ -0,0 +1,30 @@
+/* Redirections for err.h functions for -mlong-double-64.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _ERR_H
+# error "Never include <bits/err-ldbl.h> directly; use <err.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (warn)
+__LDBL_REDIR_DECL (vwarn)
+__LDBL_REDIR_DECL (warnx)
+__LDBL_REDIR_DECL (vwarnx)
+__LDBL_REDIR_DECL (err)
+__LDBL_REDIR_DECL (verr)
+__LDBL_REDIR_DECL (errx)
+__LDBL_REDIR_DECL (verrx)
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/errno.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/errno.h
index e0f7f0b..230cee0 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/errno.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/errno.h
@@ -1,5 +1,5 @@
 /* Error constants.  Linux specific version.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_ERRNO_H
 #define _BITS_ERRNO_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error-ldbl.h
new file mode 100644
index 0000000..da46f7c
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error-ldbl.h
@@ -0,0 +1,24 @@
+/* Redirections for error.h functions for -mlong-double-64.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _ERROR_H
+# error "Never include <bits/error-ldbl.h> directly; use <error.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (error)
+__LDBL_REDIR_DECL (error_at_line)
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error.h
index 682cf20..14735eb 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/error.h
@@ -1,5 +1,5 @@
 /* Specializations for error functions.
-   Copyright (C) 2007-2018 Free Software Foundation, Inc.
+   Copyright (C) 2007-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_ERROR_H
 # error "Never include <bits/error.h> directly; use <error.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/eventfd.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/eventfd.h
index 5941174..6ff6b03 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/eventfd.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_SYS_EVENTFD_H
 # error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl-linux.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl-linux.h
index 2694942..20ad78c 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl-linux.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl-linux.h
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 2001-2018 Free Software Foundation, Inc.
+   Copyright (C) 2001-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_FCNTL_H
 # error "Never use <bits/fcntl-linux.h> directly; include <fcntl.h> instead."
@@ -284,11 +284,14 @@
 # define F_SEAL_SHRINK	0x0002	/* Prevent file from shrinking.  */
 # define F_SEAL_GROW	0x0004	/* Prevent file from growing.  */
 # define F_SEAL_WRITE	0x0008	/* Prevent writes.  */
+# define F_SEAL_FUTURE_WRITE	0x0010	/* Prevent future writes while
+					   mapped.  */
 #endif
 
 #ifdef __USE_GNU
 /* Hint values for F_{GET,SET}_RW_HINT.  */
-# define RWF_WRITE_LIFE_NOT_SET	0
+# define RWH_WRITE_LIFE_NOT_SET	0
+# define RWF_WRITE_LIFE_NOT_SET	RWH_WRITE_LIFE_NOT_SET
 # define RWH_WRITE_LIFE_NONE	1
 # define RWH_WRITE_LIFE_SHORT	2
 # define RWH_WRITE_LIFE_MEDIUM	3
@@ -332,6 +335,11 @@
 # define SYNC_FILE_RANGE_WAIT_AFTER	4 /* Wait upon writeout of all pages in
 					     the range after performing the
 					     write.  */
+/* SYNC_FILE_RANGE_WRITE_AND_WAIT ensures all pages in the range are
+   written to disk before returning.  */
+# define SYNC_FILE_RANGE_WRITE_AND_WAIT	(SYNC_FILE_RANGE_WRITE		\
+					 | SYNC_FILE_RANGE_WAIT_BEFORE	\
+					 | SYNC_FILE_RANGE_WAIT_AFTER)
 
 /* Flags for SPLICE and VMSPLICE.  */
 # define SPLICE_F_MOVE		1	/* Move pages instead of copying.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl.h
index e09ff41..a89db6a 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl.h
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
-   Copyright (C) 2011-2018 Free Software Foundation, Inc.
+   Copyright (C) 2011-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_FCNTL_H
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl2.h
index 1aaaf9a..24efb22 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fcntl2.h
@@ -1,5 +1,5 @@
 /* Checking macros for fcntl functions.
-   Copyright (C) 2007-2018 Free Software Foundation, Inc.
+   Copyright (C) 2007-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_FCNTL_H
 # error "Never include <bits/fcntl2.h> directly; use <fcntl.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenv.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenv.h
index 8a0f481..2f95478 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenv.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _FENV_H
 # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -73,7 +73,7 @@
 # define FE_NOMASK_ENV  ((const fenv_t *) -2)
 #endif
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
 /* Type representing floating-point control modes.  */
 typedef unsigned int femode_t;
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenvinline.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenvinline.h
deleted file mode 100644
index 42f77b5..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fenvinline.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* This file provides inline versions of floating-pint environment
-   handling functions.  If there were any.  */
-
-#ifndef __NO_MATH_INLINES
-
-/* Here is where the code would go.  */
-
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn-common.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn-common.h
index 070cdd0..b43c953 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn-common.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn-common.h
@@ -1,6 +1,6 @@
 /* Macros to control TS 18661-3 glibc features where the same
    definitions are appropriate for all platforms.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_FLOATN_COMMON_H
 #define _BITS_FLOATN_COMMON_H
@@ -56,6 +56,13 @@
 #define __HAVE_DISTINCT_FLOAT64X 0
 #define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
 
+/* Defined to 1 if the corresponding _FloatN type is not binary compatible
+   with the corresponding ISO C type in the current compilation unit as
+   opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
+   in glibc.  */
+#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128	\
+				     && __LDBL_MANT_DIG__ != 113)
+
 /* Defined to 1 if any _FloatN or _FloatNx types that are not
    ABI-distinct are however distinct types at the C language level (so
    for the purposes of __builtin_types_compatible_p and _Generic).  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn.h
index 1d21cce..da50ae7 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/floatn.h
@@ -1,5 +1,5 @@
 /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_FLOATN_H
 #define _BITS_FLOATN_H
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/flt-eval-method.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/flt-eval-method.h
index 7eed671..615e14c 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/flt-eval-method.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
 /* Define __GLIBC_FLT_EVAL_METHOD.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-fast.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-fast.h
index 3ce1221..c689f41 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-fast.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-fast.h
@@ -1,5 +1,5 @@
 /* Define FP_FAST_* macros.  AArch64 version.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-logb.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-logb.h
index 8b70a10..cd8b431 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-logb.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/fp-logb.h
@@ -1,5 +1,5 @@
 /* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/fp-logb.h> directly; include <math.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_core.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_core.h
index a13838f..1751a20 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_core.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_core.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt (basic, portable features only).
-   Copyright (C) 1989-2018 Free Software Foundation, Inc.
+   Copyright (C) 1989-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _GETOPT_CORE_H
 #define _GETOPT_CORE_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_ext.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_ext.h
index b4c68f1..d48069e 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_ext.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_ext.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt (GNU extensions).
-   Copyright (C) 1989-2018 Free Software Foundation, Inc.
+   Copyright (C) 1989-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _GETOPT_EXT_H
 #define _GETOPT_EXT_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_posix.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_posix.h
index 1f90e84..f49e1f3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_posix.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/getopt_posix.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt (POSIX compatibility shim).
-   Copyright (C) 1989-2018 Free Software Foundation, Inc.
+   Copyright (C) 1989-2021 Free Software Foundation, Inc.
    Unlike the bulk of the getopt implementation, this file is NOT part
    of gnulib.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _GETOPT_POSIX_H
 #define _GETOPT_POSIX_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/hwcap.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/hwcap.h
index 569eb07..30fda0a 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/hwcap.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/hwcap.h
@@ -1,5 +1,5 @@
 /* Defines for bits in AT_HWCAP.  AArch64 Linux version.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,13 +14,14 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #if !defined (_SYS_AUXV_H)
 # error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
 #endif
 
-/* The following must match the kernel's <asm/hwcap.h>.  */
+/* The following must match the kernel's <asm/hwcap.h> and update the
+   list together with sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c.  */
 #define HWCAP_FP		(1 << 0)
 #define HWCAP_ASIMD		(1 << 1)
 #define HWCAP_EVTSTRM		(1 << 2)
@@ -44,3 +45,32 @@
 #define HWCAP_ASIMDDP		(1 << 20)
 #define HWCAP_SHA512		(1 << 21)
 #define HWCAP_SVE		(1 << 22)
+#define HWCAP_ASIMDFHM		(1 << 23)
+#define HWCAP_DIT		(1 << 24)
+#define HWCAP_USCAT		(1 << 25)
+#define HWCAP_ILRCPC		(1 << 26)
+#define HWCAP_FLAGM		(1 << 27)
+#define HWCAP_SSBS		(1 << 28)
+#define HWCAP_SB		(1 << 29)
+#define HWCAP_PACA		(1 << 30)
+#define HWCAP_PACG		(1UL << 31)
+
+#define HWCAP2_DCPODP		(1 << 0)
+#define HWCAP2_SVE2		(1 << 1)
+#define HWCAP2_SVEAES		(1 << 2)
+#define HWCAP2_SVEPMULL		(1 << 3)
+#define HWCAP2_SVEBITPERM	(1 << 4)
+#define HWCAP2_SVESHA3		(1 << 5)
+#define HWCAP2_SVESM4		(1 << 6)
+#define HWCAP2_FLAGM2		(1 << 7)
+#define HWCAP2_FRINT		(1 << 8)
+#define HWCAP2_SVEI8MM		(1 << 9)
+#define HWCAP2_SVEF32MM		(1 << 10)
+#define HWCAP2_SVEF64MM		(1 << 11)
+#define HWCAP2_SVEBF16		(1 << 12)
+#define HWCAP2_I8MM		(1 << 13)
+#define HWCAP2_BF16		(1 << 14)
+#define HWCAP2_DGH		(1 << 15)
+#define HWCAP2_RNG		(1 << 16)
+#define HWCAP2_BTI		(1 << 17)
+#define HWCAP2_MTE		(1 << 18)
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/in.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/in.h
index fb64f1b..4c3c5ac 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/in.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* Linux version.  */
 
@@ -102,6 +102,7 @@
 #define IP_CHECKSUM     23
 #define IP_BIND_ADDRESS_NO_PORT 24
 #define IP_RECVFRAGSIZE 25
+#define IP_RECVERR_RFC4884 26
 
 /* IP_MTU_DISCOVER arguments.  */
 #define IP_PMTUDISC_DONT   0	/* Never send DF frames.  */
@@ -191,6 +192,9 @@
 #define IPV6_V6ONLY		26
 #define IPV6_JOIN_ANYCAST	27
 #define IPV6_LEAVE_ANYCAST	28
+#define IPV6_MULTICAST_ALL	29
+#define IPV6_ROUTER_ALERT_ISOLATE 30
+#define IPV6_RECVERR_RFC4884	31
 #define IPV6_IPSEC_POLICY	34
 #define IPV6_XFRM_POLICY	35
 #define IPV6_HDRINCL		36
@@ -228,6 +232,7 @@
 #define IPV6_TRANSPARENT	75
 #define IPV6_UNICAST_IF		76
 #define IPV6_RECVFRAGSIZE	77
+#define IPV6_FREEBIND		78
 
 /* Obsolete synonyms for the above.  */
 #if !__USE_KERNEL_IPV6_DEFS
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/indirect-return.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/indirect-return.h
new file mode 100644
index 0000000..5240a0a
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/indirect-return.h
@@ -0,0 +1,25 @@
+/* Definition of __INDIRECT_RETURN.  Generic version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _UCONTEXT_H
+# error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead."
+#endif
+
+/* __INDIRECT_RETURN is used on swapcontext to indicate if it requires
+   special compiler treatment.  */
+#define __INDIRECT_RETURN
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/inotify.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/inotify.h
index d160876..5eee3cc 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/inotify.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_SYS_INOTIFY_H
 # error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctl-types.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctl-types.h
index 28fd1db..508a0c3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctl-types.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctl-types.h
@@ -1,5 +1,5 @@
 /* Structure types for pre-termios terminal ioctls.  Linux version.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_IOCTL_H
 # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctls.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctls.h
index b719f6e..0e53bc7 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctls.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_IOCTL_H
 # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc-perm.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc-perm.h
new file mode 100644
index 0000000..17f81c4
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc-perm.h
@@ -0,0 +1,40 @@
+/* struct ipc_perm definition.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead."
+#endif
+
+/* Data structure used to pass permission information to IPC operations.
+   It follows the kernel ipc64_perm size so the syscall can be made directly
+   without temporary buffer copy.  However, since glibc defines the MODE
+   field as mode_t per POSIX definition (BZ#18231), it omits the __PAD1 field
+   (since glibc does not export mode_t as 16-bit for any architecture).  */
+struct ipc_perm
+{
+  __key_t __key;				/* Key.  */
+  __uid_t uid;					/* Owner's user ID.  */
+  __gid_t gid;					/* Owner's group ID.  */
+  __uid_t cuid;					/* Creator's user ID.  */
+  __gid_t cgid;					/* Creator's group ID.  */
+  __mode_t mode;				/* Read/write permission.  */
+  unsigned short int __seq;			/* Sequence number.  */
+  unsigned short int __pad2;
+  __syscall_ulong_t __glibc_reserved1;
+  __syscall_ulong_t __glibc_reserved2;
+};
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc.h
index d66cf44..5a0e2fc 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_IPC_H
 # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
@@ -37,18 +37,4 @@
 /* Special key values.  */
 #define IPC_PRIVATE	((__key_t) 0)	/* Private key.  */
 
-
-/* Data structure used to pass permission information to IPC operations.  */
-struct ipc_perm
-  {
-    __key_t __key;			/* Key.  */
-    __uid_t uid;			/* Owner's user ID.  */
-    __gid_t gid;			/* Owner's group ID.  */
-    __uid_t cuid;			/* Creator's user ID.  */
-    __gid_t cgid;			/* Creator's group ID.  */
-    unsigned int mode;			/* Read/write permission.  */
-    unsigned short int __seq;		/* Sequence number.  */
-    unsigned short int __pad1;
-    __syscall_ulong_t __glibc_reserved1;
-    __syscall_ulong_t __glibc_reserved2;
-  };
+#include <bits/ipc-perm.h>
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipctypes.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipctypes.h
index 1238801..454a1fd 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipctypes.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ipctypes.h
@@ -1,5 +1,5 @@
 /* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.  Generic.
-   Copyright (C) 2002-2018 Free Software Foundation, Inc.
+   Copyright (C) 2002-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include <bits/ipctypes.h> directly.
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/iscanonical.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/iscanonical.h
index 56934af..189dea3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/iscanonical.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/iscanonical.h
@@ -1,5 +1,5 @@
 /* Define iscanonical macro.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libc-header-start.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libc-header-start.h
index b4a429b..296e1ce 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libc-header-start.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libc-header-start.h
@@ -1,5 +1,5 @@
 /* Handle feature test macros at the start of a header.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* This header is internal to glibc and should not be included outside
    of glibc headers.  Headers including it must define
@@ -43,22 +43,38 @@
 #endif
 
 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
-   macro.  */
+   macro.  Most but not all symbols enabled by that macro in TS
+   18661-1 are enabled unconditionally in C2X; the symbols in Annex F
+   still require that macro in C2X.  */
 #undef __GLIBC_USE_IEC_60559_BFP_EXT
 #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__
 # define __GLIBC_USE_IEC_60559_BFP_EXT 1
 #else
 # define __GLIBC_USE_IEC_60559_BFP_EXT 0
 #endif
+#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X
+#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X)
+# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1
+#else
+# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0
+#endif
 
 /* ISO/IEC TS 18661-4:2015 defines the
-   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  */
+   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
+   functions, the symbols from this TS are enabled unconditionally in
+   C2X.  */
 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT
 #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
 #else
 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
 #endif
+#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X
+#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X)
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1
+#else
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0
+#endif
 
 /* ISO/IEC TS 18661-3:2015 defines the
    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio-ldbl.h
deleted file mode 100644
index aa39353..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio-ldbl.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -mlong-double-64 compatibility mode for libio functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_LIBIO_LDBL_H
-#define _BITS_LIBIO_LDBL_H 1
-
-#ifndef _BITS_LIBIO_H
-# error "Never include <bits/libio-ldbl.h> directly; use <libio.h> instead."
-#endif
-
-__LDBL_REDIR_DECL (_IO_vfscanf)
-__LDBL_REDIR_DECL (_IO_vfprintf)
-
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio.h
deleted file mode 100644
index fae5b93..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libio.h
+++ /dev/null
@@ -1,527 +0,0 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Written by Per Bothner <bothner@cygnus.com>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.
-
-   As a special exception, if you link the code in this file with
-   files compiled with a GNU compiler to produce an executable,
-   that does not cause the resulting executable to be covered by
-   the GNU Lesser General Public License.  This exception does not
-   however invalidate any other reasons why the executable file
-   might be covered by the GNU Lesser General Public License.
-   This exception applies to code released by its copyright holders
-   in files containing the exception.  */
-
-#ifndef _BITS_LIBIO_H
-#define _BITS_LIBIO_H 1
-
-#if !defined _STDIO_H && !defined _LIBIO_H
-# error "Never include <bits/libio.h> directly; use <stdio.h> instead."
-#endif
-
-#include <bits/_G_config.h>
-/* ALL of these should be defined in _G_config.h */
-#define _IO_fpos_t _G_fpos_t
-#define _IO_fpos64_t _G_fpos64_t
-#define _IO_size_t size_t
-#define _IO_ssize_t __ssize_t
-#define _IO_off_t __off_t
-#define _IO_off64_t __off64_t
-#define _IO_pid_t __pid_t
-#define _IO_uid_t __uid_t
-#define _IO_iconv_t _G_iconv_t
-#define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE
-#define _IO_BUFSIZ _G_BUFSIZ
-#define _IO_va_list _G_va_list
-#define _IO_wint_t wint_t
-
-/* This define avoids name pollution if we're using GNU stdarg.h */
-#define __need___va_list
-#include <stdarg.h>
-#ifdef __GNUC_VA_LIST
-# undef _IO_va_list
-# define _IO_va_list __gnuc_va_list
-#endif /* __GNUC_VA_LIST */
-
-#ifndef __P
-# include <sys/cdefs.h>
-#endif /*!__P*/
-
-#define _IO_UNIFIED_JUMPTABLES 1
-
-#ifndef EOF
-# define EOF (-1)
-#endif
-#ifndef NULL
-# if defined __GNUG__ && \
-    (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
-#  define NULL (__null)
-# else
-#  if !defined(__cplusplus)
-#   define NULL ((void*)0)
-#  else
-#   define NULL (0)
-#  endif
-# endif
-#endif
-
-#define _IOS_INPUT	1
-#define _IOS_OUTPUT	2
-#define _IOS_ATEND	4
-#define _IOS_APPEND	8
-#define _IOS_TRUNC	16
-#define _IOS_NOCREATE	32
-#define _IOS_NOREPLACE	64
-#define _IOS_BIN	128
-
-/* Magic numbers and bits for the _flags field.
-   The magic numbers use the high-order bits of _flags;
-   the remaining bits are available for variable flags.
-   Note: The magic numbers must all be negative if stdio
-   emulation is desired. */
-
-#define _IO_MAGIC 0xFBAD0000 /* Magic number */
-#define _OLD_STDIO_MAGIC 0xFABC0000 /* Emulate old stdio. */
-#define _IO_MAGIC_MASK 0xFFFF0000
-#define _IO_USER_BUF 1 /* User owns buffer; don't delete it on close. */
-#define _IO_UNBUFFERED 2
-#define _IO_NO_READS 4 /* Reading not allowed */
-#define _IO_NO_WRITES 8 /* Writing not allowd */
-#define _IO_EOF_SEEN 0x10
-#define _IO_ERR_SEEN 0x20
-#define _IO_DELETE_DONT_CLOSE 0x40 /* Don't call close(_fileno) on cleanup. */
-#define _IO_LINKED 0x80 /* Set if linked (using _chain) to streambuf::_list_all.*/
-#define _IO_IN_BACKUP 0x100
-#define _IO_LINE_BUF 0x200
-#define _IO_TIED_PUT_GET 0x400 /* Set if put and get pointer logicly tied. */
-#define _IO_CURRENTLY_PUTTING 0x800
-#define _IO_IS_APPENDING 0x1000
-#define _IO_IS_FILEBUF 0x2000
-#define _IO_BAD_SEEN 0x4000
-#define _IO_USER_LOCK 0x8000
-
-#define _IO_FLAGS2_MMAP 1
-#define _IO_FLAGS2_NOTCANCEL 2
-#ifdef _LIBC
-# define _IO_FLAGS2_FORTIFY 4
-#endif
-#define _IO_FLAGS2_USER_WBUF 8
-#ifdef _LIBC
-# define _IO_FLAGS2_SCANF_STD 16
-# define _IO_FLAGS2_NOCLOSE 32
-# define _IO_FLAGS2_CLOEXEC 64
-# define _IO_FLAGS2_NEED_LOCK 128
-#endif
-
-/* These are "formatting flags" matching the iostream fmtflags enum values. */
-#define _IO_SKIPWS 01
-#define _IO_LEFT 02
-#define _IO_RIGHT 04
-#define _IO_INTERNAL 010
-#define _IO_DEC 020
-#define _IO_OCT 040
-#define _IO_HEX 0100
-#define _IO_SHOWBASE 0200
-#define _IO_SHOWPOINT 0400
-#define _IO_UPPERCASE 01000
-#define _IO_SHOWPOS 02000
-#define _IO_SCIENTIFIC 04000
-#define _IO_FIXED 010000
-#define _IO_UNITBUF 020000
-#define _IO_STDIO 040000
-#define _IO_DONT_CLOSE 0100000
-#define _IO_BOOLALPHA 0200000
-
-
-struct _IO_jump_t;  struct _IO_FILE;
-
-/* During the build of glibc itself, _IO_lock_t will already have been
-   defined by internal headers.  */
-#ifndef _IO_lock_t_defined
-typedef void _IO_lock_t;
-#endif
-
-
-/* A streammarker remembers a position in a buffer. */
-
-struct _IO_marker {
-  struct _IO_marker *_next;
-  struct _IO_FILE *_sbuf;
-  /* If _pos >= 0
- it points to _buf->Gbase()+_pos. FIXME comment */
-  /* if _pos < 0, it points to _buf->eBptr()+_pos. FIXME comment */
-  int _pos;
-#if 0
-    void set_streampos(streampos sp) { _spos = sp; }
-    void set_offset(int offset) { _pos = offset; _spos = (streampos)(-2); }
-  public:
-    streammarker(streambuf *sb);
-    ~streammarker();
-    int saving() { return  _spos == -2; }
-    int delta(streammarker&);
-    int delta();
-#endif
-};
-
-/* This is the structure from the libstdc++ codecvt class.  */
-enum __codecvt_result
-{
-  __codecvt_ok,
-  __codecvt_partial,
-  __codecvt_error,
-  __codecvt_noconv
-};
-
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-/* The order of the elements in the following struct must match the order
-   of the virtual functions in the libstdc++ codecvt class.  */
-struct _IO_codecvt
-{
-  void (*__codecvt_destr) (struct _IO_codecvt *);
-  enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *,
-					     __mbstate_t *,
-					     const wchar_t *,
-					     const wchar_t *,
-					     const wchar_t **, char *,
-					     char *, char **);
-  enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *,
-						 __mbstate_t *, char *,
-						 char *, char **);
-  enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *,
-					    __mbstate_t *,
-					    const char *, const char *,
-					    const char **, wchar_t *,
-					    wchar_t *, wchar_t **);
-  int (*__codecvt_do_encoding) (struct _IO_codecvt *);
-  int (*__codecvt_do_always_noconv) (struct _IO_codecvt *);
-  int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *,
-			      const char *, const char *, _IO_size_t);
-  int (*__codecvt_do_max_length) (struct _IO_codecvt *);
-
-  _IO_iconv_t __cd_in;
-  _IO_iconv_t __cd_out;
-};
-
-/* Extra data for wide character streams.  */
-struct _IO_wide_data
-{
-  wchar_t *_IO_read_ptr;	/* Current read pointer */
-  wchar_t *_IO_read_end;	/* End of get area. */
-  wchar_t *_IO_read_base;	/* Start of putback+get area. */
-  wchar_t *_IO_write_base;	/* Start of put area. */
-  wchar_t *_IO_write_ptr;	/* Current put pointer. */
-  wchar_t *_IO_write_end;	/* End of put area. */
-  wchar_t *_IO_buf_base;	/* Start of reserve area. */
-  wchar_t *_IO_buf_end;		/* End of reserve area. */
-  /* The following fields are used to support backing up and undo. */
-  wchar_t *_IO_save_base;	/* Pointer to start of non-current get area. */
-  wchar_t *_IO_backup_base;	/* Pointer to first valid character of
-				   backup area */
-  wchar_t *_IO_save_end;	/* Pointer to end of non-current get area. */
-
-  __mbstate_t _IO_state;
-  __mbstate_t _IO_last_state;
-  struct _IO_codecvt _codecvt;
-
-  wchar_t _shortbuf[1];
-
-  const struct _IO_jump_t *_wide_vtable;
-};
-#endif
-
-struct _IO_FILE {
-  int _flags;		/* High-order word is _IO_MAGIC; rest is flags. */
-#define _IO_file_flags _flags
-
-  /* The following pointers correspond to the C++ streambuf protocol. */
-  /* Note:  Tk uses the _IO_read_ptr and _IO_read_end fields directly. */
-  char* _IO_read_ptr;	/* Current read pointer */
-  char* _IO_read_end;	/* End of get area. */
-  char* _IO_read_base;	/* Start of putback+get area. */
-  char* _IO_write_base;	/* Start of put area. */
-  char* _IO_write_ptr;	/* Current put pointer. */
-  char* _IO_write_end;	/* End of put area. */
-  char* _IO_buf_base;	/* Start of reserve area. */
-  char* _IO_buf_end;	/* End of reserve area. */
-  /* The following fields are used to support backing up and undo. */
-  char *_IO_save_base; /* Pointer to start of non-current get area. */
-  char *_IO_backup_base;  /* Pointer to first valid character of backup area */
-  char *_IO_save_end; /* Pointer to end of non-current get area. */
-
-  struct _IO_marker *_markers;
-
-  struct _IO_FILE *_chain;
-
-  int _fileno;
-#if 0
-  int _blksize;
-#else
-  int _flags2;
-#endif
-  _IO_off_t _old_offset; /* This used to be _offset but it's too small.  */
-
-#define __HAVE_COLUMN /* temporary */
-  /* 1+column number of pbase(); 0 is unknown. */
-  unsigned short _cur_column;
-  signed char _vtable_offset;
-  char _shortbuf[1];
-
-  /*  char* _save_gptr;  char* _save_egptr; */
-
-  _IO_lock_t *_lock;
-#ifdef _IO_USE_OLD_IO_FILE
-};
-
-struct _IO_FILE_complete
-{
-  struct _IO_FILE _file;
-#endif
-#if defined _G_IO_IO_FILE_VERSION && _G_IO_IO_FILE_VERSION == 0x20001
-  _IO_off64_t _offset;
-# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-  /* Wide character stream stuff.  */
-  struct _IO_codecvt *_codecvt;
-  struct _IO_wide_data *_wide_data;
-  struct _IO_FILE *_freeres_list;
-  void *_freeres_buf;
-# else
-  void *__pad1;
-  void *__pad2;
-  void *__pad3;
-  void *__pad4;
-# endif
-  size_t __pad5;
-  int _mode;
-  /* Make sure we don't get into trouble again.  */
-  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
-#endif
-};
-
-#ifndef __cplusplus
-typedef struct _IO_FILE _IO_FILE;
-#endif
-
-struct _IO_FILE_plus;
-
-extern struct _IO_FILE_plus _IO_2_1_stdin_;
-extern struct _IO_FILE_plus _IO_2_1_stdout_;
-extern struct _IO_FILE_plus _IO_2_1_stderr_;
-#ifndef _LIBC
-#define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_))
-#define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_))
-#define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_))
-#else
-extern _IO_FILE *_IO_stdin attribute_hidden;
-extern _IO_FILE *_IO_stdout attribute_hidden;
-extern _IO_FILE *_IO_stderr attribute_hidden;
-#endif
-
-
-/* Functions to do I/O and file management for a stream.  */
-
-/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
-   Return number of bytes read.  */
-typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
-
-/* Write N bytes pointed to by BUF to COOKIE.  Write all N bytes
-   unless there is an error.  Return number of bytes written.  If
-   there is an error, return 0 and do not write anything.  If the file
-   has been opened for append (__mode.__append set), then set the file
-   pointer to the end of the file and then do the write; if not, just
-   write at the current file pointer.  */
-typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
-				 size_t __n);
-
-/* Move COOKIE's file position to *POS bytes from the
-   beginning of the file (if W is SEEK_SET),
-   the current position (if W is SEEK_CUR),
-   or the end of the file (if W is SEEK_END).
-   Set *POS to the new file position.
-   Returns zero if successful, nonzero if not.  */
-typedef int __io_seek_fn (void *__cookie, _IO_off64_t *__pos, int __w);
-
-/* Close COOKIE.  */
-typedef int __io_close_fn (void *__cookie);
-
-
-#ifdef __USE_GNU
-/* User-visible names for the above.  */
-typedef __io_read_fn cookie_read_function_t;
-typedef __io_write_fn cookie_write_function_t;
-typedef __io_seek_fn cookie_seek_function_t;
-typedef __io_close_fn cookie_close_function_t;
-
-/* The structure with the cookie function pointers.  */
-typedef struct
-{
-  __io_read_fn *read;		/* Read bytes.  */
-  __io_write_fn *write;		/* Write bytes.  */
-  __io_seek_fn *seek;		/* Seek/tell file position.  */
-  __io_close_fn *close;		/* Close file.  */
-} _IO_cookie_io_functions_t;
-typedef _IO_cookie_io_functions_t cookie_io_functions_t;
-
-struct _IO_cookie_file;
-
-/* Initialize one of those.  */
-extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
-			     void *__cookie, _IO_cookie_io_functions_t __fns);
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int __underflow (_IO_FILE *);
-extern int __uflow (_IO_FILE *);
-extern int __overflow (_IO_FILE *, int);
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-extern _IO_wint_t __wunderflow (_IO_FILE *);
-extern _IO_wint_t __wuflow (_IO_FILE *);
-extern _IO_wint_t __woverflow (_IO_FILE *, _IO_wint_t);
-#endif
-
-#if  __GNUC__ >= 3
-# define _IO_BE(expr, res) __builtin_expect ((expr), res)
-#else
-# define _IO_BE(expr, res) (expr)
-#endif
-
-#define _IO_getc_unlocked(_fp) \
-       (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) \
-	? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
-#define _IO_peekc_unlocked(_fp) \
-       (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) \
-	  && __underflow (_fp) == EOF ? EOF \
-	: *(unsigned char *) (_fp)->_IO_read_ptr)
-#define _IO_putc_unlocked(_ch, _fp) \
-   (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) \
-    ? __overflow (_fp, (unsigned char) (_ch)) \
-    : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
-
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-# define _IO_getwc_unlocked(_fp) \
-  (_IO_BE ((_fp)->_wide_data == NULL					\
-	   || ((_fp)->_wide_data->_IO_read_ptr				\
-	       >= (_fp)->_wide_data->_IO_read_end), 0)			\
-   ? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++)
-# define _IO_putwc_unlocked(_wch, _fp) \
-  (_IO_BE ((_fp)->_wide_data == NULL					\
-	   || ((_fp)->_wide_data->_IO_write_ptr				\
-	       >= (_fp)->_wide_data->_IO_write_end), 0)			\
-   ? __woverflow (_fp, _wch)						\
-   : (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch)))
-#endif
-
-#define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0)
-#define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0)
-
-extern int _IO_getc (_IO_FILE *__fp);
-extern int _IO_putc (int __c, _IO_FILE *__fp);
-extern int _IO_feof (_IO_FILE *__fp) __THROW;
-extern int _IO_ferror (_IO_FILE *__fp) __THROW;
-
-extern int _IO_peekc_locked (_IO_FILE *__fp);
-
-/* This one is for Emacs. */
-#define _IO_PENDING_OUTPUT_COUNT(_fp)	\
-	((_fp)->_IO_write_ptr - (_fp)->_IO_write_base)
-
-extern void _IO_flockfile (_IO_FILE *) __THROW;
-extern void _IO_funlockfile (_IO_FILE *) __THROW;
-extern int _IO_ftrylockfile (_IO_FILE *) __THROW;
-
-#define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)
-#define _IO_flockfile(_fp) /**/
-#define _IO_funlockfile(_fp) /**/
-#define _IO_ftrylockfile(_fp) /**/
-#ifndef _IO_cleanup_region_start
-#define _IO_cleanup_region_start(_fct, _fp) /**/
-#endif
-#ifndef _IO_cleanup_region_end
-#define _IO_cleanup_region_end(_Doit) /**/
-#endif
-
-#define _IO_need_lock(_fp) \
-  (((_fp)->_flags2 & _IO_FLAGS2_NEED_LOCK) != 0)
-
-extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
-			_IO_va_list, int *__restrict);
-extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
-			 _IO_va_list);
-extern _IO_ssize_t _IO_padn (_IO_FILE *, int, _IO_ssize_t);
-extern _IO_size_t _IO_sgetn (_IO_FILE *, void *, _IO_size_t);
-
-extern _IO_off64_t _IO_seekoff (_IO_FILE *, _IO_off64_t, int, int);
-extern _IO_off64_t _IO_seekpos (_IO_FILE *, _IO_off64_t, int);
-
-extern void _IO_free_backup_area (_IO_FILE *) __THROW;
-
-#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
-extern _IO_wint_t _IO_getwc (_IO_FILE *__fp);
-extern _IO_wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp);
-extern int _IO_fwide (_IO_FILE *__fp, int __mode) __THROW;
-# if __GNUC__ >= 2
-/* While compiling glibc we have to handle compatibility with very old
-   versions.  */
-#  if defined _LIBC && defined SHARED
-#   include <shlib-compat.h>
-#   if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-#    define _IO_fwide_maybe_incompatible \
-  (__builtin_expect (&_IO_stdin_used == NULL, 0))
-extern const int _IO_stdin_used;
-weak_extern (_IO_stdin_used);
-#   endif
-#  endif
-#  ifndef _IO_fwide_maybe_incompatible
-#   define _IO_fwide_maybe_incompatible (0)
-#  endif
-/* A special optimized version of the function above.  It optimizes the
-   case of initializing an unoriented byte stream.  */
-#  define _IO_fwide(__fp, __mode) \
-  ({ int __result = (__mode);						      \
-     if (__result < 0 && ! _IO_fwide_maybe_incompatible)		      \
-       {								      \
-	 if ((__fp)->_mode == 0)					      \
-	   /* We know that all we have to do is to set the flag.  */	      \
-	   (__fp)->_mode = -1;						      \
-	 __result = (__fp)->_mode;					      \
-       }								      \
-     else if (__builtin_constant_p (__mode) && (__mode) == 0)		      \
-       __result = _IO_fwide_maybe_incompatible ? -1 : (__fp)->_mode;	      \
-     else								      \
-       __result = _IO_fwide (__fp, __result);				      \
-     __result; })
-# endif
-
-extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict,
-			 _IO_va_list, int *__restrict);
-extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict,
-			  _IO_va_list);
-extern _IO_ssize_t _IO_wpadn (_IO_FILE *, wint_t, _IO_ssize_t);
-extern void _IO_free_wbackup_area (_IO_FILE *) __THROW;
-#endif
-
-#ifdef __LDBL_COMPAT
-# include <bits/libio-ldbl.h>
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _BITS_LIBIO_H */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h
index 520b4bb..b80ff33 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/libm-simd-decl-stubs.h
@@ -1,5 +1,5 @@
 /* Empty definitions required for __MATHCALL_VEC unfolding in mathcalls.h.
-   Copyright (C) 2014-2018 Free Software Foundation, Inc.
+   Copyright (C) 2014-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never include <bits/libm-simd-decl-stubs.h> directly;\
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/link.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/link.h
index 5a7fc1c..774bbe5 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/link.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_LINK_H
 # error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/local_lim.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/local_lim.h
index 37aab9a..0652bf4 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/local_lim.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/local_lim.h
@@ -1,5 +1,5 @@
 /* Minimum guaranteed maximum values for system limits.  Linux version.
-   Copyright (C) 1993-2018 Free Software Foundation, Inc.
+   Copyright (C) 1993-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* The kernel header pollutes the namespace with the NR_OPEN symbol
    and defines LINK_MAX although filesystems have different maxima.  A
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/locale.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/locale.h
index 3a3d921..cc8e980 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/locale.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/locale.h
@@ -1,5 +1,5 @@
 /* Definition of locale category symbol values.
-   Copyright (C) 2001-2018 Free Software Foundation, Inc.
+   Copyright (C) 2001-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #if !defined _LOCALE_H && !defined _LANGINFO_H
 # error "Never use <bits/locale.h> directly; include <locale.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/long-double.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/long-double.h
index 3d6e113..55d2009 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/long-double.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/long-double.h
@@ -1,5 +1,5 @@
 /* Properties of long double type.  ldbl-128 version.
-   Copyright (C) 2016-2018 Free Software Foundation, Inc.
+   Copyright (C) 2016-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,8 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* long double is distinct from double, so there is nothing to
    define here.  */
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-finite.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-finite.h
deleted file mode 100644
index 0799fe7..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-finite.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Entry points to finite-math-only compiler runs.
-   Copyright (C) 2011-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MATH_H
-# error "Never use <bits/math-finite.h> directly; include <math.h> instead."
-#endif
-
-#define __REDIRFROM(...) __REDIRFROM_X(__VA_ARGS__)
-
-#define __REDIRTO(...) __REDIRTO_X(__VA_ARGS__)
-
-#define __MATH_REDIRCALL_X(from, args, to) \
-  extern _Mdouble_ __REDIRECT_NTH (from, args, to)
-#define __MATH_REDIRCALL(function, reentrant, args) \
-  __MATH_REDIRCALL_X \
-   (__REDIRFROM (function, reentrant), args, \
-    __REDIRTO (function, reentrant))
-#define __MATH_REDIRCALL_2(from, reentrant, args, to) \
-  __MATH_REDIRCALL_X \
-   (__REDIRFROM (from, reentrant), args, \
-    __REDIRTO (to, reentrant))
-
-#define __MATH_REDIRCALL_INTERNAL(function, reentrant, args) \
-  __MATH_REDIRCALL_X \
-   (__REDIRFROM (__CONCAT (__, function), \
-		 __CONCAT (reentrant, _finite)), \
-    args, __REDIRTO (function, _r))
-
-
-/* acos.  */
-__MATH_REDIRCALL (acos, , (_Mdouble_));
-
-#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-/* acosh.  */
-__MATH_REDIRCALL (acosh, , (_Mdouble_));
-#endif
-
-/* asin.  */
-__MATH_REDIRCALL (asin, , (_Mdouble_));
-
-/* atan2.  */
-__MATH_REDIRCALL (atan2, , (_Mdouble_, _Mdouble_));
-
-#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-/* atanh.  */
-__MATH_REDIRCALL (atanh, , (_Mdouble_));
-#endif
-
-/* cosh.  */
-__MATH_REDIRCALL (cosh, , (_Mdouble_));
-
-/* exp.  */
-__MATH_REDIRCALL (exp, , (_Mdouble_));
-
-#if __GLIBC_USE (IEC_60559_FUNCS_EXT)
-/* exp10.  */
-__MATH_REDIRCALL (exp10, , (_Mdouble_));
-#endif
-
-#ifdef __USE_ISOC99
-/* exp2.  */
-__MATH_REDIRCALL (exp2, , (_Mdouble_));
-#endif
-
-/* fmod.  */
-__MATH_REDIRCALL (fmod, , (_Mdouble_, _Mdouble_));
-
-#if defined __USE_XOPEN || defined __USE_ISOC99
-/* hypot.  */
-__MATH_REDIRCALL (hypot, , (_Mdouble_, _Mdouble_));
-#endif
-
-#if (__MATH_DECLARING_DOUBLE && (defined __USE_MISC || defined __USE_XOPEN)) \
-    || (!__MATH_DECLARING_DOUBLE && defined __USE_MISC)
-/* j0.  */
-__MATH_REDIRCALL (j0, , (_Mdouble_));
-
-/* y0.  */
-__MATH_REDIRCALL (y0, , (_Mdouble_));
-
-/* j1.  */
-__MATH_REDIRCALL (j1, , (_Mdouble_));
-
-/* y1.  */
-__MATH_REDIRCALL (y1, , (_Mdouble_));
-
-/* jn.  */
-__MATH_REDIRCALL (jn, , (int, _Mdouble_));
-
-/* yn.  */
-__MATH_REDIRCALL (yn, , (int, _Mdouble_));
-#endif
-
-#ifdef __USE_MISC
-/* lgamma_r.  */
-__MATH_REDIRCALL (lgamma, _r, (_Mdouble_, int *));
-#endif
-
-/* Redirect __lgammal_r_finite to __lgamma_r_finite when __NO_LONG_DOUBLE_MATH
-   is set and to itself otherwise.  It also redirects __lgamma_r_finite and
-   __lgammaf_r_finite to themselves.  */
-__MATH_REDIRCALL_INTERNAL (lgamma, _r, (_Mdouble_, int *));
-
-#if ((defined __USE_XOPEN || defined __USE_ISOC99) \
-     && defined __extern_always_inline)
-/* lgamma.  */
-__extern_always_inline _Mdouble_
-__NTH (__REDIRFROM (lgamma, ) (_Mdouble_ __d))
-{
-# if defined __USE_MISC || defined __USE_XOPEN
-  return __REDIRTO (lgamma, _r) (__d, &signgam);
-# else
-  int __local_signgam = 0;
-  return __REDIRTO (lgamma, _r) (__d, &__local_signgam);
-# endif
-}
-#endif
-
-#if ((defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)) \
-     && defined __extern_always_inline) && !__MATH_DECLARING_FLOATN
-/* gamma.  */
-__extern_always_inline _Mdouble_
-__NTH (__REDIRFROM (gamma, ) (_Mdouble_ __d))
-{
-  return __REDIRTO (lgamma, _r) (__d, &signgam);
-}
-#endif
-
-/* log.  */
-__MATH_REDIRCALL (log, , (_Mdouble_));
-
-/* log10.  */
-__MATH_REDIRCALL (log10, , (_Mdouble_));
-
-#ifdef __USE_ISOC99
-/* log2.  */
-__MATH_REDIRCALL (log2, , (_Mdouble_));
-#endif
-
-/* pow.  */
-__MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_));
-
-#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-/* remainder.  */
-__MATH_REDIRCALL (remainder, , (_Mdouble_, _Mdouble_));
-#endif
-
-#if ((__MATH_DECLARING_DOUBLE \
-      && (defined __USE_MISC \
-	  || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8))) \
-     || (!defined __MATH_DECLARE_LDOUBLE && defined __USE_MISC)) \
-    && !__MATH_DECLARING_FLOATN
-/* scalb.  */
-__MATH_REDIRCALL (scalb, , (_Mdouble_, _Mdouble_));
-#endif
-
-/* sinh.  */
-__MATH_REDIRCALL (sinh, , (_Mdouble_));
-
-/* sqrt.  */
-__MATH_REDIRCALL (sqrt, , (_Mdouble_));
-
-#if defined __USE_ISOC99 && defined __extern_always_inline
-/* tgamma.  */
-extern _Mdouble_
-__REDIRFROM (__gamma, _r_finite) (_Mdouble_, int *);
-
-__extern_always_inline _Mdouble_
-__NTH (__REDIRFROM (tgamma, ) (_Mdouble_ __d))
-{
-  int __local_signgam = 0;
-  _Mdouble_ __res = __REDIRTO (gamma, _r) (__d, &__local_signgam);
-  return __local_signgam < 0 ? -__res : __res;
-}
-#endif
-
-#undef __REDIRFROM
-#undef __REDIRTO
-#undef __MATH_REDIRCALL
-#undef __MATH_REDIRCALL_2
-#undef __MATH_REDIRCALL_INTERNAL
-#undef __MATH_REDIRCALL_X
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-vector.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-vector.h
index 318d3eb..5f964ab 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-vector.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/math-vector.h
@@ -1,5 +1,5 @@
 /* Platform-specific SIMD declarations of math functions.
-   Copyright (C) 2014-2018 Free Software Foundation, Inc.
+   Copyright (C) 2014-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MATH_H
 # error "Never include <bits/math-vector.h> directly;\
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-helper-functions.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-helper-functions.h
index ac3115b..3c44c78 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-helper-functions.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-helper-functions.h
@@ -1,5 +1,5 @@
 /* Prototype declarations for math classification macros helpers.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,30 +14,32 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
+   <https://www.gnu.org/licenses/>.  */
 
 /* Classify given number.  */
-__MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value))
+__MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify)
      __attribute__ ((__const__));
 
 /* Test for negative number.  */
-__MATHDECL_1 (int, __signbit,, (_Mdouble_ __value))
+__MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit)
      __attribute__ ((__const__));
 
 /* Return 0 if VALUE is finite or NaN, +1 if it
    is +Infinity, -1 if it is -Infinity.  */
-__MATHDECL_1 (int, __isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf)
+  __attribute__ ((__const__));
 
 /* Return nonzero if VALUE is finite and not NaN.  Used by isfinite macro.  */
-__MATHDECL_1 (int, __finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite)
+  __attribute__ ((__const__));
 
 /* Return nonzero if VALUE is not a number.  */
-__MATHDECL_1 (int, __isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan)
+  __attribute__ ((__const__));
 
 /* Test equality.  */
-__MATHDECL_1 (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y));
+__MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig);
 
 /* Test for signaling NaN.  */
-__MATHDECL_1 (int, __issignaling,, (_Mdouble_ __value))
+__MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling)
      __attribute__ ((__const__));
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-narrow.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-narrow.h
new file mode 100644
index 0000000..4f28f41
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls-narrow.h
@@ -0,0 +1,33 @@
+/* Declare functions returning a narrower type.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never include <bits/mathcalls-narrow.h> directly; include <math.h> instead."
+#endif
+
+/* Add.  */
+__MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2);
+
+/* Divide.  */
+__MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2);
+
+/* Multiply.  */
+__MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2);
+
+/* Subtract.  */
+__MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2);
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls.h
index 9200363..2361dd3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathcalls.h
@@ -1,5 +1,5 @@
 /* Prototype declarations for math functions; helper file for <math.h>.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* NOTE: Because of the special way this file is used by <math.h>, this
    file must NOT be protected from multiple inclusion as header files
@@ -109,7 +109,7 @@
 /* Break VALUE into integral and fractional parts.  */
 __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
 
-#if __GLIBC_USE (IEC_60559_FUNCS_EXT)
+#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)
 /* Compute exponent to base ten.  */
 __MATHCALL (exp10,, (_Mdouble_ __x));
 #endif
@@ -174,12 +174,14 @@
       && !__MATH_DECLARING_FLOATN
 /* Return 0 if VALUE is finite or NaN, +1 if it
    is +Infinity, -1 if it is -Infinity.  */
-__MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf)
+  __attribute__ ((__const__));
 # endif
 
 # if !__MATH_DECLARING_FLOATN
 /* Return nonzero if VALUE is finite and not NaN.  */
-__MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite)
+  __attribute__ ((__const__));
 
 /* Return the remainder of X/Y.  */
 __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y));
@@ -198,7 +200,7 @@
 
 #ifdef __USE_ISOC99
 /* Return representation of qNaN for double type.  */
-__MATHCALLX (nan,, (const char *__tagb), (__const__));
+__MATHCALL (nan,, (const char *__tagb));
 #endif
 
 
@@ -208,7 +210,8 @@
        || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't.  */ \
       && !__MATH_DECLARING_FLOATN
 /* Return nonzero if VALUE is not a number.  */
-__MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
+__MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan)
+  __attribute__ ((__const__));
 # endif
 #endif
 
@@ -261,7 +264,7 @@
 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y));
 # endif
 
-# if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+# if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
 /* Return X - epsilon.  */
 __MATHCALL (nextdown,, (_Mdouble_ __x));
 /* Return X + epsilon.  */
@@ -280,7 +283,7 @@
 __MATHDECL (int,ilogb,, (_Mdouble_ __x));
 #endif
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
 /* Like ilogb, but returning long int.  */
 __MATHDECL (long int, llogb,, (_Mdouble_ __x));
 #endif
@@ -335,7 +338,7 @@
 __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
 #endif /* Use ISO C99.  */
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
 /* Round X to nearest integer value, rounding halfway cases to even.  */
 __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__));
 
@@ -367,16 +370,20 @@
 /* Return value with minimum magnitude.  */
 __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
 
-/* Total order operation.  */
-__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
-     __attribute__ ((__const__));
-
-/* Total order operation on absolute values.  */
-__MATHDECL_1 (int, totalordermag,, (_Mdouble_ __x, _Mdouble_ __y))
-     __attribute__ ((__const__));
-
 /* Canonicalize floating-point representation.  */
 __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
+#endif
+
+#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+/* Total order operation.  */
+__MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x,
+				 const _Mdouble_ *__y))
+     __attribute_pure__;
+
+/* Total order operation on absolute values.  */
+__MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x,
+				    const _Mdouble_ *__y))
+     __attribute_pure__;
 
 /* Get NaN payload.  */
 __MATHCALL (getpayload,, (const _Mdouble_ *__x));
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathdef.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathdef.h
index 8fbf7e6..765b002 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathdef.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <complex.h> instead"
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathinline.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathinline.h
deleted file mode 100644
index 02ec21b..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mathinline.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This file should provide inline versions of math functions.
-
-   Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'.
-
-   This file should define __MATH_INLINES if functions are actually defined as
-   inlines.  */
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-/* Here goes the real code.  */
-
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-linux.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-linux.h
index e61212a..3b1ae41 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-linux.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-linux.h
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux generic version.
-   Copyright (C) 2001-2018 Free Software Foundation, Inc.
+   Copyright (C) 2001-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_MMAN_H
 # error "Never use <bits/mman-linux.h> directly; include <sys/mman.h> instead."
@@ -42,6 +42,8 @@
 #define MAP_SHARED	0x01		/* Share changes.  */
 #define MAP_PRIVATE	0x02		/* Changes are private.  */
 #ifdef __USE_MISC
+# define MAP_SHARED_VALIDATE	0x03	/* Share changes and validate
+					   extension flags.  */
 # define MAP_TYPE	0x0f		/* Mask for type of mapping.  */
 #endif
 
@@ -65,12 +67,6 @@
 #define MS_SYNC		4		/* Synchronous memory sync.  */
 #define MS_INVALIDATE	2		/* Invalidate the caches.  */
 
-/* Flags for `mremap'.  */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE	1
-# define MREMAP_FIXED	2
-#endif
-
 /* Advice to `madvise'.  */
 #ifdef __USE_MISC
 # define MADV_NORMAL	  0	/* No further special treatment.  */
@@ -91,6 +87,8 @@
 # define MADV_DODUMP	  17	/* Clear the MADV_DONTDUMP flag.  */
 # define MADV_WIPEONFORK  18	/* Zero memory on fork, child only.  */
 # define MADV_KEEPONFORK  19	/* Undo MADV_WIPEONFORK.  */
+# define MADV_COLD        20	/* Deactivate these pages.  */
+# define MADV_PAGEOUT     21	/* Reclaim these pages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-map-flags-generic.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-map-flags-generic.h
new file mode 100644
index 0000000..cadf2d1
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-map-flags-generic.h
@@ -0,0 +1,42 @@
+/* Definitions for POSIX memory map interface.  Linux/generic version.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman-map-flags-generic.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* These definitions are appropriate for architectures that, in the
+   Linux kernel, either have no uapi/asm/mman.h, or have one that
+   includes asm-generic/mman.h without any changes to the values of
+   the MAP_* flags defined in that header.  */
+
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN	0x00100		/* Stack-like segment.  */
+# define MAP_DENYWRITE	0x00800		/* ETXTBSY.  */
+# define MAP_EXECUTABLE	0x01000		/* Mark it as an executable.  */
+# define MAP_LOCKED	0x02000		/* Lock the mapping.  */
+# define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */
+# define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */
+# define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
+# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
+# define MAP_HUGETLB	0x40000		/* Create huge page mapping.  */
+# define MAP_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
+# define MAP_FIXED_NOREPLACE 0x100000	/* MAP_FIXED but do not unmap
+					   underlying mapping.  */
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-shared.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-shared.h
index d15ba95..f336db0 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-shared.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman-shared.h
@@ -1,5 +1,5 @@
 /* Memory-mapping-related declarations/definitions, not architecture-specific.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,13 +14,18 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_MMAN_H
 # error "Never use <bits/mman-shared.h> directly; include <sys/mman.h> instead."
 #endif
 
 #ifdef __USE_GNU
+/* Flags for mremap.  */
+# define MREMAP_MAYMOVE	1
+# define MREMAP_FIXED	2
+# define MREMAP_DONTUNMAP 4
+
 /* Flags for memfd_create.  */
 # ifndef MFD_CLOEXEC
 #  define MFD_CLOEXEC 1U
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman.h
index 83ff48c..fe54885 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mman.h
@@ -1,7 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/AArch64 version.
-
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
-
+   Copyright (C) 2020-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,30 +13,20 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_MMAN_H
 # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
 #endif
 
-/* The following definitions basically come from the kernel headers.
-   But the kernel header is not namespace clean.  */
+/* AArch64 specific definitions, should be in sync with
+   arch/arm64/include/uapi/asm/mman.h.  */
 
-/* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN	0x00100		/* Stack-like segment.  */
-# define MAP_DENYWRITE	0x00800		/* ETXTBSY */
-# define MAP_EXECUTABLE	0x01000		/* Mark it as an executable.  */
-# define MAP_LOCKED	0x02000		/* Lock the mapping.  */
-# define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */
-# define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */
-# define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
-# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
-# define MAP_HUGETLB	0x40000		/* Create huge page mapping.  */
-#endif
+#define PROT_BTI	0x10
+#define PROT_MTE	0x20
 
-
+#include <bits/mman-map-flags-generic.h>
 
 /* Include generic Linux declarations.  */
 #include <bits/mman-linux.h>
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/monetary-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/monetary-ldbl.h
index 8d86782..46629a3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/monetary-ldbl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/monetary-ldbl.h
@@ -1,5 +1,5 @@
 /* -mlong-double-64 compatibility mode for monetary functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MONETARY_H
 # error "Never include <bits/monetary-ldbl.h> directly; use <monetary.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue.h
index 321e1c3..c64be90 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _MQUEUE_H
 # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue2.h
index 95bf8d2..4039443 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/mqueue2.h
@@ -1,5 +1,5 @@
 /* Checking macros for mq functions.
-   Copyright (C) 2007-2018 Free Software Foundation, Inc.
+   Copyright (C) 2007-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_FCNTL_H
 # error "Never include <bits/mqueue2.h> directly; use <mqueue.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/msq.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/msq.h
index 1f57065..3313b69 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/msq.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/msq.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -13,15 +12,20 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_MSG_H
 # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
 #endif
 
 #include <bits/types.h>
-#include <bits/wordsize.h>
+
+/* Types used in the MSQID_DS structure definition.  */
+typedef __syscall_ulong_t msgqnum_t;
+typedef __syscall_ulong_t msglen_t;
+
+#include <bits/types/struct_msqid_ds.h>
 
 /* Define options for message queue functions.  */
 #define MSG_NOERROR	010000	/* no error if message is too big */
@@ -30,36 +34,6 @@
 # define MSG_COPY	040000	/* copy (not remove) all queue messages */
 #endif
 
-/* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-/* Structure of record for one message inside the kernel.
-   The type `struct msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;	/* structure describing operation permission */
-  __time_t msg_stime;		/* time of last msgsnd command */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved1;
-#endif
-  __time_t msg_rtime;		/* time of last msgrcv command */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved2;
-#endif
-  __time_t msg_ctime;		/* time of last change */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved3;
-#endif
-  unsigned long int __msg_cbytes; /* current number of bytes on queue */
-  msgqnum_t msg_qnum;		/* number of messages currently on queue */
-  msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
-  __pid_t msg_lspid;		/* pid of last msgsnd() */
-  __pid_t msg_lrpid;		/* pid of last msgrcv() */
-  unsigned long int __glibc_reserved4;
-  unsigned long int __glibc_reserved5;
-};
-
 #ifdef __USE_MISC
 
 # define msg_cbytes	__msg_cbytes
@@ -67,6 +41,7 @@
 /* ipcs ctl commands */
 # define MSG_STAT 11
 # define MSG_INFO 12
+# define MSG_STAT_ANY 13
 
 /* buffer for msgctl calls IPC_INFO, MSG_INFO */
 struct msginfo
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/netdb.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/netdb.h
index dcac854..ecabaaa 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/netdb.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/netdb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _NETDB_H
 # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/param.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/param.h
index 03486c1..9408786 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/param.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/param.h
@@ -1,5 +1,5 @@
 /* Old-style Unix parameters and limits.  Linux version.
-   Copyright (C) 1995-2018 Free Software Foundation, Inc.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_PARAM_H
 # error "Never use <bits/param.h> directly; include <sys/param.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll.h
index 4bd9db6..8442d50 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_POLL_H
 # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll2.h
index cc420df..d7320e8 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/poll2.h
@@ -1,5 +1,5 @@
 /* Checking macros for poll functions.
-   Copyright (C) 2012-2018 Free Software Foundation, Inc.
+   Copyright (C) 2012-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_POLL_H
 # error "Never include <bits/poll2.h> directly; use <sys/poll.h> instead."
@@ -36,8 +36,8 @@
 					sizeof (*__fds),
 					"poll called with fds buffer too small")
 {
-  if (__FORTIFY_CALL_CHK && __bos (__fds) != (__SIZE_TYPE__) -1)
-    return __poll_chk (__fds, __nfds, __timeout, __bos (__fds));
+  if (__FORTIFY_CALL_CHK && __glibc_objsize (__fds) != (__SIZE_TYPE__) -1)
+    return __poll_chk (__fds, __nfds, __timeout, __glibc_objsize (__fds));
   return __poll_alias (__fds, __nfds, __timeout);
 }
 __FORTIFY_FUNCTION_END
@@ -59,8 +59,9 @@
 					"ppoll called with fds buffer too "
 					"small file nfds entries")
 {
-  if (__FORTIFY_CALL_CHK && __bos (__fds) != (__SIZE_TYPE__) -1)
-    return __ppoll_chk (__fds, __nfds, __timeout, __ss, __bos (__fds));
+  if (__FORTIFY_CALL_CHK && __glibc_objsize (__fds) != (__SIZE_TYPE__) -1)
+    return __ppoll_chk (__fds, __nfds, __timeout, __ss,
+			__glibc_objsize (__fds));
   return __ppoll_alias (__fds, __nfds, __timeout, __ss);
 }
 __FORTIFY_FUNCTION_END
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix1_lim.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix1_lim.h
index 90066ff..c645847 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix1_lim.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix1_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  *	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
@@ -24,6 +24,7 @@
 #ifndef	_BITS_POSIX1_LIM_H
 #define	_BITS_POSIX1_LIM_H	1
 
+#include <bits/wordsize.h>
 
 /* These are the standard-mandated minimum values.  */
 
@@ -161,7 +162,14 @@
 
 
 #ifndef	SSIZE_MAX
-# define SSIZE_MAX	LONG_MAX
+/* ssize_t is not formally required to be the signed type
+   corresponding to size_t, but it is for all configurations supported
+   by glibc.  */
+# if __WORDSIZE == 64 || __WORDSIZE32_SIZE_ULONG
+#  define SSIZE_MAX	LONG_MAX
+# else
+#  define SSIZE_MAX	INT_MAX
+# endif
 #endif
 
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix2_lim.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix2_lim.h
index c460ea2..7ac13cb 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix2_lim.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix2_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include this file directly; include <limits.h> instead.
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix_opt.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix_opt.h
index 2339d4a..4d7d634 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix_opt.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/posix_opt.h
@@ -1,5 +1,5 @@
 /* Define POSIX options for Linux.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
+   not, see <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_BITS_POSIX_OPT_H
 #define	_BITS_POSIX_OPT_H	1
@@ -25,7 +25,10 @@
 /* Processes have a saved set-user-ID and a saved set-group-ID.  */
 #define	_POSIX_SAVED_IDS	1
 
-/* Priority scheduling is supported.  */
+/* Priority scheduling is not supported with the correct semantics,
+   but GNU/Linux applications expect that the corresponding interfaces
+   are available, even though the semantics do not meet the POSIX
+   requirements.  See glibc bug 14829.  */
 #define	_POSIX_PRIORITY_SCHEDULING	200809L
 
 /* Synchronizing file data is supported.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/printf-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/printf-ldbl.h
index d61a682..b4719f3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/printf-ldbl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/printf-ldbl.h
@@ -1,5 +1,5 @@
 /* -mlong-double-64 compatibility mode for <printf.h> functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _PRINTF_H
 # error "Never include <bits/printf-ldbl.h> directly; use <printf.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-extra.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-extra.h
new file mode 100644
index 0000000..f33b0bb
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-extra.h
@@ -0,0 +1,22 @@
+/* Extra sys/procfs.h definitions.  Generic Linux version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead."
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-id.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-id.h
new file mode 100644
index 0000000..fd09f2b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-id.h
@@ -0,0 +1,25 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo.  Generic Linux version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned int __pr_uid_t;
+typedef unsigned int __pr_gid_t;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-prregset.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-prregset.h
new file mode 100644
index 0000000..f0409f6
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs-prregset.h
@@ -0,0 +1,25 @@
+/* Types of prgregset_t and prfpregset_t.  Generic Linux version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-prregset.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef elf_gregset_t __prgregset_t;
+typedef elf_fpregset_t __prfpregset_t;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs.h
new file mode 100644
index 0000000..6b60289
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/procfs.h
@@ -0,0 +1,35 @@
+/* Types for registers for sys/procfs.h.  AArch64 version.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register.  */
+typedef __uint64_t elf_greg_t;
+
+/* And the whole bunch of them.  We could have used `struct
+   pt_regs' directly in the typedef, but tradition says that
+   the register set is an array, which does have some peculiar
+   semantics, so leave it that way.  */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers.  */
+typedef struct user_fpsimd_struct elf_fpregset_t;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes-arch.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes-arch.h
index 008aa7e..a0a3077 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes-arch.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -14,12 +14,12 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_PTHREADTYPES_ARCH_H
 #define _BITS_PTHREADTYPES_ARCH_H	1
 
-#include <endian.h>
+#include <bits/endian.h>
 
 #ifdef __ILP32__
 # define __SIZEOF_PTHREAD_ATTR_T        32
@@ -41,31 +41,7 @@
 #define __SIZEOF_PTHREAD_COND_T         48
 #define __SIZEOF_PTHREAD_RWLOCKATTR_T	8
 
-/* Definitions for internal mutex struct.  */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION	0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND  0
-#define __PTHREAD_MUTEX_USE_UNION          0
-
 #define __LOCK_ALIGNMENT
 #define __ONCE_ALIGNMENT
 
-struct __pthread_rwlock_arch_t
-{
-  unsigned int __readers;
-  unsigned int __writers;
-  unsigned int __wrphase_futex;
-  unsigned int __writers_futex;
-  unsigned int __pad3;
-  unsigned int __pad4;
-  int __cur_writer;
-  int __shared;
-  unsigned long int __pad1;
-  unsigned long int __pad2;
-  unsigned int __flags;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
 #endif	/* bits/pthreadtypes.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes.h
index 70ce0a0..4d4a255 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
 /* Declaration of common pthread types for all architectures.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_PTHREADTYPES_COMMON_H
 # define _BITS_PTHREADTYPES_COMMON_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ptrace-shared.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ptrace-shared.h
index 03a7791..7d40634 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ptrace-shared.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ptrace-shared.h
@@ -1,6 +1,6 @@
 /* `ptrace' debugger support interface.  Linux version,
    not architecture-specific.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -16,7 +16,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_PTRACE_H
 # error "Never use <bits/ptrace-shared.h> directly; include <sys/ptrace.h> instead."
@@ -52,6 +52,15 @@
   PTRACE_EVENT_STOP	= 128
 };
 
+/* Type of stop for PTRACE_GET_SYSCALL_INFO.  */
+enum __ptrace_get_syscall_info_op
+{
+  PTRACE_SYSCALL_INFO_NONE = 0,
+  PTRACE_SYSCALL_INFO_ENTRY = 1,
+  PTRACE_SYSCALL_INFO_EXIT = 2,
+  PTRACE_SYSCALL_INFO_SECCOMP = 3
+};
+
 /* Arguments for PTRACE_PEEKSIGINFO.  */
 struct __ptrace_peeksiginfo_args
 {
@@ -73,6 +82,44 @@
   __uint64_t flags;		/* Output: filter's flags.  */
 };
 
+/* Results of PTRACE_GET_SYSCALL_INFO.  */
+struct __ptrace_syscall_info
+{
+  __uint8_t op;			/* One of the enum
+				   __ptrace_get_syscall_info_op
+				   values.  */
+  __uint32_t arch __attribute__ ((__aligned__ (4))); /* AUDIT_ARCH_*
+							value.  */
+  __uint64_t instruction_pointer; /* Instruction pointer.  */
+  __uint64_t stack_pointer;	/* Stack pointer.  */
+  union
+  {
+    /* System call number and arguments, for
+       PTRACE_SYSCALL_INFO_ENTRY.  */
+    struct
+    {
+      __uint64_t nr;
+      __uint64_t args[6];
+    } entry;
+    /* System call return value and error flag, for
+       PTRACE_SYSCALL_INFO_EXIT.  */
+    struct
+    {
+      __int64_t rval;
+      __uint8_t is_error;
+    } exit;
+    /* System call number, arguments and SECCOMP_RET_DATA portion of
+       SECCOMP_RET_TRACE return value, for
+       PTRACE_SYSCALL_INFO_SECCOMP.  */
+    struct
+    {
+      __uint64_t nr;
+      __uint64_t args[6];
+      __uint32_t ret_data;
+    } seccomp;
+  };
+};
+
 /* Perform process tracing functions.  REQUEST is one of the values
    above, and determines the action to be taken.
    For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/resource.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/resource.h
index fafbadf..6b92df8 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/resource.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/resource.h
@@ -1,5 +1,5 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994-2018 Free Software Foundation, Inc.
+   Copyright (C) 1994-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_RESOURCE_H
 # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
@@ -98,7 +98,7 @@
   __RLIMIT_RTPRIO = 14,
 #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
 
-  /* Maximum CPU time in µs that a process scheduled under a real-time
+  /* Maximum CPU time in microseconds that a process scheduled under a real-time
      scheduling policy may consume without making a blocking system
      call before being forcibly descheduled.  */
   __RLIMIT_RTTIME = 15,
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sched.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sched.h
index 24159c5..cd450fd 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sched.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sched.h
@@ -1,6 +1,6 @@
 /* Definitions of constants and data structure for POSIX 1003.1b-1993
    scheduling interface.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SCHED_H
 #define _BITS_SCHED_H 1
@@ -44,6 +44,8 @@
 # define CLONE_FS      0x00000200 /* Set if fs info shared between processes.  */
 # define CLONE_FILES   0x00000400 /* Set if open files shared between processes.  */
 # define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared.  */
+# define CLONE_PIDFD   0x00001000 /* Set if a pidfd should be placed
+				     in parent.  */
 # define CLONE_PTRACE  0x00002000 /* Set if tracing continues on the child.  */
 # define CLONE_VFORK   0x00004000 /* Set if the parent wants the child to
 				     wake it up on mm_release.  */
@@ -71,11 +73,7 @@
 # define CLONE_IO	0x80000000	/* Clone I/O context.  */
 #endif
 
-/* Data structure to describe a process' schedulability.  */
-struct sched_param
-{
-  int sched_priority;
-};
+#include <bits/types/struct_sched_param.h>
 
 __BEGIN_DECLS
 
@@ -90,6 +88,9 @@
 /* Get index of currently used CPU.  */
 extern int sched_getcpu (void) __THROW;
 
+/* Get currently used CPU and NUMA node.  */
+extern int getcpu (unsigned int *, unsigned int *) __THROW;
+
 /* Switch process to namespace of type NSTYPE indicated by FD.  */
 extern int setns (int __fd, int __nstype) __THROW;
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select.h
index 371c5c1..8204bbd 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SELECT_H
 # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select2.h
index 7194148..a6dfe68 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/select2.h
@@ -1,5 +1,5 @@
 /* Checking macros for select functions.
-   Copyright (C) 2011-2018 Free Software Foundation, Inc.
+   Copyright (C) 2011-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SELECT_H
 # error "Never include <bits/select2.h> directly; use <sys/select.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sem.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sem.h
index 3d65872..ad13287 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sem.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sem.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -13,15 +12,16 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SEM_H
 # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
 #endif
 
 #include <sys/types.h>
-#include <bits/wordsize.h>
+#include <bits/timesize.h>
+#include <bits/types/struct_semid_ds.h>
 
 /* Flags for `semop'.  */
 #define SEM_UNDO	0x1000		/* undo the operation on exit */
@@ -35,24 +35,6 @@
 #define SETVAL		16		/* set semval */
 #define SETALL		17		/* set all semval's */
 
-
-/* Data structure describing a set of semaphores.  */
-struct semid_ds
-{
-  struct ipc_perm sem_perm;		/* operation permission struct */
-  __time_t sem_otime;			/* last semop() time */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved1;
-#endif
-  __time_t sem_ctime;			/* last time changed by semctl() */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved2;
-#endif
-  unsigned long int sem_nsems;		/* number of semaphores in set */
-  unsigned long int __glibc_reserved3;
-  unsigned long int __glibc_reserved4;
-};
-
 /* The user should define a union like the following to use it for arguments
    for `semctl'.
 
@@ -74,8 +56,9 @@
 /* ipcs ctl cmds */
 # define SEM_STAT 18
 # define SEM_INFO 19
+# define SEM_STAT_ANY 20
 
-struct seminfo
+struct  seminfo
 {
   int semmap;
   int semmni;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/semaphore.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/semaphore.h
index 18f8aae..d008e08 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/semaphore.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SEMAPHORE_H
 # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp.h
index 1685f10..008c61a 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SETJMP_H
 #define _BITS_SETJMP_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp2.h
index e6e9966..f883f35 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/setjmp2.h
@@ -1,5 +1,5 @@
 /* Checking macros for setjmp functions.
-   Copyright (C) 2009-2018 Free Software Foundation, Inc.
+   Copyright (C) 2009-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SETJMP_H
 # error "Never include <bits/setjmp2.h> directly; use <setjmp.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shm.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shm.h
index ba5174c..a50c79d 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shm.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shm.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -13,8 +12,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SHM_H
 # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
@@ -22,6 +21,7 @@
 
 #include <bits/types.h>
 #include <bits/wordsize.h>
+#include <bits/shmlba.h>
 
 /* Permission flag for shmget.  */
 #define SHM_R		0400		/* or S_IRUGO from <linux/stat.h> */
@@ -39,43 +39,17 @@
 
 __BEGIN_DECLS
 
-/* Segment low boundary address multiple.  */
-#define SHMLBA		(__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
 /* Type to count number of attaches.  */
-typedef unsigned long int shmatt_t;
+typedef __syscall_ulong_t shmatt_t;
 
-/* Data structure describing a shared memory segment.  */
-struct shmid_ds
-  {
-    struct ipc_perm shm_perm;		/* operation permission struct */
-    size_t shm_segsz;			/* size of segment in bytes */
-    __time_t shm_atime;			/* time of last shmat() */
-#if __WORDSIZE == 32
-    unsigned long int __glibc_reserved1;
-#endif
-    __time_t shm_dtime;			/* time of last shmdt() */
-#if __WORDSIZE == 32
-    unsigned long int __glibc_reserved2;
-#endif
-    __time_t shm_ctime;			/* time of last change by shmctl() */
-#if __WORDSIZE == 32
-    unsigned long int __glibc_reserved3;
-#endif
-    __pid_t shm_cpid;			/* pid of creator */
-    __pid_t shm_lpid;			/* pid of last shmop */
-    shmatt_t shm_nattch;		/* number of current attaches */
-    unsigned long int __glibc_reserved4;
-    unsigned long int __glibc_reserved5;
-  };
+#include <bits/types/struct_shmid_ds.h>
 
 #ifdef __USE_MISC
 
 /* ipcs ctl commands */
 # define SHM_STAT 	13
 # define SHM_INFO 	14
+# define SHM_STAT_ANY	15
 
 /* shm_mode upper byte flags */
 # define SHM_DEST	01000	/* segment will be destroyed on last detach */
@@ -85,25 +59,25 @@
 
 struct	shminfo
   {
-    unsigned long int shmmax;
-    unsigned long int shmmin;
-    unsigned long int shmmni;
-    unsigned long int shmseg;
-    unsigned long int shmall;
-    unsigned long int __glibc_reserved1;
-    unsigned long int __glibc_reserved2;
-    unsigned long int __glibc_reserved3;
-    unsigned long int __glibc_reserved4;
+    __syscall_ulong_t shmmax;
+    __syscall_ulong_t shmmin;
+    __syscall_ulong_t shmmni;
+    __syscall_ulong_t shmseg;
+    __syscall_ulong_t shmall;
+    __syscall_ulong_t __glibc_reserved1;
+    __syscall_ulong_t __glibc_reserved2;
+    __syscall_ulong_t __glibc_reserved3;
+    __syscall_ulong_t __glibc_reserved4;
   };
 
 struct shm_info
   {
     int used_ids;
-    unsigned long int shm_tot;	/* total allocated shm */
-    unsigned long int shm_rss;	/* total resident shm */
-    unsigned long int shm_swp;	/* total swapped shm */
-    unsigned long int swap_attempts;
-    unsigned long int swap_successes;
+    __syscall_ulong_t shm_tot;	/* total allocated shm */
+    __syscall_ulong_t shm_rss;	/* total resident shm */
+    __syscall_ulong_t shm_swp;	/* total swapped shm */
+    __syscall_ulong_t swap_attempts;
+    __syscall_ulong_t swap_successes;
   };
 
 #endif /* __USE_MISC */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shmlba.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shmlba.h
new file mode 100644
index 0000000..1c682a4
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/shmlba.h
@@ -0,0 +1,29 @@
+/* Define SHMLBA.  Generic version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple.  */
+#define SHMLBA		(__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+__END_DECLS
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigaction.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigaction.h
index fd29373..19c1d87 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigaction.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigaction.h
@@ -1,5 +1,5 @@
 /* The proper definitions for Linux's sigaction.
-   Copyright (C) 1993-2018 Free Software Foundation, Inc.
+   Copyright (C) 1993-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,10 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGACTION_H
+#define _BITS_SIGACTION_H 1
 
 #ifndef _SIGNAL_H
 # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
@@ -76,3 +79,5 @@
 #define	SIG_BLOCK     0		 /* Block signals.  */
 #define	SIG_UNBLOCK   1		 /* Unblock signals.  */
 #define	SIG_SETMASK   2		 /* Set the set of blocked signals.  */
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigcontext.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigcontext.h
index 4828d59..b153a3c 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigcontext.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SIGCONTEXT_H
 #define _BITS_SIGCONTEXT_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigevent-consts.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigevent-consts.h
index 897b7d2..28589fc 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigevent-consts.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigevent-consts.h
@@ -1,5 +1,5 @@
 /* sigevent constants.  Linux version.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SIGEVENT_CONSTS_H
 #define _BITS_SIGEVENT_CONSTS_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/siginfo-consts.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/siginfo-consts.h
index 193bd9c..4803327 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/siginfo-consts.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/siginfo-consts.h
@@ -1,5 +1,5 @@
 /* siginfo constants.  Linux version.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SIGINFO_CONSTS_H
 #define _BITS_SIGINFO_CONSTS_H 1
@@ -35,7 +35,9 @@
 enum
 {
   SI_ASYNCNL = -60,		/* Sent by asynch name lookup completion.  */
-  SI_TKILL = -6,		/* Sent by tkill.  */
+  SI_DETHREAD = -7,		/* Sent by execve killing subsidiary
+				   threads.  */
+  SI_TKILL,			/* Sent by tkill.  */
   SI_SIGIO,			/* Sent by queued SIGIO. */
 #if __SI_ASYNCIO_AFTER_SIGIO
   SI_ASYNCIO,			/* Sent by AIO completion.  */
@@ -51,6 +53,7 @@
   SI_KERNEL = 0x80		/* Send by kernel.  */
 
 #define SI_ASYNCNL	SI_ASYNCNL
+#define SI_DETHREAD	SI_DETHREAD
 #define SI_TKILL	SI_TKILL
 #define SI_SIGIO	SI_SIGIO
 #define SI_ASYNCIO	SI_ASYNCIO
@@ -81,8 +84,10 @@
 #  define ILL_PRVREG	ILL_PRVREG
   ILL_COPROC,			/* Coprocessor error.  */
 #  define ILL_COPROC	ILL_COPROC
-  ILL_BADSTK			/* Internal stack error.  */
+  ILL_BADSTK,			/* Internal stack error.  */
 #  define ILL_BADSTK	ILL_BADSTK
+  ILL_BADIADDR			/* Unimplemented instruction address.  */
+#  define ILL_BADIADDR ILL_BADIADDR
 };
 
 /* `si_code' values for SIGFPE signal.  */
@@ -102,8 +107,12 @@
 #  define FPE_FLTRES	FPE_FLTRES
   FPE_FLTINV,			/* Floating point invalid operation.  */
 #  define FPE_FLTINV	FPE_FLTINV
-  FPE_FLTSUB			/* Subscript out of range.  */
+  FPE_FLTSUB,			/* Subscript out of range.  */
 #  define FPE_FLTSUB	FPE_FLTSUB
+  FPE_FLTUNK = 14,		/* Undiagnosed floating-point exception.  */
+#  define FPE_FLTUNK	FPE_FLTUNK
+  FPE_CONDTRAP			/* Trap on condition.  */
+#  define FPE_CONDTRAP	FPE_CONDTRAP
 };
 
 /* `si_code' values for SIGSEGV signal.  */
@@ -115,8 +124,18 @@
 #  define SEGV_ACCERR	SEGV_ACCERR
   SEGV_BNDERR,			/* Bounds checking failure.  */
 #  define SEGV_BNDERR	SEGV_BNDERR
-  SEGV_PKUERR			/* Protection key checking failure.  */
+  SEGV_PKUERR,			/* Protection key checking failure.  */
 #  define SEGV_PKUERR	SEGV_PKUERR
+  SEGV_ACCADI,			/* ADI not enabled for mapped object.  */
+#  define SEGV_ACCADI	SEGV_ACCADI
+  SEGV_ADIDERR,			/* Disrupting MCD error.  */
+#  define SEGV_ADIDERR	SEGV_ADIDERR
+  SEGV_ADIPERR,			/* Precise MCD exception.  */
+#  define SEGV_ADIPERR	SEGV_ADIPERR
+  SEGV_MTEAERR,			/* Asynchronous ARM MTE error.  */
+#  define SEGV_MTEAERR	SEGV_MTEAERR
+  SEGV_MTESERR			/* Synchronous ARM MTE exception.  */
+#  define SEGV_MTESERR	SEGV_MTESERR
 };
 
 /* `si_code' values for SIGBUS signal.  */
@@ -141,8 +160,14 @@
 {
   TRAP_BRKPT = 1,		/* Process breakpoint.  */
 #  define TRAP_BRKPT	TRAP_BRKPT
-  TRAP_TRACE			/* Process trace trap.  */
+  TRAP_TRACE,			/* Process trace trap.  */
 #  define TRAP_TRACE	TRAP_TRACE
+  TRAP_BRANCH,			/* Process taken branch trap.  */
+#  define TRAP_BRANCH	TRAP_BRANCH
+  TRAP_HWBKPT,			/* Hardware breakpoint/watchpoint.  */
+#  define TRAP_HWBKPT	TRAP_HWBKPT
+  TRAP_UNK			/* Undiagnosed trap.  */
+#  define TRAP_UNK	TRAP_UNK
 };
 # endif
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signal_ext.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signal_ext.h
new file mode 100644
index 0000000..ca31214
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signal_ext.h
@@ -0,0 +1,31 @@
+/* System-specific extensions of <signal.h>, Linux version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/signal_ext.h> directly; use <signal.h> instead."
+#endif
+
+#ifdef __USE_GNU
+
+/* Send SIGNAL to the thread TID in the thread group (process)
+   identified by TGID.  This function behaves like kill, but also
+   fails with ESRCH if the specified TID does not belong to the
+   specified thread group.  */
+extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);
+
+#endif /* __USE_GNU */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signalfd.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signalfd.h
index 9e5271e..0b81ea1 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signalfd.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_SYS_SIGNALFD_H
 # error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-arch.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-arch.h
new file mode 100644
index 0000000..302294c
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-arch.h
@@ -0,0 +1,64 @@
+/* Signal number definitions.  Linux version.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_ARCH_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
+#endif
+
+/* Adjustments and additions to the signal number constants for
+   most Linux systems.  */
+
+#define SIGSTKFLT	16	/* Stack fault (obsolete).  */
+#define SIGPWR		30	/* Power failure imminent.  */
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		 7	/* Bus error.  */
+#define SIGSYS		31	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define SIGURG		23	/* Urgent data is available at a socket.  */
+#define SIGSTOP		19	/* Stop, unblockable.  */
+#define SIGTSTP		20	/* Keyboard stop.  */
+#define SIGCONT		18	/* Continue.  */
+#define SIGCHLD		17	/* Child terminated or stopped.  */
+#define SIGTTIN		21	/* Background read from control terminal.  */
+#define SIGTTOU		22	/* Background write to control terminal.  */
+#define SIGPOLL		29	/* Pollable event occurred (System V).  */
+#define SIGXFSZ		25	/* File size limit exceeded.  */
+#define SIGXCPU		24	/* CPU time limit exceeded.  */
+#define SIGVTALRM	26	/* Virtual timer expired.  */
+#define SIGPROF		27	/* Profiling timer expired.  */
+#define SIGUSR1		10	/* User-defined signal 1.  */
+#define SIGUSR2		12	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define SIGCLD		SIGCHLD	/* Old System V name */
+
+#define __SIGRTMIN	32
+#define __SIGRTMAX	64
+
+#endif	/* <signal.h> included.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-generic.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-generic.h
index 8f1044a..4e481c1 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-generic.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum-generic.h
@@ -1,5 +1,5 @@
 /* Signal number constants.  Generic template.
-   Copyright (C) 1991-2018 Free Software Foundation, Inc.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_BITS_SIGNUM_GENERIC_H
 #define _BITS_SIGNUM_GENERIC_H 1
@@ -57,31 +57,9 @@
 #define	SIGQUIT		3	/* Quit.  */
 #define	SIGTRAP		5	/* Trace/breakpoint trap.  */
 #define	SIGKILL		9	/* Killed.  */
-#define SIGBUS		10	/* Bus error.  */
-#define	SIGSYS		12	/* Bad system call.  */
 #define	SIGPIPE		13	/* Broken pipe.  */
 #define	SIGALRM		14	/* Alarm clock.  */
 
-/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
-#define	SIGURG		16	/* Urgent data is available at a socket.  */
-#define	SIGSTOP		17	/* Stop, unblockable.  */
-#define	SIGTSTP		18	/* Keyboard stop.  */
-#define	SIGCONT		19	/* Continue.  */
-#define	SIGCHLD		20	/* Child terminated or stopped.  */
-#define	SIGTTIN		21	/* Background read from control terminal.  */
-#define	SIGTTOU		22	/* Background write to control terminal.  */
-#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
-#define	SIGXCPU		24	/* CPU time limit exceeded.  */
-#define	SIGXFSZ		25	/* File size limit exceeded.  */
-#define	SIGVTALRM	26	/* Virtual timer expired.  */
-#define	SIGPROF		27	/* Profiling timer expired.  */
-#define	SIGUSR1		30	/* User-defined signal 1.  */
-#define	SIGUSR2		31	/* User-defined signal 2.  */
-
-/* Nonstandard signals found in all modern POSIX systems
-   (including both BSD and Linux).  */
-#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
-
 /* Archaic names for compatibility.  */
 #define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
 #define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
@@ -93,8 +71,9 @@
    but some real-time signals may be used internally by glibc.  Do not
    use these constants in application code; use SIGRTMIN and SIGRTMAX
    (defined in signal.h) instead.  */
-#define __SIGRTMIN	32
-#define __SIGRTMAX	__SIGRTMIN
+
+/* Include system specific bits.  */
+#include <bits/signum-arch.h>
 
 /* Biggest signal number + 1 (including real-time signals).  */
 #define _NSIG		(__SIGRTMAX + 1)
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum.h
deleted file mode 100644
index 0f70ce5..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/signum.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Signal number definitions.  Linux version.
-   Copyright (C) 1995-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   most Linux systems.  */
-
-#define	SIGSTKFLT	16	/* Stack fault (obsolete).  */
-#define	SIGPWR		30	/* Power failure imminent.  */
-
-#undef	SIGBUS
-#define	SIGBUS		 7
-#undef	SIGUSR1
-#define	SIGUSR1		10
-#undef	SIGUSR2
-#define	SIGUSR2		12
-#undef	SIGCHLD
-#define	SIGCHLD		17
-#undef	SIGCONT
-#define	SIGCONT		18
-#undef	SIGSTOP
-#define	SIGSTOP		19
-#undef	SIGTSTP
-#define	SIGTSTP		20
-#undef	SIGURG
-#define	SIGURG		23
-#undef	SIGPOLL
-#define	SIGPOLL		29
-#undef	SIGSYS
-#define SIGSYS		31
-
-#undef	__SIGRTMAX
-#define __SIGRTMAX	64
-
-#endif	/* <signal.h> included.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigstack.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigstack.h
index 712f3da..f317cb6 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigstack.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigstack.h
@@ -1,5 +1,5 @@
 /* sigstack, sigaltstack definitions.
-   Copyright (C) 2015-2018 Free Software Foundation, Inc.
+   Copyright (C) 2015-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SIGSTACK_H
 #define _BITS_SIGSTACK_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigthread.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigthread.h
index b1fb615..8779a4b 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigthread.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sigthread.h
@@ -1,5 +1,5 @@
 /* Signal handling function for threaded programs.
-   Copyright (C) 1998-2018 Free Software Foundation, Inc.
+   Copyright (C) 1998-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
+   not, see <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SIGTHREAD_H
 #define _BITS_SIGTHREAD_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sockaddr.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sockaddr.h
index edf36c2..90c5bfb 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sockaddr.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sockaddr.h
@@ -1,5 +1,5 @@
 /* Definition of struct sockaddr_* common members and sizes, generic version.
-   Copyright (C) 1995-2018 Free Software Foundation, Inc.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include this file directly; use <sys/socket.h> instead.
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket-constants.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket-constants.h
new file mode 100644
index 0000000..84f7a33
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket-constants.h
@@ -0,0 +1,50 @@
+/* Socket constants which vary among Linux architectures.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define SOL_SOCKET 1
+#define SO_ACCEPTCONN 30
+#define SO_BROADCAST 6
+#define SO_DONTROUTE 5
+#define SO_ERROR 4
+#define SO_KEEPALIVE 9
+#define SO_LINGER 13
+#define SO_OOBINLINE 10
+#define SO_RCVBUF 8
+#define SO_RCVLOWAT 18
+#if (__TIMESIZE == 64 && __WORDSIZE == 32 \
+     && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32))
+# define SO_RCVTIMEO 66
+#else
+# define SO_RCVTIMEO 20
+#endif
+#define SO_REUSEADDR 2
+#define SO_SNDBUF 7
+#define SO_SNDLOWAT 19
+#if (__TIMESIZE == 64 && __WORDSIZE == 32 \
+     && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32))
+# define SO_SNDTIMEO 67
+#else
+# define SO_SNDTIMEO 21
+#endif
+#define SO_TYPE 3
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket.h
index fa409f0..a011a8c 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket.h
@@ -1,5 +1,5 @@
 /* System-specific socket constants and types.  Linux version.
-   Copyright (C) 1991-2018 Free Software Foundation, Inc.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef __BITS_SOCKET_H
 #define __BITS_SOCKET_H
@@ -85,7 +85,8 @@
 #define PF_KCM		41	/* Kernel Connection Multiplexor.  */
 #define PF_QIPCRTR	42	/* Qualcomm IPC Router.  */
 #define PF_SMC		43	/* SMC sockets.  */
-#define PF_MAX		44	/* For now..  */
+#define PF_XDP		44	/* XDP sockets.  */
+#define PF_MAX		45	/* For now..  */
 
 /* Address families.  */
 #define AF_UNSPEC	PF_UNSPEC
@@ -135,6 +136,7 @@
 #define AF_KCM		PF_KCM
 #define AF_QIPCRTR	PF_QIPCRTR
 #define AF_SMC		PF_SMC
+#define AF_XDP		PF_XDP
 #define AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
@@ -164,9 +166,10 @@
 #define SOL_NFC		280
 #define SOL_KCM		281
 #define SOL_TLS		282
+#define SOL_XDP		283
 
 /* Maximum queue length specifiable by listen.  */
-#define SOMAXCONN	128
+#define SOMAXCONN	4096
 
 /* Get the definition of the macro to define the common sockaddr members.  */
 #include <bits/sockaddr.h>
@@ -346,98 +349,12 @@
 };
 #endif
 
-/* Ugly workaround for unclean kernel headers.  */
-#ifndef __USE_MISC
-# ifndef FIOGETOWN
-#  define __SYS_SOCKET_H_undef_FIOGETOWN
-# endif
-# ifndef FIOSETOWN
-#  define __SYS_SOCKET_H_undef_FIOSETOWN
-# endif
-# ifndef SIOCATMARK
-#  define __SYS_SOCKET_H_undef_SIOCATMARK
-# endif
-# ifndef SIOCGPGRP
-#  define __SYS_SOCKET_H_undef_SIOCGPGRP
-# endif
-# ifndef SIOCGSTAMP
-#  define __SYS_SOCKET_H_undef_SIOCGSTAMP
-# endif
-# ifndef SIOCGSTAMPNS
-#  define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# endif
-# ifndef SIOCSPGRP
-#  define __SYS_SOCKET_H_undef_SIOCSPGRP
-# endif
-#endif
-#ifndef IOCSIZE_MASK
-# define __SYS_SOCKET_H_undef_IOCSIZE_MASK
-#endif
-#ifndef IOCSIZE_SHIFT
-# define __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-#endif
-#ifndef IOC_IN
-# define __SYS_SOCKET_H_undef_IOC_IN
-#endif
-#ifndef IOC_INOUT
-# define __SYS_SOCKET_H_undef_IOC_INOUT
-#endif
-#ifndef IOC_OUT
-# define __SYS_SOCKET_H_undef_IOC_OUT
-#endif
-
-/* Get socket manipulation related informations from kernel headers.  */
-#include <asm/socket.h>
-
-#ifndef __USE_MISC
-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
-#  undef __SYS_SOCKET_H_undef_FIOGETOWN
-#  undef FIOGETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
-#  undef __SYS_SOCKET_H_undef_FIOSETOWN
-#  undef FIOSETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
-#  undef __SYS_SOCKET_H_undef_SIOCATMARK
-#  undef SIOCATMARK
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
-#  undef __SYS_SOCKET_H_undef_SIOCGPGRP
-#  undef SIOCGPGRP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
-#  undef __SYS_SOCKET_H_undef_SIOCGSTAMP
-#  undef SIOCGSTAMP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-#  undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-#  undef SIOCGSTAMPNS
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
-#  undef __SYS_SOCKET_H_undef_SIOCSPGRP
-#  undef SIOCSPGRP
-# endif
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef IOCSIZE_MASK
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef IOCSIZE_SHIFT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_IN
-# undef __SYS_SOCKET_H_undef_IOC_IN
-# undef IOC_IN
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef IOC_INOUT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_OUT
-# undef __SYS_SOCKET_H_undef_IOC_OUT
-# undef IOC_OUT
+#ifdef __USE_MISC
+# include <bits/types/time_t.h>
+# include <asm/socket.h>
+#else
+# define SO_DEBUG 1
+# include <bits/socket-constants.h>
 #endif
 
 /* Structure used to manipulate the SO_LINGER option.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket2.h
index f2063dd..797449d 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket2.h
@@ -1,5 +1,5 @@
 /* Checking macros for socket functions.
-   Copyright (C) 2005-2018 Free Software Foundation, Inc.
+   Copyright (C) 2005-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SOCKET_H
 # error "Never include <bits/socket2.h> directly; use <sys/socket.h> instead."
@@ -33,8 +33,8 @@
 					"recv called with bigger length than "
 					"size of destination buffer")
 {
-  if (__FORTIFY_CALL_CHK && __bos0 (__buf) != (size_t) -1)
-    return __recv_chk (__fd, __buf, __n, __bos0 (__buf), __flags);
+  if (__FORTIFY_CALL_CHK && __glibc_objsize0 (__buf) != (size_t) -1)
+    return __recv_chk (__fd, __buf, __n, __glibc_objsize0 (__buf), __flags);
   return __recv_alias (__fd, __buf, __n, __flags);
 }
 __FORTIFY_FUNCTION_END
@@ -57,9 +57,9 @@
 					"recvfrom called with bigger length "
 					"than size of destination buffer")
 {
-  if (__FORTIFY_CALL_CHK && __bos0 (__buf) != (size_t) -1)
-    return __recvfrom_chk (__fd, __buf, __n, __bos0 (__buf), __flags, __addr,
-			   __addr_len);
+  if (__FORTIFY_CALL_CHK && __glibc_objsize0 (__buf) != (size_t) -1)
+    return __recvfrom_chk (__fd, __buf, __n, __glibc_objsize0 (__buf), __flags,
+			   __addr, __addr_len);
   return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
 }
 __FORTIFY_FUNCTION_END
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket_type.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket_type.h
index 035394a..9cb243c 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket_type.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/socket_type.h
@@ -1,5 +1,5 @@
 /* Define enum __socket_type for generic Linux.
-   Copyright (C) 1991-2018 Free Software Foundation, Inc.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SOCKET_H
 # error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ss_flags.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ss_flags.h
index f7fb9d0..8dc676d 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ss_flags.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/ss_flags.h
@@ -1,5 +1,5 @@
 /* ss_flags values for stack_t.  Linux version.
-   Copyright (C) 1998-2018 Free Software Foundation, Inc.
+   Copyright (C) 1998-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SS_FLAGS_H
 #define _BITS_SS_FLAGS_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stab.def b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stab.def
index ab44580..5c72900 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stab.def
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stab.def
@@ -1,5 +1,5 @@
 /* Table of DBX symbol codes for the GNU system.
-   Copyright (C) 1988, 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /* This contains contribution from Cygnus Support.  */
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stat.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stat.h
index 08e86ef..31868c8 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stat.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stat.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -13,8 +12,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 #if !defined _SYS_STAT_H && !defined _FCNTL_H
 # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
@@ -23,117 +22,7 @@
 #ifndef _BITS_STAT_H
 #define _BITS_STAT_H	1
 
-#include <endian.h>
-#include <bits/wordsize.h>
-
-/* 64-bit libc uses the kernel's 'struct stat', accessed via the
-   stat() syscall; 32-bit libc uses the kernel's 'struct stat64'
-   and accesses it via the stat64() syscall.  All the various
-   APIs offered by libc use the kernel shape for their struct stat
-   structure; the only difference is that 32-bit programs not
-   using __USE_FILE_OFFSET64 only see the low 32 bits of some
-   of the fields (specifically st_ino, st_size, and st_blocks).  */
-#define _STAT_VER_KERNEL	0
-#define _STAT_VER_LINUX		0
-#define _STAT_VER		_STAT_VER_KERNEL
-
-/* Versions of the `xmknod' interface.  */
-#define _MKNOD_VER_LINUX	0
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64
-# define __field64(type, type64, name) type name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
-  type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
-  int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct stat
-  {
-    __dev_t st_dev;		/* Device.  */
-    __field64(__ino_t, __ino64_t, st_ino);  /* File serial number. */
-    __mode_t st_mode;		/* File mode.  */
-    __nlink_t st_nlink;		/* Link count.  */
-    __uid_t st_uid;		/* User ID of the file's owner.	*/
-    __gid_t st_gid;		/* Group ID of the file's group.*/
-    __dev_t st_rdev;		/* Device number, if device.  */
-    __dev_t __pad1;
-    __field64(__off_t, __off64_t, st_size);  /* Size of file, in bytes. */
-    __blksize_t st_blksize;	/* Optimal block size for I/O.  */
-    int __pad2;
-    __field64(__blkcnt_t, __blkcnt64_t, st_blocks);  /* 512-byte blocks */
-#ifdef __USE_XOPEN2K8
-    /* Nanosecond resolution timestamps are stored in a format
-       equivalent to 'struct timespec'.  This is the type used
-       whenever possible but the Unix namespace rules do not allow the
-       identifier 'timespec' to appear in the <sys/stat.h> header.
-       Therefore we have to handle the use of this header in strictly
-       standard-compliant sources special.  */
-    struct timespec st_atim;		/* Time of last access.  */
-    struct timespec st_mtim;		/* Time of last modification.  */
-    struct timespec st_ctim;		/* Time of last status change.  */
-# define st_atime st_atim.tv_sec	/* Backward compatibility.  */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-#else
-    __time_t st_atime;			/* Time of last access.  */
-    unsigned long int st_atimensec;	/* Nscecs of last access.  */
-    __time_t st_mtime;			/* Time of last modification.  */
-    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
-    __time_t st_ctime;			/* Time of last status change.  */
-    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
-#endif
-    int __glibc_reserved[2];
-  };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct stat64
-  {
-    __dev_t st_dev;		/* Device.  */
-    __ino64_t st_ino;		/* File serial number.	*/
-    __mode_t st_mode;		/* File mode.  */
-    __nlink_t st_nlink;		/* Link count.  */
-    __uid_t st_uid;		/* User ID of the file's owner.	*/
-    __gid_t st_gid;		/* Group ID of the file's group.*/
-    __dev_t st_rdev;		/* Device number, if device.  */
-    __dev_t __pad1;
-    __off64_t st_size;		/* Size of file, in bytes.  */
-    __blksize_t st_blksize;	/* Optimal block size for I/O.  */
-    int __pad2;
-    __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
-#ifdef __USE_XOPEN2K8
-    /* Nanosecond resolution timestamps are stored in a format
-       equivalent to 'struct timespec'.  This is the type used
-       whenever possible but the Unix namespace rules do not allow the
-       identifier 'timespec' to appear in the <sys/stat.h> header.
-       Therefore we have to handle the use of this header in strictly
-       standard-compliant sources special.  */
-    struct timespec st_atim;		/* Time of last access.  */
-    struct timespec st_mtim;		/* Time of last modification.  */
-    struct timespec st_ctim;		/* Time of last status change.  */
-#else
-    __time_t st_atime;			/* Time of last access.  */
-    unsigned long int st_atimensec;	/* Nscecs of last access.  */
-    __time_t st_mtime;			/* Time of last modification.  */
-    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
-    __time_t st_ctime;			/* Time of last status change.  */
-    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
-#endif
-    int __glibc_reserved[2];
-  };
-#endif
-
-/* Tell code we have these members.  */
-#define	_STATBUF_ST_BLKSIZE
-#define _STATBUF_ST_RDEV
-/* Nanosecond resolution time values are supported.  */
-#define _STATBUF_ST_NSEC
+#include <bits/struct_stat.h>
 
 /* Encoding of the file mode.  */
 
@@ -168,4 +57,4 @@
 # define UTIME_OMIT	((1l << 30) - 2l)
 #endif
 
-#endif /* bits/stat.h */
+#endif	/* bits/stat.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statfs.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statfs.h
index 846dd5f..bef18a3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statfs.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -14,13 +14,13 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_STATFS_H
 # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
 #endif
 
-#include <endian.h>
+#include <bits/endian.h>
 #include <bits/types.h>
 #include <bits/wordsize.h>
 
@@ -34,7 +34,7 @@
 
 #if defined __USE_FILE_OFFSET64
 # define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64
+#elif __WORDSIZE == 64 || __STATFS_MATCHES_STATFS64
 # define __field64(type, type64, name) type name
 #elif __BYTE_ORDER == __LITTLE_ENDIAN
 # define __field64(type, type64, name) \
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statvfs.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statvfs.h
index 0d95901..8d5db12 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statvfs.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statvfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_STATVFS_H
 # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx-generic.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx-generic.h
new file mode 100644
index 0000000..f8b0f4d
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx-generic.h
@@ -0,0 +1,64 @@
+/* Generic statx-related definitions and declarations.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* This interface is based on <linux/stat.h> in Linux.  */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/statx-generic.h> directly, include <sys/stat.h> instead.
+#endif
+
+#include <bits/types/struct_statx_timestamp.h>
+#include <bits/types/struct_statx.h>
+
+#ifndef STATX_TYPE
+# define STATX_TYPE 0x0001U
+# define STATX_MODE 0x0002U
+# define STATX_NLINK 0x0004U
+# define STATX_UID 0x0008U
+# define STATX_GID 0x0010U
+# define STATX_ATIME 0x0020U
+# define STATX_MTIME 0x0040U
+# define STATX_CTIME 0x0080U
+# define STATX_INO 0x0100U
+# define STATX_SIZE 0x0200U
+# define STATX_BLOCKS 0x0400U
+# define STATX_BASIC_STATS 0x07ffU
+# define STATX_ALL 0x0fffU
+# define STATX_BTIME 0x0800U
+# define STATX_MNT_ID 0x1000U
+# define STATX__RESERVED 0x80000000U
+
+# define STATX_ATTR_COMPRESSED 0x0004
+# define STATX_ATTR_IMMUTABLE 0x0010
+# define STATX_ATTR_APPEND 0x0020
+# define STATX_ATTR_NODUMP 0x0040
+# define STATX_ATTR_ENCRYPTED 0x0800
+# define STATX_ATTR_AUTOMOUNT 0x1000
+# define STATX_ATTR_MOUNT_ROOT 0x2000
+# define STATX_ATTR_VERITY 0x100000
+# define STATX_ATTR_DAX 0x200000
+#endif /* !STATX_TYPE */
+
+__BEGIN_DECLS
+
+/* Fill *BUF with information about PATH in DIRFD.  */
+int statx (int __dirfd, const char *__restrict __path, int __flags,
+           unsigned int __mask, struct statx *__restrict __buf)
+  __THROW __nonnull ((2, 5));
+
+__END_DECLS
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx.h
new file mode 100644
index 0000000..baa37d1
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/statx.h
@@ -0,0 +1,39 @@
+/* statx-related definitions and declarations.  Linux version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/* This interface is based on <linux/stat.h> in Linux.  */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/statx.h> directly, include <sys/stat.h> instead.
+#endif
+
+/* Use the Linux kernel header if available.  */
+
+/* Use "" to work around incorrect macro expansion of the
+   __has_include argument (GCC PR 80005).  */
+#ifdef __has_include
+# if __has_include ("linux/stat.h")
+#  include "linux/stat.h"
+#  ifdef STATX_TYPE
+#   define __statx_timestamp_defined 1
+#   define __statx_defined 1
+#  endif
+# endif
+#endif
+
+#include <bits/statx-generic.h>
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-intn.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-intn.h
index de1ffcc..8a1cf5d 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-intn.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-intn.h
@@ -1,5 +1,5 @@
 /* Define intN_t types.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_STDINT_INTN_H
 #define _BITS_STDINT_INTN_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-uintn.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-uintn.h
index 350b65b..a4fca46 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-uintn.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdint-uintn.h
@@ -1,5 +1,5 @@
 /* Define uintN_t types.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_STDINT_UINTN_H
 #define _BITS_STDINT_UINTN_H	1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio-ldbl.h
index 99d9bcc..067a2fb 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio-ldbl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio-ldbl.h
@@ -1,5 +1,5 @@
 /* -mlong-double-64 compatibility mode for stdio functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _STDIO_H
 # error "Never include <bits/stdio-ldbl.h> directly; use <stdio.h> instead."
@@ -26,12 +26,18 @@
 __LDBL_REDIR_DECL (vfprintf)
 __LDBL_REDIR_DECL (vprintf)
 __LDBL_REDIR_DECL (vsprintf)
-#if defined __USE_ISOC99 && !defined __USE_GNU \
-    && !defined __REDIRECT \
-    && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+#if !__GLIBC_USE (DEPRECATED_SCANF)
+# if defined __LDBL_COMPAT
 __LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf)
 __LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
 __LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
+__LDBL_REDIR1_DECL (fscanf, __isoc99_fscanfieee128)
+__LDBL_REDIR1_DECL (scanf, __isoc99_scanfieee128)
+__LDBL_REDIR1_DECL (sscanf, __isoc99_sscanfieee128)
+# else
+#  error bits/stdlib-ldbl.h included when no ldbl redirections are required.
+# endif
 #else
 __LDBL_REDIR_DECL (fscanf)
 __LDBL_REDIR_DECL (scanf)
@@ -44,11 +50,18 @@
 #endif
 
 #ifdef	__USE_ISOC99
-# if !defined __USE_GNU && !defined __REDIRECT \
-     && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# if !__GLIBC_USE (DEPRECATED_SCANF)
+#  if defined __LDBL_COMPAT
 __LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf)
 __LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
 __LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
+#  elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
+__LDBL_REDIR1_DECL (vfscanf, __isoc99_vfscanfieee128)
+__LDBL_REDIR1_DECL (vscanf, __isoc99_vscanfieee128)
+__LDBL_REDIR1_DECL (vsscanf, __isoc99_vsscanfieee128)
+#  else
+#   error bits/stdlib-ldbl.h included when no ldbl redirections are required.
+#  endif
 # else
 __LDBL_REDIR_DECL (vfscanf)
 __LDBL_REDIR_DECL (vsscanf)
@@ -63,33 +76,33 @@
 
 #ifdef __USE_GNU
 __LDBL_REDIR_DECL (vasprintf)
-__LDBL_REDIR_DECL (__asprintf)
+__LDBL_REDIR2_DECL (asprintf)
 __LDBL_REDIR_DECL (asprintf)
 __LDBL_REDIR_DECL (obstack_printf)
 __LDBL_REDIR_DECL (obstack_vprintf)
 #endif
 
 #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-__LDBL_REDIR_DECL (__sprintf_chk)
-__LDBL_REDIR_DECL (__vsprintf_chk)
+__LDBL_REDIR2_DECL (sprintf_chk)
+__LDBL_REDIR2_DECL (vsprintf_chk)
 # if defined __USE_ISOC99 || defined __USE_UNIX98
-__LDBL_REDIR_DECL (__snprintf_chk)
-__LDBL_REDIR_DECL (__vsnprintf_chk)
+__LDBL_REDIR2_DECL (snprintf_chk)
+__LDBL_REDIR2_DECL (vsnprintf_chk)
 # endif
 # if __USE_FORTIFY_LEVEL > 1
-__LDBL_REDIR_DECL (__fprintf_chk)
-__LDBL_REDIR_DECL (__printf_chk)
-__LDBL_REDIR_DECL (__vfprintf_chk)
-__LDBL_REDIR_DECL (__vprintf_chk)
+__LDBL_REDIR2_DECL (fprintf_chk)
+__LDBL_REDIR2_DECL (printf_chk)
+__LDBL_REDIR2_DECL (vfprintf_chk)
+__LDBL_REDIR2_DECL (vprintf_chk)
 #  ifdef __USE_XOPEN2K8
-__LDBL_REDIR_DECL (__dprintf_chk)
-__LDBL_REDIR_DECL (__vdprintf_chk)
+__LDBL_REDIR2_DECL (dprintf_chk)
+__LDBL_REDIR2_DECL (vdprintf_chk)
 #  endif
 #  ifdef __USE_GNU
-__LDBL_REDIR_DECL (__asprintf_chk)
-__LDBL_REDIR_DECL (__vasprintf_chk)
-__LDBL_REDIR_DECL (__obstack_printf_chk)
-__LDBL_REDIR_DECL (__obstack_vprintf_chk)
+__LDBL_REDIR2_DECL (asprintf_chk)
+__LDBL_REDIR2_DECL (vasprintf_chk)
+__LDBL_REDIR2_DECL (obstack_printf_chk)
+__LDBL_REDIR2_DECL (obstack_vprintf_chk)
 #  endif
 # endif
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio.h
index d287083..b56fcb0 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio.h
@@ -1,5 +1,5 @@
 /* Optimizing macros and inline functions for stdio functions.
-   Copyright (C) 1998-2018 Free Software Foundation, Inc.
+   Copyright (C) 1998-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,10 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_STDIO_H
+#define _BITS_STDIO_H 1
 
 #ifndef _STDIO_H
 # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
@@ -28,12 +31,12 @@
 
 
 #ifdef __USE_EXTERN_INLINES
-/* For -D_FORTIFY_SOURCE{,=2} bits/stdio2.h will define a different
+/* For -D_FORTIFY_SOURCE{,=2,=3} bits/stdio2.h will define a different
    inline.  */
 # if !(__USE_FORTIFY_LEVEL > 0 && defined __fortify_function)
 /* Write formatted output to stdout from argument list ARG.  */
 __STDIO_INLINE int
-vprintf (const char *__restrict __fmt, _G_va_list __arg)
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
 {
   return vfprintf (stdout, __fmt, __arg);
 }
@@ -43,7 +46,7 @@
 __STDIO_INLINE int
 getchar (void)
 {
-  return _IO_getc (stdin);
+  return getc (stdin);
 }
 
 
@@ -52,24 +55,24 @@
 __STDIO_INLINE int
 fgetc_unlocked (FILE *__fp)
 {
-  return _IO_getc_unlocked (__fp);
+  return __getc_unlocked_body (__fp);
 }
 # endif /* misc */
 
 
-# ifdef __USE_POSIX
+# ifdef __USE_POSIX199506
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
 getc_unlocked (FILE *__fp)
 {
-  return _IO_getc_unlocked (__fp);
+  return __getc_unlocked_body (__fp);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
 getchar_unlocked (void)
 {
-  return _IO_getc_unlocked (stdin);
+  return __getc_unlocked_body (stdin);
 }
 # endif	/* POSIX */
 
@@ -78,7 +81,7 @@
 __STDIO_INLINE int
 putchar (int __c)
 {
-  return _IO_putc (__c, stdout);
+  return putc (__c, stdout);
 }
 
 
@@ -87,31 +90,31 @@
 __STDIO_INLINE int
 fputc_unlocked (int __c, FILE *__stream)
 {
-  return _IO_putc_unlocked (__c, __stream);
+  return __putc_unlocked_body (__c, __stream);
 }
 # endif /* misc */
 
 
-# ifdef __USE_POSIX
+# ifdef __USE_POSIX199506
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
 putc_unlocked (int __c, FILE *__stream)
 {
-  return _IO_putc_unlocked (__c, __stream);
+  return __putc_unlocked_body (__c, __stream);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
 putchar_unlocked (int __c)
 {
-  return _IO_putc_unlocked (__c, stdout);
+  return __putc_unlocked_body (__c, stdout);
 }
 # endif	/* POSIX */
 
 
 # ifdef	__USE_GNU
 /* Like `getdelim', but reads up to a newline.  */
-__STDIO_INLINE _IO_ssize_t
+__STDIO_INLINE __ssize_t
 getline (char **__lineptr, size_t *__n, FILE *__stream)
 {
   return __getdelim (__lineptr, __n, '\n', __stream);
@@ -124,14 +127,14 @@
 __STDIO_INLINE int
 __NTH (feof_unlocked (FILE *__stream))
 {
-  return _IO_feof_unlocked (__stream);
+  return __feof_unlocked_body (__stream);
 }
 
 /* Faster versions when locking is not required.  */
 __STDIO_INLINE int
 __NTH (ferror_unlocked (FILE *__stream))
 {
-  return _IO_ferror_unlocked (__stream);
+  return __ferror_unlocked_body (__stream);
 }
 # endif /* misc */
 
@@ -151,7 +154,7 @@
 		       for (__cnt = (size_t) (size) * (size_t) (n);	      \
 			    __cnt > 0; --__cnt)				      \
 			 {						      \
-			   int __c = _IO_getc_unlocked (__stream);	      \
+			   int __c = getc_unlocked (__stream);		      \
 			   if (__c == EOF)				      \
 			     break;					      \
 			   *__ptr++ = __c;				      \
@@ -174,7 +177,7 @@
 		       size_t __cnt;					      \
 		       for (__cnt = (size_t) (size) * (size_t) (n);	      \
 			    __cnt > 0; --__cnt)				      \
-			 if (_IO_putc_unlocked (*__ptr++, __stream) == EOF)   \
+			 if (putc_unlocked (*__ptr++, __stream) == EOF)	      \
 			   break;					      \
 		       ((size_t) (size) * (size_t) (n) - __cnt)		      \
 			/ (size_t) (size); })				      \
@@ -188,3 +191,5 @@
 
 /* Define helper macro.  */
 #undef __STDIO_INLINE
+
+#endif /* bits/stdio.h.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio2.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio2.h
index 6dd04fc..d5d3570 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio2.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio2.h
@@ -1,5 +1,5 @@
 /* Checking macros for stdio functions.
-   Copyright (C) 2004-2018 Free Software Foundation, Inc.
+   Copyright (C) 2004-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,17 +14,22 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_STDIO2_H
+#define _BITS_STDIO2_H 1
 
 #ifndef _STDIO_H
 # error "Never include <bits/stdio2.h> directly; use <stdio.h> instead."
 #endif
 
 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
-			  const char *__restrict __format, ...) __THROW;
+			  const char *__restrict __format, ...) __THROW
+    __attr_access ((__write_only__, 1, 3));
 extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
 			   const char *__restrict __format,
-			   _G_va_list __ap) __THROW;
+			   __gnuc_va_list __ap) __THROW
+    __attr_access ((__write_only__, 1, 3));
 
 #define __mul_may_overflow(size, n) \
   ((size | n) >= (((size_t)1) << (8 * sizeof (size_t) / 2)))
@@ -39,33 +44,34 @@
   __FORTIFY_INIT_ARG_PACK(__fmt);
   int __result = __FORTIFY_CALL_VA_BUILTIN (sprintf, __s,
 					    __USE_FORTIFY_LEVEL - 1,
-					    __bos (__s), __fmt,
+					    __glibc_objsize (__s), __fmt,
 					    __FORTIFY_ARG_PACK);
   __FORTIFY_FREE_ARG_PACK();
   return __result;
 }
 #elif !defined __cplusplus
 # define sprintf(str, ...) \
-  __builtin___sprintf_chk (str, __USE_FORTIFY_LEVEL - 1, __bos (str), \
-			   __VA_ARGS__)
+  __builtin___sprintf_chk (str, __USE_FORTIFY_LEVEL - 1,		      \
+			   __glibc_objsize (str), __VA_ARGS__)
 #endif
 
 __fortify_potential_overload int
 __NTH (vsprintf (char *__restrict const __clang_pass_object_size __s,
-		 const char *__restrict __fmt, _G_va_list __ap))
+		 const char *__restrict __fmt, __gnuc_va_list __ap))
 {
   return __builtin___vsprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
-				   __bos (__s), __fmt, __ap);
+				   __glibc_objsize (__s), __fmt, __ap);
 }
 
 #if defined __USE_ISOC99 || defined __USE_UNIX98
 
 extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
 			   size_t __slen, const char *__restrict __format,
-			   ...) __THROW;
+			   ...) __THROW
+    __attr_access ((__write_only__, 1, 2));
 extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
 			    size_t __slen, const char *__restrict __format,
-			    _G_va_list __ap) __THROW;
+			    __gnuc_va_list __ap) __THROW;
 
 # ifdef __FORTIFY_ARG_PACK_OK
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 3, 4))) int
@@ -78,26 +84,26 @@
   __FORTIFY_INIT_ARG_PACK(__fmt);
   int __result = __FORTIFY_CALL_VA_BUILTIN (snprintf, __s, __n,
 					    __USE_FORTIFY_LEVEL - 1,
-					    __bos (__s), __fmt,
+					    __glibc_objsize (__s), __fmt,
 					    __FORTIFY_ARG_PACK);
   __FORTIFY_FREE_ARG_PACK();
   return __result;
 }
 # elif !defined __cplusplus
 #  define snprintf(str, len, ...) \
-  __builtin___snprintf_chk (str, len, __USE_FORTIFY_LEVEL - 1, __bos (str), \
-			    __VA_ARGS__)
+  __builtin___snprintf_chk (str, len, __USE_FORTIFY_LEVEL - 1,		      \
+			    __glibc_objsize (str), __VA_ARGS__)
 # endif
 
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 3, 0))) int
 __NTH (vsnprintf (char *__restrict const __clang_pass_object_size __s,
-		  size_t __n, const char *__restrict __fmt, _G_va_list __ap))
+		  size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap))
      __clang_warning_if (__bos_static_lt (__n, __s),
                          "call to vsnprintf may overflow the destination "
                          "buffer")
 {
   return __builtin___vsnprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
-				    __bos (__s), __fmt, __ap);
+				    __glibc_objsize (__s), __fmt, __ap);
 }
 
 #endif
@@ -108,9 +114,9 @@
 			  const char *__restrict __format, ...);
 extern int __printf_chk (int __flag, const char *__restrict __format, ...);
 extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
-			   const char *__restrict __format, _G_va_list __ap);
+			   const char *__restrict __format, __gnuc_va_list __ap);
 extern int __vprintf_chk (int __flag, const char *__restrict __format,
-			  _G_va_list __ap);
+			  __gnuc_va_list __ap);
 
 # ifdef __FORTIFY_ARG_PACK_OK
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 2, 3))) int
@@ -143,7 +149,7 @@
 
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 1, 0))) int
 vprintf (const char *__restrict const __clang_pass_object_size __fmt,
-	 _G_va_list __ap)
+	 __gnuc_va_list __ap)
 {
 # ifdef __USE_EXTERN_INLINES
   return __vfprintf_chk (stdout, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
@@ -154,7 +160,7 @@
 
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 2, 0))) int
 vfprintf (FILE *__restrict const __clang_pass_object_size __stream,
-	  const char *__restrict __fmt, _G_va_list __ap)
+	  const char *__restrict __fmt, __gnuc_va_list __ap)
 {
   return __vfprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
 }
@@ -163,7 +169,7 @@
 extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt,
 			  ...) __attribute__ ((__format__ (__printf__, 3, 4)));
 extern int __vdprintf_chk (int __fd, int __flag,
-			   const char *__restrict __fmt, _G_va_list __arg)
+			   const char *__restrict __fmt, __gnuc_va_list __arg)
      __attribute__ ((__format__ (__printf__, 3, 0)));
 
 #  ifdef __FORTIFY_ARG_PACK_OK
@@ -185,7 +191,7 @@
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 2, 0))) int
 vdprintf (int __fd,
 	  const char *__restrict const __clang_pass_object_size __fmt,
-	  _G_va_list __ap)
+	  __gnuc_va_list __ap)
 {
   return __vdprintf_chk (__fd, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
 }
@@ -197,7 +203,7 @@
 			   const char *__restrict __fmt, ...)
      __THROW __attribute__ ((__format__ (__printf__, 3, 4))) __wur;
 extern int __vasprintf_chk (char **__restrict __ptr, int __flag,
-			    const char *__restrict __fmt, _G_va_list __arg)
+			    const char *__restrict __fmt, __gnuc_va_list __arg)
      __THROW __attribute__ ((__format__ (__printf__, 3, 0))) __wur;
 extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
 				 int __flag, const char *__restrict __format,
@@ -206,7 +212,7 @@
 extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack,
 				  int __flag,
 				  const char *__restrict __format,
-				  _G_va_list __args)
+				  __gnuc_va_list __args)
      __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
 
 #  ifdef __FORTIFY_ARG_PACK_OK
@@ -265,15 +271,15 @@
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 2, 0)))
 __wur int
 __NTH (vasprintf (char **__restrict const __clang_pass_object_size __ptr,
-		  const char *__restrict __fmt, _G_va_list __ap))
+		  const char *__restrict __fmt, __gnuc_va_list __ap))
 {
   return __vasprintf_chk (__ptr, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
 }
 
 __fortify_potential_overload __attribute__ ((__format__ (__printf__, 2, 0))) int
 __NTH (obstack_vprintf (struct obstack *
-			  __restrict const __clang_pass_object_size __obstack,
-			const char *__restrict __fmt, _G_va_list __ap))
+			__restrict const __clang_pass_object_size __obstack,
+			const char *__restrict __fmt, __gnuc_va_list __ap))
 {
   return __obstack_vprintf_chk (__obstack, __USE_FORTIFY_LEVEL - 1, __fmt,
 				__ap);
@@ -290,24 +296,26 @@
 __fortify_potential_overload __wur char *
 gets (char *const __clang_pass_object_size __str)
 __FORTIFY_PRECONDITIONS
-     __FORTIFY_WARNING_IF (__gets_warn, __bos (__str) == (size_t) -1,
+     __FORTIFY_WARNING_IF (__gets_warn, __glibc_objsize (__str) == (size_t) -1,
 			   "please use fgets or getline instead, gets can't "
 			   "specify buffer size")
 {
-  if (__bos (__str) != (size_t) -1)
-    return __gets_chk (__str, __bos (__str));
+  if (__glibc_objsize (__str) != (size_t) -1)
+    return __gets_chk (__str, __glibc_objsize (__str));
   return __gets_alias (__str);
 }
 __FORTIFY_FUNCTION_END
 #endif
 
 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
-			  FILE *__restrict __stream) __wur;
+			  FILE *__restrict __stream)
+    __wur __attr_access ((__write_only__, 1, 3));
 extern char *__REDIRECT (__fgets_alias,
 			 (char *__restrict __s, int __n,
-			  FILE *__restrict __stream), fgets) __wur;
+			  FILE *__restrict __stream), fgets)
+    __wur __attr_access ((__write_only__, 1, 2));
 
-__fortify_potential_overload __wur char *
+__fortify_potential_overload __wur  __attr_access ((__write_only__, 1, 2)) char *
 fgets (char *__restrict const __clang_pass_object_size __s, int __n,
        FILE *__restrict __stream)
 __FORTIFY_PRECONDITIONS
@@ -315,8 +323,8 @@
 			   "fgets called with bigger size than length of "
 			   "destination buffer")
 {
-  if (__bos (__s) != (size_t) -1)
-    return __fgets_chk (__s, __bos (__s), __n, __stream);
+  if (__glibc_objsize (__s) != (size_t) -1)
+    return __fgets_chk (__s, __glibc_objsize (__s), __n, __stream);
   return __fgets_alias (__s, __n, __stream);
 }
 __FORTIFY_FUNCTION_END
@@ -338,20 +346,22 @@
 			   "fread called with bigger size * nmemb than length "
 			   "of destination buffer")
 {
-  if (__bos0 (__ptr) != (size_t) -1)
-    return __fread_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
+  if (__glibc_objsize0 (__ptr) != (size_t) -1)
+    return __fread_chk (__ptr, __glibc_objsize0 (__ptr), __size, __n, __stream);
   return __fread_alias (__ptr, __size, __n, __stream);
 }
 __FORTIFY_FUNCTION_END
 
 #ifdef __USE_GNU
 extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
-				   int __n, FILE *__restrict __stream) __wur;
+				   int __n, FILE *__restrict __stream)
+    __wur __attr_access ((__write_only__, 1, 3));
 extern char *__REDIRECT (__fgets_unlocked_alias,
 			 (char *__restrict __s, int __n,
-			  FILE *__restrict __stream), fgets_unlocked) __wur;
+			  FILE *__restrict __stream), fgets_unlocked)
+    __wur __attr_access ((__write_only__, 1, 2));
 
-__fortify_potential_overload __wur char *
+__fortify_potential_overload __wur __attr_access ((__write_only__, 1, 2)) char *
 fgets_unlocked (char *__restrict const __clang_pass_object_size __s, int __n,
 		FILE *__restrict __stream)
 __FORTIFY_PRECONDITIONS
@@ -360,8 +370,8 @@
 			   "fgets_unlocked called with bigger size than length "
 			   "of destination buffer")
 {
-  if (__bos (__s) != (size_t) -1)
-    return __fgets_unlocked_chk (__s, __bos (__s), __n, __stream);
+  if (__glibc_objsize (__s) != (size_t) -1)
+    return __fgets_unlocked_chk (__s, __glibc_objsize (__s), __n, __stream);
   return __fgets_unlocked_alias (__s, __n, __stream);
 }
 __FORTIFY_FUNCTION_END
@@ -387,8 +397,8 @@
 			   "fread_unlocked called with bigger size * n than "
 			   "length of destination buffer")
 {
-  if (__bos0 (__ptr) != (size_t) -1)
-    return __fread_unlocked_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
+  if (__glibc_objsize0 (__ptr) != (size_t) -1)
+    return __fread_unlocked_chk (__ptr, __glibc_objsize0 (__ptr), __size, __n, __stream);
 
 # ifdef __USE_EXTERN_INLINES
   if (__builtin_constant_p (__size)
@@ -403,7 +413,7 @@
 
       for (; __cnt > 0; --__cnt)
 	{
-	  int __c = _IO_getc_unlocked (__stream);
+	  int __c = getc_unlocked (__stream);
 	  if (__c == EOF)
 	    break;
 	  *__cptr++ = __c;
@@ -415,4 +425,6 @@
 }
 __FORTIFY_FUNCTION_END
 #endif
+
 #undef __mul_may_overflow
+#endif /* bits/stdio2.h.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio_lim.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio_lim.h
index 1be90e6..ff1a2c3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio_lim.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdio_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_STDIO_LIM_H
 #define _BITS_STDIO_LIM_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-bsearch.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-bsearch.h
index d83239a..4132dc6 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-bsearch.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-bsearch.h
@@ -1,5 +1,5 @@
 /* Perform binary search - inline version.
-   Copyright (C) 1991-2018 Free Software Foundation, Inc.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 __extern_inline void *
 bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-float.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-float.h
index cb0c35b..3373c5b 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-float.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-float.h
@@ -1,5 +1,5 @@
 /* Floating-point inline functions for stdlib.h.
-   Copyright (C) 2012-2018 Free Software Foundation, Inc.
+   Copyright (C) 2012-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _STDLIB_H
 # error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-ldbl.h
index f7ae101..775b6e5 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-ldbl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib-ldbl.h
@@ -1,5 +1,5 @@
 /* -mlong-double-64 compatibility mode for <stdlib.h> functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,28 +14,50 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _STDLIB_H
 # error "Never include <bits/stdlib-ldbl.h> directly; use <stdlib.h> instead."
 #endif
 
 #ifdef	__USE_ISOC99
+# ifdef __LDBL_COMPAT
 __LDBL_REDIR1_DECL (strtold, strtod)
+# else
+__LDBL_REDIR1_DECL (strtold, __strtoieee128)
+# endif
 #endif
 
 #ifdef __USE_GNU
+# ifdef __LDBL_COMPAT
 __LDBL_REDIR1_DECL (strtold_l, strtod_l)
+# else
+__LDBL_REDIR1_DECL (strtold_l, __strtoieee128_l)
+# endif
 #endif
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+# ifdef __LDBL_COMPAT
 __LDBL_REDIR1_DECL (strfroml, strfromd)
+# else
+__LDBL_REDIR1_DECL (strfroml, __strfromieee128)
+# endif
 #endif
 
 #ifdef __USE_MISC
+# if defined __LDBL_COMPAT
 __LDBL_REDIR1_DECL (qecvt, ecvt)
 __LDBL_REDIR1_DECL (qfcvt, fcvt)
 __LDBL_REDIR1_DECL (qgcvt, gcvt)
 __LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
 __LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
+__LDBL_REDIR1_DECL (qecvt, __qecvtieee128)
+__LDBL_REDIR1_DECL (qfcvt, __qfcvtieee128)
+__LDBL_REDIR1_DECL (qgcvt, __qgcvtieee128)
+__LDBL_REDIR1_DECL (qecvt_r, __qecvtieee128_r)
+__LDBL_REDIR1_DECL (qfcvt_r, __qfcvtieee128_r)
+# else
+#  error bits/stdlib-ldbl.h included when no ldbl redirections are required.
+# endif
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib.h
index 3c54273..79babec 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stdlib.h
@@ -1,5 +1,5 @@
 /* Checking macros for stdlib functions.
-   Copyright (C) 2005-2018 Free Software Foundation, Inc.
+   Copyright (C) 2005-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _STDLIB_H
 # error "Never include <bits/stdlib.h> directly; use <stdlib.h> instead."
@@ -42,18 +42,19 @@
 #if defined _LIBC_LIMITS_H_ && defined PATH_MAX
       __FORTIFY_CALL_CHK &&
 #endif
-      __bos (__resolved) != (size_t) -1)
-    return __realpath_chk (__name, __resolved, __bos (__resolved));
+      __glibc_objsize (__resolved) != (size_t) -1)
+    return __realpath_chk (__name, __resolved, __glibc_objsize (__resolved));
   return __realpath_alias (__name, __resolved);
 }
 __FORTIFY_FUNCTION_END
 
 
 extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
-			    size_t __nreal) __THROW __nonnull ((2));
+			    size_t __nreal) __THROW __nonnull ((2))
+    __attr_access ((__write_only__, 2, 3));
 extern int __REDIRECT_NTH (__ptsname_r_alias, (int __fd, char *__buf,
 					       size_t __buflen), ptsname_r)
-     __nonnull ((2));
+     __nonnull ((2)) __attr_access ((__write_only__, 2, 3));
 
 __fortify_potential_overload int
 __NTH (ptsname_r (int __fd, char *const __clang_pass_object_size __buf,
@@ -63,8 +64,8 @@
 				       "ptsname_r called with buflen "
 				       "bigger than size of buf")
 {
-  if (__FORTIFY_CALL_CHK && __bos (__buf) != (size_t) -1)
-    return __ptsname_r_chk (__fd, __buf, __buflen, __bos (__buf));
+  if (__FORTIFY_CALL_CHK && __glibc_objsize (__buf) != (size_t) -1)
+    return __ptsname_r_chk (__fd, __buf, __buflen, __glibc_objsize (__buf));
   return __ptsname_r_alias (__fd, __buf, __buflen);
 }
 __FORTIFY_FUNCTION_END
@@ -84,19 +85,22 @@
 #if defined MB_LEN_MAX && MB_LEN_MAX != __STDLIB_MB_LEN_MAX
 # error "Assumed value of MB_LEN_MAX wrong"
 #endif
-  if (__bos (__s) != (size_t) -1 && __STDLIB_MB_LEN_MAX > __bos (__s))
-    return __wctomb_chk (__s, __wchar, __bos (__s));
+  if (__glibc_objsize (__s) != (size_t) -1
+      && __STDLIB_MB_LEN_MAX > __glibc_objsize (__s))
+    return __wctomb_chk (__s, __wchar, __glibc_objsize (__s));
   return __wctomb_alias (__s, __wchar);
 }
 
 
 extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
 			      const char *__restrict __src,
-			      size_t __len, size_t __dstlen) __THROW;
+			      size_t __len, size_t __dstlen) __THROW
+    __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
 extern size_t __REDIRECT_NTH (__mbstowcs_alias,
 			      (wchar_t *__restrict __dst,
 			       const char *__restrict __src,
-			       size_t __len), mbstowcs);
+			       size_t __len), mbstowcs)
+    __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
 
 __fortify_potential_overload size_t
 __NTH (mbstowcs (wchar_t *__restrict const __clang_pass_object_size __dst,
@@ -107,9 +111,9 @@
 					"mbstowcs called with dst buffer "
 					"smaller than len * sizeof (wchar_t)")
 {
-  if (__FORTIFY_CALL_CHK && __bos (__dst) != (size_t) -1)
+  if (__FORTIFY_CALL_CHK && __glibc_objsize (__dst) != (size_t) -1)
     return __mbstowcs_chk (__dst, __src, __len,
-			   __bos (__dst) / sizeof (wchar_t));
+			   __glibc_objsize (__dst) / sizeof (wchar_t));
   return __mbstowcs_alias (__dst, __src, __len);
 }
 __FORTIFY_FUNCTION_END
@@ -117,11 +121,13 @@
 
 extern size_t __wcstombs_chk (char *__restrict __dst,
 			      const wchar_t *__restrict __src,
-			      size_t __len, size_t __dstlen) __THROW;
+			      size_t __len, size_t __dstlen) __THROW
+  __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
 extern size_t __REDIRECT_NTH (__wcstombs_alias,
 			      (char *__restrict __dst,
 			       const wchar_t *__restrict __src,
-			       size_t __len), wcstombs);
+			       size_t __len), wcstombs)
+  __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
 
 __fortify_potential_overload size_t
 __NTH (wcstombs (char *__restrict const __clang_pass_object_size __dst,
@@ -131,8 +137,8 @@
 				       "wcstombs called with dst buffer "
 				       "smaller than len")
 {
-  if (__FORTIFY_CALL_CHK && __bos (__dst) != (size_t) -1)
-    return __wcstombs_chk (__dst, __src, __len, __bos (__dst));
+  if (__FORTIFY_CALL_CHK && __glibc_objsize (__dst) != (size_t) -1)
+    return __wcstombs_chk (__dst, __src, __len, __glibc_objsize (__dst));
   return __wcstombs_alias (__dst, __src, __len);
 }
 __FORTIFY_FUNCTION_END
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/string_fortified.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/string_fortified.h
index 7b16afa..6a8d207 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/string_fortified.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/string_fortified.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_STRING_FORTIFIED_H
 #define _BITS_STRING_FORTIFIED_H 1
@@ -28,16 +28,16 @@
 #define __size_too_small(bos, dest, len) \
   (bos (dest) != (size_t) -1 && bos (dest) < len)
 #define __warn_if_dest_too_small(dest, len) \
-  __clang_warning_if (__size_too_small (__bos, dest, len), \
+  __clang_warning_if (__size_too_small (__glibc_objsize, dest, len), \
 					__warn_len_too_large)
 #define __warn_if_dest_too_small0(dest, len) \
-  __clang_warning_if (__size_too_small (__bos0, dest, len), \
+  __clang_warning_if (__size_too_small (__glibc_objsize0, dest, len), \
 					__warn_len_too_large)
 
 #define __warn_input_str_too_large \
   "destination buffer will always be overflown by source"
 #define __warn_if_src_too_large(dest, src) \
-  __clang_warning_if (__size_too_small (__bos, dest, __builtin_strlen (src) + 1), \
+  __clang_warning_if (__size_too_small (__glibc_objsize, dest, __builtin_strlen (src) + 1), \
 		      __warn_input_str_too_large)
 
 __fortify_potential_overload void *
@@ -45,11 +45,11 @@
 	       const void *__restrict __src, size_t __len))
      __warn_if_dest_too_small0 (__dest, __len)
 {
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     return __builtin_memcpy (__dest, __src, __len);
-  return __builtin___memcpy_chk (__dest, __src, __len, __bos_dst);
+  return __builtin___memcpy_chk (__dest, __src, __len, __glibc_objsize_dst);
 }
 
 __fortify_potential_overload void *
@@ -57,11 +57,11 @@
 		const void *__src, size_t __len))
      __warn_if_dest_too_small0 (__dest, __len)
 {
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     return __builtin_memmove (__dest, __src, __len);
-  return __builtin___memmove_chk (__dest, __src, __len, __bos_dst);
+  return __builtin___memmove_chk (__dest, __src, __len, __glibc_objsize_dst);
 }
 
 #ifdef __USE_GNU
@@ -70,11 +70,11 @@
 		const void *__restrict __src, size_t __len))
      __warn_if_dest_too_small0 (__dest, __len)
 {
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     return __builtin_mempcpy (__dest, __src, __len);
-  return __builtin___mempcpy_chk (__dest, __src, __len, __bos_dst);
+  return __builtin___mempcpy_chk (__dest, __src, __len, __glibc_objsize_dst);
 }
 #endif
 
@@ -86,30 +86,17 @@
 #define __warn_memset_zero_len_msg \
   "memset used with constant zero length parameter; this could be due to " \
   "transposed parameters"
-#if !__GNUC_PREREQ (5,0)
-__warndecl (__warn_memset_zero_len, __warn_memset_zero_len_msg);
-#endif
 __fortify_potential_overload void *
 __NTH (memset (void *const __clang_pass_object_size0 __dest, int __ch,
 	       size_t __len))
      __warn_if_dest_too_small0 (__dest, __len)
      __clang_warning_if (__len == 0 && __ch != 0, __warn_memset_zero_len_msg)
 {
-  /* GCC-5.0 and newer implements these checks in the compiler, so we don't
-     need them here.  */
-#if !__GNUC_PREREQ (5,0) && !defined __use_clang_fortify
-  if (__builtin_constant_p (__len) && __len == 0
-      && (!__builtin_constant_p (__ch) || __ch != 0))
-    {
-      __warn_memset_zero_len ();
-      return __dest;
-    }
-#endif
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     return __builtin_memset (__dest, __ch, __len);
-  return __builtin___memset_chk (__dest, __ch, __len, __bos_dst);
+  return __builtin___memset_chk (__dest, __ch, __len, __glibc_objsize_dst);
 }
 #undef __warn_memset_zero_len_msg
 
@@ -117,12 +104,12 @@
 # include <bits/strings_fortified.h>
 
 void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen)
-  __THROW __nonnull ((1));
+  __THROW __nonnull ((1)) __attr_access ((__write_only__, 1, 2));
 
 __fortify_function void
 __NTH (explicit_bzero (void *__dest, size_t __len))
 {
-  __explicit_bzero_chk (__dest, __len, __bos0 (__dest));
+  __explicit_bzero_chk (__dest, __len, __glibc_objsize0 (__dest));
 }
 #endif
 
@@ -131,7 +118,7 @@
 	       const char *__restrict __src))
      __warn_if_src_too_large (__dest, __src)
 {
-  return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
+  return __builtin___strcpy_chk (__dest, __src, __glibc_objsize (__dest));
 }
 
 #ifdef __USE_GNU
@@ -140,23 +127,24 @@
 	       const char *__restrict __src))
      __warn_if_src_too_large (__dest, __src)
 {
-  return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
+  return __builtin___stpcpy_chk (__dest, __src, __glibc_objsize (__dest));
 }
 #endif
 
 __fortify_potential_overload char *
 __NTH (strncpy (char *__restrict const __clang_pass_object_size __dest,
 		const char *__restrict __src, size_t __len))
-/* clang: Don't warn when __builtin_strlen (__src) < __bos (__dest),
-   but __len > __bos (__dest).  The user should fix their code instead.  */
+/* clang: Don't warn when __builtin_strlen (__src) < __glibc_objsize (__dest),
+   but __len > __glibc_objsize (__dest).  The user should fix their code instead.  */
      __warn_if_dest_too_small (__dest, __len)
 {
-  return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
+  return __builtin___strncpy_chk (__dest, __src, __len,
+				  __glibc_objsize (__dest));
 }
 
-/* XXX We have no corresponding builtin yet.  */
 extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
-			    size_t __destlen) __THROW;
+			    size_t __destlen) __THROW
+  __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
 extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
 					       size_t __n), stpncpy);
 
@@ -165,8 +153,8 @@
 		size_t __n))
      __warn_if_dest_too_small (__dest, __n)
 {
-  if (__bos (__dest) != (size_t) -1)
-    return __stpncpy_chk (__dest, __src, __n, __bos (__dest));
+  if (__glibc_objsize (__dest) != (size_t) -1)
+    return __stpncpy_chk (__dest, __src, __n, __glibc_objsize (__dest));
   return __stpncpy_alias (__dest, __src, __n);
 }
 
@@ -175,7 +163,7 @@
 	       const char *__restrict __src))
      __warn_if_src_too_large (__dest, __src)
 {
-  return __builtin___strcat_chk (__dest, __src, __bos (__dest));
+  return __builtin___strcat_chk (__dest, __src, __glibc_objsize (__dest));
 }
 
 __fortify_potential_overload char *
@@ -183,7 +171,8 @@
 		const char *__restrict __src, size_t __len))
      __warn_if_src_too_large (__dest, __src)
 {
-  return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
+  return __builtin___strncat_chk (__dest, __src, __len,
+				  __glibc_objsize (__dest));
 }
 
 #undef __warn_len_too_large
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/strings_fortified.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/strings_fortified.h
index e910d28..4c610f4 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/strings_fortified.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/strings_fortified.h
@@ -1,5 +1,5 @@
 /* Fortify macros for strings.h functions.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef __STRINGS_FORTIFIED
 # define __STRINGS_FORTIFIED 1
@@ -31,12 +31,12 @@
      __clang_warning_if (__strings_size_too_small (__dest, __len),
 			 __strings_warn_len_too_large)
 {
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     (void) __builtin_memmove (__dest, __src, __len);
   else
-    (void) __builtin___memmove_chk (__dest, __src, __len, __bos_dst);
+    (void) __builtin___memmove_chk (__dest, __src, __len, __glibc_objsize_dst);
 }
 
 __fortify_potential_overload void
@@ -44,12 +44,12 @@
      __clang_warning_if (__strings_size_too_small (__dest, __len),
 			 __strings_warn_len_too_large)
 {
-  size_t __bos_dst = __bos0 (__dest);
-  if (__bos_dst == (size_t) -1 || (__builtin_constant_p (__len)
-				   && __bos_dst >= __len))
+  size_t __glibc_objsize_dst = __glibc_objsize0 (__dest);
+  if (__glibc_objsize_dst == (size_t) -1 || (__builtin_constant_p (__len)
+				   && __glibc_objsize_dst >= __len))
     (void) __builtin_memset (__dest, '\0', __len);
   else
-    (void) __builtin___memset_chk (__dest, '\0', __len, __bos_dst);
+    (void) __builtin___memset_chk (__dest, '\0', __len, __glibc_objsize_dst);
 }
 
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stropts.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stropts.h
deleted file mode 100644
index 8410b6c..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/stropts.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/stropts.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_STROPTS_H
-#define _BITS_STROPTS_H	1
-
-#include <bits/types.h>
-
-/* Macros used as `request' argument to `ioctl'.  */
-#define __SID		('S' << 8)
-
-#define I_NREAD	    (__SID | 1)	/* Counts the number of data bytes in the data
-				   block in the first message.  */
-#define I_PUSH	    (__SID | 2)	/* Push STREAMS module onto top of the current
-				   STREAM, just below the STREAM head.  */
-#define I_POP	    (__SID | 3)	/* Remove STREAMS module from just below the
-				   STREAM head.  */
-#define I_LOOK	    (__SID | 4)	/* Retrieve the name of the module just below
-				   the STREAM head and place it in a character
-				   string.  */
-#define I_FLUSH	    (__SID | 5)	/* Flush all input and/or output.  */
-#define I_SRDOPT    (__SID | 6)	/* Sets the read mode.  */
-#define I_GRDOPT    (__SID | 7)	/* Returns the current read mode setting.  */
-#define I_STR	    (__SID | 8)	/* Construct an internal STREAMS `ioctl'
-				   message and send that message downstream. */
-#define I_SETSIG    (__SID | 9)	/* Inform the STREAM head that the process
-				   wants the SIGPOLL signal issued.  */
-#define I_GETSIG    (__SID |10) /* Return the events for which the calling
-				   process is currently registered to be sent
-				   a SIGPOLL signal.  */
-#define I_FIND	    (__SID |11) /* Compares the names of all modules currently
-				   present in the STREAM to the name pointed to
-				   by `arg'.  */
-#define I_LINK	    (__SID |12) /* Connect two STREAMs.  */
-#define I_UNLINK    (__SID |13) /* Disconnects the two STREAMs.  */
-#define I_PEEK	    (__SID |15) /* Allows a process to retrieve the information
-				   in the first message on the STREAM head read
-				   queue without taking the message off the
-				   queue.  */
-#define I_FDINSERT  (__SID |16) /* Create a message from the specified
-				   buffer(s), adds information about another
-				   STREAM, and send the message downstream.  */
-#define I_SENDFD    (__SID |17) /* Requests the STREAM associated with `fildes'
-				   to send a message, containing a file
-				   pointer, to the STREAM head at the other end
-				   of a STREAMS pipe.  */
-#define I_RECVFD    (__SID |14) /* Non-EFT definition.  */
-#define I_SWROPT    (__SID |19) /* Set the write mode.  */
-#define I_GWROPT    (__SID |20) /* Return the current write mode setting.  */
-#define I_LIST	    (__SID |21) /* List all the module names on the STREAM, up
-				   to and including the topmost driver name. */
-#define I_PLINK	    (__SID |22) /* Connect two STREAMs with a persistent
-				   link.  */
-#define I_PUNLINK   (__SID |23) /* Disconnect the two STREAMs that were
-				   connected with a persistent link.  */
-#define I_FLUSHBAND (__SID |28) /* Flush only band specified.  */
-#define I_CKBAND    (__SID |29) /* Check if the message of a given priority
-				   band exists on the STREAM head read
-				   queue.  */
-#define I_GETBAND   (__SID |30) /* Return the priority band of the first
-				   message on the STREAM head read queue.  */
-#define I_ATMARK    (__SID |31) /* See if the current message on the STREAM
-				   head read queue is "marked" by some module
-				   downstream.  */
-#define I_SETCLTIME (__SID |32) /* Set the time the STREAM head will delay when
-				   a STREAM is closing and there is data on
-				   the write queues.  */
-#define I_GETCLTIME (__SID |33) /* Get current value for closing timeout.  */
-#define I_CANPUT    (__SID |34) /* Check if a certain band is writable.  */
-
-
-/* Used in `I_LOOK' request.  */
-#define FMNAMESZ	8	/* compatibility w/UnixWare/Solaris.  */
-
-/* Flush options.  */
-#define FLUSHR		0x01	/* Flush read queues.  */
-#define FLUSHW		0x02	/* Flush write queues.  */
-#define FLUSHRW		0x03	/* Flush read and write queues.  */
-#ifdef __USE_GNU
-# define FLUSHBAND	0x04	/* Flush only specified band.  */
-#endif
-
-/* Possible arguments for `I_SETSIG'.  */
-#define S_INPUT		0x0001	/* A message, other than a high-priority
-				   message, has arrived.  */
-#define S_HIPRI		0x0002	/* A high-priority message is present.  */
-#define S_OUTPUT	0x0004	/* The write queue for normal data is no longer
-				   full.  */
-#define S_MSG		0x0008	/* A STREAMS signal message that contains the
-				   SIGPOLL signal reaches the front of the
-				   STREAM head read queue.  */
-#define S_ERROR		0x0010	/* Notification of an error condition.  */
-#define S_HANGUP	0x0020	/* Notification of a hangup.  */
-#define S_RDNORM	0x0040	/* A normal message has arrived.  */
-#define S_WRNORM	S_OUTPUT
-#define S_RDBAND	0x0080	/* A message with a non-zero priority has
-				   arrived.  */
-#define S_WRBAND	0x0100	/* The write queue for a non-zero priority
-				   band is no longer full.  */
-#define S_BANDURG	0x0200	/* When used in conjunction with S_RDBAND,
-				   SIGURG is generated instead of SIGPOLL when
-				   a priority message reaches the front of the
-				   STREAM head read queue.  */
-
-/* Option for `I_PEEK'.  */
-#define RS_HIPRI	0x01	/* Only look for high-priority messages.  */
-
-/* Options for `I_SRDOPT'.  */
-#define RNORM		0x0000	/* Byte-STREAM mode, the default.  */
-#define RMSGD		0x0001	/* Message-discard mode.   */
-#define RMSGN		0x0002	/* Message-nondiscard mode.   */
-#define RPROTDAT	0x0004	/* Deliver the control part of a message as
-				   data.  */
-#define RPROTDIS	0x0008	/* Discard the control part of a message,
-				   delivering any data part.  */
-#define RPROTNORM	0x0010	/* Fail `read' with EBADMSG if a message
-				   containing a control part is at the front
-				   of the STREAM head read queue.  */
-#ifdef __USE_GNU
-# define RPROTMASK	0x001C	/* The RPROT bits */
-#endif
-
-/* Possible mode for `I_SWROPT'.  */
-#define SNDZERO		0x001	/* Send a zero-length message downstream when a
-				   `write' of 0 bytes occurs.  */
-#ifdef __USE_GNU
-# define SNDPIPE	0x002	/* Send SIGPIPE on write and putmsg if
-				   sd_werror is set.  */
-#endif
-
-/* Arguments for `I_ATMARK'.  */
-#define ANYMARK		0x01	/* Check if the message is marked.  */
-#define LASTMARK	0x02	/* Check if the message is the last one marked
-				   on the queue.  */
-
-/* Argument for `I_UNLINK'.  */
-#ifdef __USE_GNU
-# define MUXID_ALL	(-1)	/* Unlink all STREAMs linked to the STREAM
-				   associated with `fildes'.  */
-#endif
-
-
-/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'.  */
-#define MSG_HIPRI	0x01	/* Send/receive high priority message.  */
-#define MSG_ANY		0x02	/* Receive any message.  */
-#define MSG_BAND	0x04	/* Receive message from specified band.  */
-
-/* Values returned by getmsg and getpmsg */
-#define MORECTL		1	/* More control information is left in
-				   message.  */
-#define MOREDATA	2	/* More data is left in message.  */
-
-
-/* Structure used for the I_FLUSHBAND ioctl on streams.  */
-struct bandinfo
-  {
-    unsigned char bi_pri;
-    int bi_flag;
-  };
-
-struct strbuf
-  {
-    int maxlen;		/* Maximum buffer length.  */
-    int len;		/* Length of data.  */
-    char *buf;		/* Pointer to buffer.  */
-  };
-
-struct strpeek
-  {
-    struct strbuf ctlbuf;
-    struct strbuf databuf;
-    t_uscalar_t flags;			/* UnixWare/Solaris compatibility.  */
-  };
-
-struct strfdinsert
-  {
-    struct strbuf ctlbuf;
-    struct strbuf databuf;
-    t_uscalar_t flags;			/* UnixWare/Solaris compatibility.  */
-    int fildes;
-    int offset;
-  };
-
-struct strioctl
-  {
-    int ic_cmd;
-    int ic_timout;
-    int ic_len;
-    char *ic_dp;
-  };
-
-struct strrecvfd
-  {
-    int fd;
-    uid_t uid;
-    gid_t gid;
-    char __fill[8];			/* UnixWare/Solaris compatibility */
-  };
-
-
-struct str_mlist
-  {
-    char l_name[FMNAMESZ + 1];
-  };
-
-struct str_list
-  {
-    int sl_nmods;
-    struct str_mlist *sl_modlist;
-  };
-
-#endif /* bits/stropts.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_mutex.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_mutex.h
new file mode 100644
index 0000000..16c17a1
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_mutex.h
@@ -0,0 +1,84 @@
+/* Default mutex implementation struct definitions.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+/* Generic struct for both POSIX and C11 mutexes.  New ports are expected
+   to use the default layout, however architecture can redefine it to
+   add arch-specific extension (such as lock-elision).  The struct have
+   a size of 32 bytes on LP32 and 40 bytes on LP64 architectures.  */
+
+struct __pthread_mutex_s
+{
+  int __lock __LOCK_ALIGNMENT;
+  unsigned int __count;
+  int __owner;
+#if __WORDSIZE == 64
+  unsigned int __nusers;
+#endif
+  /* KIND must stay at this position in the structure to maintain
+     binary compatibility with static initializers.
+
+     Concurrency notes:
+     The __kind of a mutex is initialized either by the static
+     PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init.
+
+     After a mutex has been initialized, the __kind of a mutex is usually not
+     changed.  BUT it can be set to -1 in pthread_mutex_destroy or elision can
+     be enabled.  This is done concurrently in the pthread_mutex_*lock
+     functions by using the macro FORCE_ELISION. This macro is only defined
+     for architectures which supports lock elision.
+
+     For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and
+     PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already
+     set type of a mutex.  Before a mutex is initialized, only
+     PTHREAD_MUTEX_NO_ELISION_NP can be set with pthread_mutexattr_settype.
+
+     After a mutex has been initialized, the functions pthread_mutex_*lock can
+     enable elision - if the mutex-type and the machine supports it - by
+     setting the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently.
+     Afterwards the lock / unlock functions are using specific elision
+     code-paths.  */
+  int __kind;
+#if __WORDSIZE != 64
+  unsigned int __nusers;
+#endif
+#if __WORDSIZE == 64
+  int __spins;
+  __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV      1
+#else
+  __extension__ union
+  {
+    int __spins;
+    __pthread_slist_t __list;
+  };
+# define __PTHREAD_MUTEX_HAVE_PREV      0
+#endif
+};
+
+#if __PTHREAD_MUTEX_HAVE_PREV == 1
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+  0, 0, 0, 0, __kind, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+  0, 0, 0, __kind, 0, { 0 }
+#endif
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_rwlock.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_rwlock.h
new file mode 100644
index 0000000..bf28a94
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_rwlock.h
@@ -0,0 +1,41 @@
+/* AArch64 internal rwlock struct definitions.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+  unsigned int __readers;
+  unsigned int __writers;
+  unsigned int __wrphase_futex;
+  unsigned int __writers_futex;
+  unsigned int __pad3;
+  unsigned int __pad4;
+  int __cur_writer;
+  int __shared;
+  unsigned long int __pad1;
+  unsigned long int __pad2;
+  unsigned int __flags;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_stat.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_stat.h
new file mode 100644
index 0000000..32ef511
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/struct_stat.h
@@ -0,0 +1,127 @@
+/* Definition for struct stat.
+   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STRUCT_STAT_H
+#define _BITS_STRUCT_STAT_H	1
+
+#include <bits/endian.h>
+#include <bits/wordsize.h>
+
+#if defined __USE_FILE_OFFSET64
+# define __field64(type, type64, name) type64 name
+#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
+# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
+#  error "ino_t and off_t must both be the same type"
+# endif
+# define __field64(type, type64, name) type name
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
+# define __field64(type, type64, name) \
+  type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
+#else
+# define __field64(type, type64, name) \
+  int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
+#endif
+
+struct stat
+  {
+    __dev_t st_dev;		/* Device.  */
+    __field64(__ino_t, __ino64_t, st_ino);  /* File serial number. */
+    __mode_t st_mode;		/* File mode.  */
+    __nlink_t st_nlink;		/* Link count.  */
+    __uid_t st_uid;		/* User ID of the file's owner.	*/
+    __gid_t st_gid;		/* Group ID of the file's group.*/
+    __dev_t st_rdev;		/* Device number, if device.  */
+    __dev_t __pad1;
+    __field64(__off_t, __off64_t, st_size);  /* Size of file, in bytes. */
+    __blksize_t st_blksize;	/* Optimal block size for I/O.  */
+    int __pad2;
+    __field64(__blkcnt_t, __blkcnt64_t, st_blocks);  /* 512-byte blocks */
+#ifdef __USE_XOPEN2K8
+    /* Nanosecond resolution timestamps are stored in a format
+       equivalent to 'struct timespec'.  This is the type used
+       whenever possible but the Unix namespace rules do not allow the
+       identifier 'timespec' to appear in the <sys/stat.h> header.
+       Therefore we have to handle the use of this header in strictly
+       standard-compliant sources special.  */
+    struct timespec st_atim;		/* Time of last access.  */
+    struct timespec st_mtim;		/* Time of last modification.  */
+    struct timespec st_ctim;		/* Time of last status change.  */
+# define st_atime st_atim.tv_sec	/* Backward compatibility.  */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+    __time_t st_atime;			/* Time of last access.  */
+    unsigned long int st_atimensec;	/* Nscecs of last access.  */
+    __time_t st_mtime;			/* Time of last modification.  */
+    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
+    __time_t st_ctime;			/* Time of last status change.  */
+    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
+#endif
+    int __glibc_reserved[2];
+  };
+
+#undef __field64
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+  {
+    __dev_t st_dev;		/* Device.  */
+    __ino64_t st_ino;		/* File serial number.	*/
+    __mode_t st_mode;		/* File mode.  */
+    __nlink_t st_nlink;		/* Link count.  */
+    __uid_t st_uid;		/* User ID of the file's owner.	*/
+    __gid_t st_gid;		/* Group ID of the file's group.*/
+    __dev_t st_rdev;		/* Device number, if device.  */
+    __dev_t __pad1;
+    __off64_t st_size;		/* Size of file, in bytes.  */
+    __blksize_t st_blksize;	/* Optimal block size for I/O.  */
+    int __pad2;
+    __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
+#ifdef __USE_XOPEN2K8
+    /* Nanosecond resolution timestamps are stored in a format
+       equivalent to 'struct timespec'.  This is the type used
+       whenever possible but the Unix namespace rules do not allow the
+       identifier 'timespec' to appear in the <sys/stat.h> header.
+       Therefore we have to handle the use of this header in strictly
+       standard-compliant sources special.  */
+    struct timespec st_atim;		/* Time of last access.  */
+    struct timespec st_mtim;		/* Time of last modification.  */
+    struct timespec st_ctim;		/* Time of last status change.  */
+#else
+    __time_t st_atime;			/* Time of last access.  */
+    unsigned long int st_atimensec;	/* Nscecs of last access.  */
+    __time_t st_mtime;			/* Time of last modification.  */
+    unsigned long int st_mtimensec;	/* Nsecs of last modification.  */
+    __time_t st_ctime;			/* Time of last status change.  */
+    unsigned long int st_ctimensec;	/* Nsecs of last status change.  */
+#endif
+    int __glibc_reserved[2];
+  };
+#endif
+
+/* Tell code we have these members.  */
+#define	_STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported.  */
+#define _STATBUF_ST_NSEC
+
+#endif /* _BITS_STRUCT_STAT_H  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sys_errlist.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sys_errlist.h
deleted file mode 100644
index 4f725e9..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sys_errlist.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Declare sys_errlist and sys_nerr, or don't.  Compatibility (do) version.
-   Copyright (C) 2002-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _STDIO_H
-# error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead."
-#endif
-
-/* sys_errlist and sys_nerr are deprecated.  Use strerror instead.  */
-
-#ifdef  __USE_MISC
-extern int sys_nerr;
-extern const char *const sys_errlist[];
-#endif
-#ifdef  __USE_GNU
-extern int _sys_nerr;
-extern const char *const _sys_errlist[];
-#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syscall.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syscall.h
index 65a64d0..98c9ea7 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syscall.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syscall.h
@@ -1,11 +1,11 @@
 /* Generated at libc build time from syscall list.  */
-/* The system call list corresponds to kernel 4.14.  */
+/* The system call list corresponds to kernel 5.10.  */
 
 #ifndef _SYSCALL_H
 # error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."
 #endif
 
-#define __GLIBC_LINUX_VERSION_CODE 265728
+#define __GLIBC_LINUX_VERSION_CODE 330240
 
 #ifdef __NR_FAST_atomic_update
 # define SYS_FAST_atomic_update __NR_FAST_atomic_update
@@ -75,6 +75,18 @@
 # define SYS_alloc_hugepages __NR_alloc_hugepages
 #endif
 
+#ifdef __NR_arc_gettls
+# define SYS_arc_gettls __NR_arc_gettls
+#endif
+
+#ifdef __NR_arc_settls
+# define SYS_arc_settls __NR_arc_settls
+#endif
+
+#ifdef __NR_arc_usr_cmpxchg
+# define SYS_arc_usr_cmpxchg __NR_arc_usr_cmpxchg
+#endif
+
 #ifdef __NR_arch_prctl
 # define SYS_arch_prctl __NR_arch_prctl
 #endif
@@ -115,6 +127,10 @@
 # define SYS_break __NR_break
 #endif
 
+#ifdef __NR_breakpoint
+# define SYS_breakpoint __NR_breakpoint
+#endif
+
 #ifdef __NR_brk
 # define SYS_brk __NR_brk
 #endif
@@ -159,22 +175,42 @@
 # define SYS_clock_adjtime __NR_clock_adjtime
 #endif
 
+#ifdef __NR_clock_adjtime64
+# define SYS_clock_adjtime64 __NR_clock_adjtime64
+#endif
+
 #ifdef __NR_clock_getres
 # define SYS_clock_getres __NR_clock_getres
 #endif
 
+#ifdef __NR_clock_getres_time64
+# define SYS_clock_getres_time64 __NR_clock_getres_time64
+#endif
+
 #ifdef __NR_clock_gettime
 # define SYS_clock_gettime __NR_clock_gettime
 #endif
 
+#ifdef __NR_clock_gettime64
+# define SYS_clock_gettime64 __NR_clock_gettime64
+#endif
+
 #ifdef __NR_clock_nanosleep
 # define SYS_clock_nanosleep __NR_clock_nanosleep
 #endif
 
+#ifdef __NR_clock_nanosleep_time64
+# define SYS_clock_nanosleep_time64 __NR_clock_nanosleep_time64
+#endif
+
 #ifdef __NR_clock_settime
 # define SYS_clock_settime __NR_clock_settime
 #endif
 
+#ifdef __NR_clock_settime64
+# define SYS_clock_settime64 __NR_clock_settime64
+#endif
+
 #ifdef __NR_clone
 # define SYS_clone __NR_clone
 #endif
@@ -183,10 +219,18 @@
 # define SYS_clone2 __NR_clone2
 #endif
 
+#ifdef __NR_clone3
+# define SYS_clone3 __NR_clone3
+#endif
+
 #ifdef __NR_close
 # define SYS_close __NR_close
 #endif
 
+#ifdef __NR_close_range
+# define SYS_close_range __NR_close_range
+#endif
+
 #ifdef __NR_cmpxchg_badaddr
 # define SYS_cmpxchg_badaddr __NR_cmpxchg_badaddr
 #endif
@@ -291,6 +335,10 @@
 # define SYS_faccessat __NR_faccessat
 #endif
 
+#ifdef __NR_faccessat2
+# define SYS_faccessat2 __NR_faccessat2
+#endif
+
 #ifdef __NR_fadvise64
 # define SYS_fadvise64 __NR_fadvise64
 #endif
@@ -367,6 +415,10 @@
 # define SYS_fork __NR_fork
 #endif
 
+#ifdef __NR_fp_udfiex_crtl
+# define SYS_fp_udfiex_crtl __NR_fp_udfiex_crtl
+#endif
+
 #ifdef __NR_free_hugepages
 # define SYS_free_hugepages __NR_free_hugepages
 #endif
@@ -375,10 +427,26 @@
 # define SYS_fremovexattr __NR_fremovexattr
 #endif
 
+#ifdef __NR_fsconfig
+# define SYS_fsconfig __NR_fsconfig
+#endif
+
 #ifdef __NR_fsetxattr
 # define SYS_fsetxattr __NR_fsetxattr
 #endif
 
+#ifdef __NR_fsmount
+# define SYS_fsmount __NR_fsmount
+#endif
+
+#ifdef __NR_fsopen
+# define SYS_fsopen __NR_fsopen
+#endif
+
+#ifdef __NR_fspick
+# define SYS_fspick __NR_fspick
+#endif
+
 #ifdef __NR_fstat
 # define SYS_fstat __NR_fstat
 #endif
@@ -419,6 +487,10 @@
 # define SYS_futex __NR_futex
 #endif
 
+#ifdef __NR_futex_time64
+# define SYS_futex_time64 __NR_futex_time64
+#endif
+
 #ifdef __NR_futimesat
 # define SYS_futimesat __NR_futimesat
 #endif
@@ -439,6 +511,10 @@
 # define SYS_get_thread_area __NR_get_thread_area
 #endif
 
+#ifdef __NR_get_tls
+# define SYS_get_tls __NR_get_tls
+#endif
+
 #ifdef __NR_getcpu
 # define SYS_getcpu __NR_getcpu
 #endif
@@ -651,6 +727,14 @@
 # define SYS_io_getevents __NR_io_getevents
 #endif
 
+#ifdef __NR_io_pgetevents
+# define SYS_io_pgetevents __NR_io_pgetevents
+#endif
+
+#ifdef __NR_io_pgetevents_time64
+# define SYS_io_pgetevents_time64 __NR_io_pgetevents_time64
+#endif
+
 #ifdef __NR_io_setup
 # define SYS_io_setup __NR_io_setup
 #endif
@@ -659,6 +743,18 @@
 # define SYS_io_submit __NR_io_submit
 #endif
 
+#ifdef __NR_io_uring_enter
+# define SYS_io_uring_enter __NR_io_uring_enter
+#endif
+
+#ifdef __NR_io_uring_register
+# define SYS_io_uring_register __NR_io_uring_register
+#endif
+
+#ifdef __NR_io_uring_setup
+# define SYS_io_uring_setup __NR_io_uring_setup
+#endif
+
 #ifdef __NR_ioctl
 # define SYS_ioctl __NR_ioctl
 #endif
@@ -843,6 +939,10 @@
 # define SYS_mount __NR_mount
 #endif
 
+#ifdef __NR_move_mount
+# define SYS_move_mount __NR_move_mount
+#endif
+
 #ifdef __NR_move_pages
 # define SYS_move_pages __NR_move_pages
 #endif
@@ -871,10 +971,18 @@
 # define SYS_mq_timedreceive __NR_mq_timedreceive
 #endif
 
+#ifdef __NR_mq_timedreceive_time64
+# define SYS_mq_timedreceive_time64 __NR_mq_timedreceive_time64
+#endif
+
 #ifdef __NR_mq_timedsend
 # define SYS_mq_timedsend __NR_mq_timedsend
 #endif
 
+#ifdef __NR_mq_timedsend_time64
+# define SYS_mq_timedsend_time64 __NR_mq_timedsend_time64
+#endif
+
 #ifdef __NR_mq_unlink
 # define SYS_mq_unlink __NR_mq_unlink
 #endif
@@ -947,6 +1055,10 @@
 # define SYS_old_adjtimex __NR_old_adjtimex
 #endif
 
+#ifdef __NR_old_getpagesize
+# define SYS_old_getpagesize __NR_old_getpagesize
+#endif
+
 #ifdef __NR_oldfstat
 # define SYS_oldfstat __NR_oldfstat
 #endif
@@ -979,10 +1091,18 @@
 # define SYS_open_by_handle_at __NR_open_by_handle_at
 #endif
 
+#ifdef __NR_open_tree
+# define SYS_open_tree __NR_open_tree
+#endif
+
 #ifdef __NR_openat
 # define SYS_openat __NR_openat
 #endif
 
+#ifdef __NR_openat2
+# define SYS_openat2 __NR_openat2
+#endif
+
 #ifdef __NR_osf_adjtime
 # define SYS_osf_adjtime __NR_osf_adjtime
 #endif
@@ -1455,6 +1575,18 @@
 # define SYS_personality __NR_personality
 #endif
 
+#ifdef __NR_pidfd_getfd
+# define SYS_pidfd_getfd __NR_pidfd_getfd
+#endif
+
+#ifdef __NR_pidfd_open
+# define SYS_pidfd_open __NR_pidfd_open
+#endif
+
+#ifdef __NR_pidfd_send_signal
+# define SYS_pidfd_send_signal __NR_pidfd_send_signal
+#endif
+
 #ifdef __NR_pipe
 # define SYS_pipe __NR_pipe
 #endif
@@ -1487,6 +1619,10 @@
 # define SYS_ppoll __NR_ppoll
 #endif
 
+#ifdef __NR_ppoll_time64
+# define SYS_ppoll_time64 __NR_ppoll_time64
+#endif
+
 #ifdef __NR_prctl
 # define SYS_prctl __NR_prctl
 #endif
@@ -1507,6 +1643,10 @@
 # define SYS_prlimit64 __NR_prlimit64
 #endif
 
+#ifdef __NR_process_madvise
+# define SYS_process_madvise __NR_process_madvise
+#endif
+
 #ifdef __NR_process_vm_readv
 # define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -1527,6 +1667,10 @@
 # define SYS_pselect6 __NR_pselect6
 #endif
 
+#ifdef __NR_pselect6_time64
+# define SYS_pselect6_time64 __NR_pselect6_time64
+#endif
+
 #ifdef __NR_ptrace
 # define SYS_ptrace __NR_ptrace
 #endif
@@ -1595,6 +1739,10 @@
 # define SYS_recvmmsg __NR_recvmmsg
 #endif
 
+#ifdef __NR_recvmmsg_time64
+# define SYS_recvmmsg_time64 __NR_recvmmsg_time64
+#endif
+
 #ifdef __NR_recvmsg
 # define SYS_recvmsg __NR_recvmsg
 #endif
@@ -1627,10 +1775,18 @@
 # define SYS_restart_syscall __NR_restart_syscall
 #endif
 
+#ifdef __NR_riscv_flush_icache
+# define SYS_riscv_flush_icache __NR_riscv_flush_icache
+#endif
+
 #ifdef __NR_rmdir
 # define SYS_rmdir __NR_rmdir
 #endif
 
+#ifdef __NR_rseq
+# define SYS_rseq __NR_rseq
+#endif
+
 #ifdef __NR_rt_sigaction
 # define SYS_rt_sigaction __NR_rt_sigaction
 #endif
@@ -1659,6 +1815,10 @@
 # define SYS_rt_sigtimedwait __NR_rt_sigtimedwait
 #endif
 
+#ifdef __NR_rt_sigtimedwait_time64
+# define SYS_rt_sigtimedwait_time64 __NR_rt_sigtimedwait_time64
+#endif
+
 #ifdef __NR_rt_tgsigqueueinfo
 # define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo
 #endif
@@ -1683,6 +1843,10 @@
 # define SYS_s390_runtime_instr __NR_s390_runtime_instr
 #endif
 
+#ifdef __NR_s390_sthyi
+# define SYS_s390_sthyi __NR_s390_sthyi
+#endif
+
 #ifdef __NR_sched_get_affinity
 # define SYS_sched_get_affinity __NR_sched_get_affinity
 #endif
@@ -1715,6 +1879,10 @@
 # define SYS_sched_rr_get_interval __NR_sched_rr_get_interval
 #endif
 
+#ifdef __NR_sched_rr_get_interval_time64
+# define SYS_sched_rr_get_interval_time64 __NR_sched_rr_get_interval_time64
+#endif
+
 #ifdef __NR_sched_set_affinity
 # define SYS_sched_set_affinity __NR_sched_set_affinity
 #endif
@@ -1767,6 +1935,10 @@
 # define SYS_semtimedop __NR_semtimedop
 #endif
 
+#ifdef __NR_semtimedop_time64
+# define SYS_semtimedop_time64 __NR_semtimedop_time64
+#endif
+
 #ifdef __NR_send
 # define SYS_send __NR_send
 #endif
@@ -1807,6 +1979,10 @@
 # define SYS_set_tid_address __NR_set_tid_address
 #endif
 
+#ifdef __NR_set_tls
+# define SYS_set_tls __NR_set_tls
+#endif
+
 #ifdef __NR_setdomainname
 # define SYS_setdomainname __NR_setdomainname
 #endif
@@ -2155,10 +2331,18 @@
 # define SYS_timer_gettime __NR_timer_gettime
 #endif
 
+#ifdef __NR_timer_gettime64
+# define SYS_timer_gettime64 __NR_timer_gettime64
+#endif
+
 #ifdef __NR_timer_settime
 # define SYS_timer_settime __NR_timer_settime
 #endif
 
+#ifdef __NR_timer_settime64
+# define SYS_timer_settime64 __NR_timer_settime64
+#endif
+
 #ifdef __NR_timerfd
 # define SYS_timerfd __NR_timerfd
 #endif
@@ -2171,10 +2355,18 @@
 # define SYS_timerfd_gettime __NR_timerfd_gettime
 #endif
 
+#ifdef __NR_timerfd_gettime64
+# define SYS_timerfd_gettime64 __NR_timerfd_gettime64
+#endif
+
 #ifdef __NR_timerfd_settime
 # define SYS_timerfd_settime __NR_timerfd_settime
 #endif
 
+#ifdef __NR_timerfd_settime64
+# define SYS_timerfd_settime64 __NR_timerfd_settime64
+#endif
+
 #ifdef __NR_times
 # define SYS_times __NR_times
 #endif
@@ -2195,6 +2387,10 @@
 # define SYS_tuxcall __NR_tuxcall
 #endif
 
+#ifdef __NR_udftrap
+# define SYS_udftrap __NR_udftrap
+#endif
+
 #ifdef __NR_ugetrlimit
 # define SYS_ugetrlimit __NR_ugetrlimit
 #endif
@@ -2239,6 +2435,14 @@
 # define SYS_userfaultfd __NR_userfaultfd
 #endif
 
+#ifdef __NR_usr26
+# define SYS_usr26 __NR_usr26
+#endif
+
+#ifdef __NR_usr32
+# define SYS_usr32 __NR_usr32
+#endif
+
 #ifdef __NR_ustat
 # define SYS_ustat __NR_ustat
 #endif
@@ -2251,6 +2455,10 @@
 # define SYS_utimensat __NR_utimensat
 #endif
 
+#ifdef __NR_utimensat_time64
+# define SYS_utimensat_time64 __NR_utimensat_time64
+#endif
+
 #ifdef __NR_utimes
 # define SYS_utimes __NR_utimes
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysctl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysctl.h
deleted file mode 100644
index 81447b2..0000000
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysctl.h
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty file.  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-ldbl.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-ldbl.h
index 977f90a..b6fbb08 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-ldbl.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-ldbl.h
@@ -1,5 +1,5 @@
 /* -mlong-double-64 compatibility mode for syslog functions.
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SYSLOG_H
 # error "Never include <bits/syslog-ldbl.h> directly; use <sys/syslog.h> instead."
@@ -27,9 +27,9 @@
 #endif
 
 #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-__LDBL_REDIR_DECL (__syslog_chk)
+__LDBL_REDIR2_DECL (syslog_chk)
 
 # ifdef __USE_MISC
-__LDBL_REDIR_DECL (__vsyslog_chk)
+__LDBL_REDIR2_DECL (vsyslog_chk)
 # endif
 #endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-path.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-path.h
index b569190..1449062 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-path.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog-path.h
@@ -1,5 +1,5 @@
 /* <bits/syslog-path.h> -- _PATH_LOG definition
-   Copyright (C) 2006-2018 Free Software Foundation, Inc.
+   Copyright (C) 2006-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SYSLOG_H
 # error "Never include this file directly.  Use <sys/syslog.h> instead"
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog.h
index ef58020..5825f13 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/syslog.h
@@ -1,5 +1,5 @@
 /* Checking macros for syslog functions.
-   Copyright (C) 2005-2018 Free Software Foundation, Inc.
+   Copyright (C) 2005-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_SYSLOG_H
 # error "Never include <bits/syslog.h> directly; use <sys/syslog.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysmacros.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysmacros.h
index ea8d562..55913b1 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysmacros.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/sysmacros.h
@@ -1,5 +1,5 @@
 /* Definitions of macros to access `dev_t' values.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_SYSMACROS_H
 #define _BITS_SYSMACROS_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-baud.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-baud.h
new file mode 100644
index 0000000..0ec0484
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-baud.h
@@ -0,0 +1,48 @@
+/* termios baud rate selection definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD	 000000010017 /* Baud speed mask (not in POSIX).  */
+# define CBAUDEX 000000010000 /* Extra baud speed mask, included in CBAUD.
+				 (not in POSIX).  */
+# define CIBAUD	 002003600000 /* Input baud rate (not used).  */
+# define CMSPAR  010000000000 /* Mark or space (stick) parity.  */
+# define CRTSCTS 020000000000 /* Flow control.  */
+#endif
+
+/* Extra output baud rates (not in POSIX).  */
+#define  B57600    0010001
+#define  B115200   0010002
+#define  B230400   0010003
+#define  B460800   0010004
+#define  B500000   0010005
+#define  B576000   0010006
+#define  B921600   0010007
+#define  B1000000  0010010
+#define  B1152000  0010011
+#define  B1500000  0010012
+#define  B2000000  0010013
+#define  B2500000  0010014
+#define  B3000000  0010015
+#define  B3500000  0010016
+#define  B4000000  0010017
+#define __MAX_BAUD B4000000
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cc.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cc.h
new file mode 100644
index 0000000..a44813c
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cc.h
@@ -0,0 +1,40 @@
+/* termios c_cc symbolic constant definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios_c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VTIME 5
+#define VMIN 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VEOL 11
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+#define VEOL2 16
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cflag.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cflag.h
new file mode 100644
index 0000000..d1b45e6
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_cflag.h
@@ -0,0 +1,34 @@
+/* termios control mode definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cflag bits.  */
+#define CSIZE	0000060
+#define   CS5	0000000
+#define   CS6	0000020
+#define   CS7	0000040
+#define   CS8	0000060
+#define CSTOPB	0000100
+#define CREAD	0000200
+#define PARENB	0000400
+#define PARODD	0001000
+#define HUPCL	0002000
+#define CLOCAL	0004000
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_iflag.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_iflag.h
new file mode 100644
index 0000000..c74511c
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_iflag.h
@@ -0,0 +1,40 @@
+/* termios input mode definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-ciflags.h> directly; use <termios.h> instead."
+#endif
+
+/* c_iflag bits */
+#define IGNBRK	0000001  /* Ignore break condition.  */
+#define BRKINT	0000002  /* Signal interrupt on break.  */
+#define IGNPAR	0000004  /* Ignore characters with parity errors.  */
+#define PARMRK	0000010  /* Mark parity and framing errors.  */
+#define INPCK	0000020  /* Enable input parity check.  */
+#define ISTRIP	0000040  /* Strip 8th bit off characters.  */
+#define INLCR	0000100  /* Map NL to CR on input.  */
+#define IGNCR	0000200  /* Ignore CR.  */
+#define ICRNL	0000400  /* Map CR to NL on input.  */
+#define IUCLC	0001000  /* Map uppercase characters to lowercase on input
+			    (not in POSIX).  */
+#define IXON	0002000  /* Enable start/stop output control.  */
+#define IXANY	0004000  /* Enable any character to restart output.  */
+#define IXOFF	0010000  /* Enable start/stop input control.  */
+#define IMAXBEL	0020000  /* Ring bell when input queue is full
+			    (not in POSIX).  */
+#define IUTF8	0040000  /* Input is UTF8 (not in POSIX).  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_lflag.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_lflag.h
new file mode 100644
index 0000000..0b2b5db
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_lflag.h
@@ -0,0 +1,58 @@
+/* termios local mode definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG	0000001   /* Enable signals.  */
+#define ICANON	0000002   /* Canonical input (erase and kill processing).  */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE	0000004
+#endif
+#define ECHO	0000010   /* Enable echo.  */
+#define ECHOE	0000020   /* Echo erase character as error-correcting
+			     backspace.  */
+#define ECHOK	0000040   /* Echo KILL.  */
+#define ECHONL	0000100   /* Echo NL.  */
+#define NOFLSH	0000200   /* Disable flush after interrupt or quit.  */
+#define TOSTOP	0000400   /* Send SIGTTOU for background output.  */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000  /* If ECHO is also set, terminal special characters
+			     other than TAB, NL, START, and STOP are echoed as
+			     ^X, where X is the character with ASCII code 0x40
+			     greater than the special character
+			     (not in POSIX).  */
+# define ECHOPRT 0002000  /* If ICANON and ECHO are also set, characters are
+			     printed as they are being erased
+			     (not in POSIX).  */
+# define ECHOKE	 0004000  /* If ICANON is also set, KILL is echoed by erasing
+			     each character on the line, as specified by ECHOE
+			     and ECHOPRT (not in POSIX).  */
+# define FLUSHO	 0010000  /* Output is being flushed.  This flag is toggled by
+			     typing the DISCARD character (not in POSIX).  */
+# define PENDIN	 0040000  /* All characters in the input queue are reprinted
+			     when the next character is read
+			     (not in POSIX).  */
+#endif
+#define IEXTEN	0100000   /* Enable implementation-defined input
+			     processing.  */
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_oflag.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_oflag.h
new file mode 100644
index 0000000..6bf7a29
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-c_oflag.h
@@ -0,0 +1,61 @@
+/* termios output mode definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_oflag bits */
+#define OPOST	0000001  /* Post-process output.  */
+#define OLCUC	0000002  /* Map lowercase characters to uppercase on output.
+			    (not in POSIX).  */
+#define ONLCR	0000004  /* Map NL to CR-NL on output.  */
+#define OCRNL	0000010  /* Map CR to NL on output.  */
+#define ONOCR	0000020  /* No CR output at column 0.  */
+#define ONLRET	0000040  /* NL performs CR function.  */
+#define OFILL	0000100  /* Use fill characters for delay.  */
+#define OFDEL	0000200  /* Fill is DEL.  */
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY	0000400  /* Select newline delays:  */
+# define   NL0	0000000  /* Newline type 0.  */
+# define   NL1	0000400  /* Newline type 1.  */
+# define CRDLY	0003000  /* Select carriage-return delays:  */
+# define   CR0	0000000  /* Carriage-return delay type 0.  */
+# define   CR1	0001000  /* Carriage-return delay type 1.  */
+# define   CR2	0002000  /* Carriage-return delay type 2.  */
+# define   CR3	0003000  /* Carriage-return delay type 3.  */
+# define TABDLY	0014000  /* Select horizontal-tab delays:  */
+# define   TAB0	0000000  /* Horizontal-tab delay type 0.  */
+# define   TAB1	0004000  /* Horizontal-tab delay type 1.  */
+# define   TAB2	0010000  /* Horizontal-tab delay type 2.  */
+# define   TAB3	0014000  /* Expand tabs to spaces.  */
+# define BSDLY	0020000  /* Select backspace delays:  */
+# define   BS0	0000000  /* Backspace-delay type 0.  */
+# define   BS1	0020000  /* Backspace-delay type 1.  */
+# define FFDLY	0100000  /* Select form-feed delays:  */
+# define   FF0	0000000  /* Form-feed delay type 0.  */
+# define   FF1	0100000  /* Form-feed delay type 1.  */
+#endif
+
+#define VTDLY	0040000  /* Select vertical-tab delays:  */
+#define   VT0	0000000  /* Vertical-tab delay type 0.  */
+#define   VT1	0040000  /* Vertical-tab delay type 1.  */
+
+#ifdef __USE_MISC
+# define XTABS	0014000
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-misc.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-misc.h
new file mode 100644
index 0000000..690b601
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-misc.h
@@ -0,0 +1,21 @@
+/* termios baud platform specific definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-misc.h> directly; use <termios.h> instead."
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-struct.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-struct.h
new file mode 100644
index 0000000..f227f5b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-struct.h
@@ -0,0 +1,36 @@
+/* struct termios definition.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
+#endif
+
+#define NCCS 32
+struct termios
+  {
+    tcflag_t c_iflag;		/* input mode flags */
+    tcflag_t c_oflag;		/* output mode flags */
+    tcflag_t c_cflag;		/* control mode flags */
+    tcflag_t c_lflag;		/* local mode flags */
+    cc_t c_line;			/* line discipline */
+    cc_t c_cc[NCCS];		/* control characters */
+    speed_t c_ispeed;		/* input speed */
+    speed_t c_ospeed;		/* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+  };
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-tcflow.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-tcflow.h
new file mode 100644
index 0000000..3ee5631
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios-tcflow.h
@@ -0,0 +1,26 @@
+/* termios tcflag symbolic contants definitions.  Linux/generic version.
+   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-tcflow.h> directly; use <termios.h> instead."
+#endif
+
+/* tcsetattr uses these.  */
+#define	TCSANOW		0
+#define	TCSADRAIN	1
+#define	TCSAFLUSH	2
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios.h
index 35efa97..67c847f 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/termios.h
@@ -1,5 +1,5 @@
 /* termios type and macro definitions.  Linux version.
-   Copyright (C) 1993-2018 Free Software Foundation, Inc.
+   Copyright (C) 1993-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _TERMIOS_H
 # error "Never include <bits/termios.h> directly; use <termios.h> instead."
@@ -24,100 +24,12 @@
 typedef unsigned int	speed_t;
 typedef unsigned int	tcflag_t;
 
-#define NCCS 32
-struct termios
-  {
-    tcflag_t c_iflag;		/* input mode flags */
-    tcflag_t c_oflag;		/* output mode flags */
-    tcflag_t c_cflag;		/* control mode flags */
-    tcflag_t c_lflag;		/* local mode flags */
-    cc_t c_line;			/* line discipline */
-    cc_t c_cc[NCCS];		/* control characters */
-    speed_t c_ispeed;		/* input speed */
-    speed_t c_ospeed;		/* output speed */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
-  };
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-/* c_iflag bits */
-#define IGNBRK	0000001
-#define BRKINT	0000002
-#define IGNPAR	0000004
-#define PARMRK	0000010
-#define INPCK	0000020
-#define ISTRIP	0000040
-#define INLCR	0000100
-#define IGNCR	0000200
-#define ICRNL	0000400
-#define IUCLC	0001000
-#define IXON	0002000
-#define IXANY	0004000
-#define IXOFF	0010000
-#define IMAXBEL	0020000
-#define IUTF8	0040000
-
-/* c_oflag bits */
-#define OPOST	0000001
-#define OLCUC	0000002
-#define ONLCR	0000004
-#define OCRNL	0000010
-#define ONOCR	0000020
-#define ONLRET	0000040
-#define OFILL	0000100
-#define OFDEL	0000200
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY	0000400
-# define   NL0	0000000
-# define   NL1	0000400
-# define CRDLY	0003000
-# define   CR0	0000000
-# define   CR1	0001000
-# define   CR2	0002000
-# define   CR3	0003000
-# define TABDLY	0014000
-# define   TAB0	0000000
-# define   TAB1	0004000
-# define   TAB2	0010000
-# define   TAB3	0014000
-# define BSDLY	0020000
-# define   BS0	0000000
-# define   BS1	0020000
-# define FFDLY	0100000
-# define   FF0	0000000
-# define   FF1	0100000
-#endif
-
-#define VTDLY	0040000
-#define   VT0	0000000
-#define   VT1	0040000
-
-#ifdef __USE_MISC
-# define XTABS	0014000
-#endif
+#include <bits/termios-struct.h>
+#include <bits/termios-c_cc.h>
+#include <bits/termios-c_iflag.h>
+#include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD	0010017
-#endif
 #define  B0	0000000		/* hang up */
 #define  B50	0000001
 #define  B75	0000002
@@ -138,64 +50,14 @@
 # define EXTA B19200
 # define EXTB B38400
 #endif
-#define CSIZE	0000060
-#define   CS5	0000000
-#define   CS6	0000020
-#define   CS7	0000040
-#define   CS8	0000060
-#define CSTOPB	0000100
-#define CREAD	0000200
-#define PARENB	0000400
-#define PARODD	0001000
-#define HUPCL	0002000
-#define CLOCAL	0004000
-#ifdef __USE_MISC
-# define CBAUDEX 0010000
-#endif
-#define  B57600   0010001
-#define  B115200  0010002
-#define  B230400  0010003
-#define  B460800  0010004
-#define  B500000  0010005
-#define  B576000  0010006
-#define  B921600  0010007
-#define  B1000000 0010010
-#define  B1152000 0010011
-#define  B1500000 0010012
-#define  B2000000 0010013
-#define  B2500000 0010014
-#define  B3000000 0010015
-#define  B3500000 0010016
-#define  B4000000 0010017
-#define __MAX_BAUD B4000000
-#ifdef __USE_MISC
-# define CIBAUD	  002003600000		/* input baud rate (not used) */
-# define CMSPAR   010000000000		/* mark or space (stick) parity */
-# define CRTSCTS  020000000000		/* flow control */
-#endif
+#include <bits/termios-baud.h>
 
-/* c_lflag bits */
-#define ISIG	0000001
-#define ICANON	0000002
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE	0000004
-#endif
-#define ECHO	0000010
-#define ECHOE	0000020
-#define ECHOK	0000040
-#define ECHONL	0000100
-#define NOFLSH	0000200
-#define TOSTOP	0000400
+#include <bits/termios-c_cflag.h>
+#include <bits/termios-c_lflag.h>
+
 #ifdef __USE_MISC
-# define ECHOCTL 0001000
-# define ECHOPRT 0002000
-# define ECHOKE	 0004000
-# define FLUSHO	 0010000
-# define PENDIN	 0040000
-#endif
-#define IEXTEN	0100000
-#ifdef __USE_MISC
-# define EXTPROC 0200000
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+# define TIOCSER_TEMT    0x01   /* Transmitter physically empty */
 #endif
 
 /* tcflow() and TCXONC use these */
@@ -209,11 +71,6 @@
 #define	TCOFLUSH	1
 #define	TCIOFLUSH	2
 
-/* tcsetattr uses these */
-#define	TCSANOW		0
-#define	TCSADRAIN	1
-#define	TCSAFLUSH	2
+#include <bits/termios-tcflow.h>
 
-
-#define _IOT_termios /* Hurd ioctl type field.  */ \
-  _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
+#include <bits/termios-misc.h>
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/thread-shared-types.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/thread-shared-types.h
index 1e2092a..44bf1e3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/thread-shared-types.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/thread-shared-types.h
@@ -1,5 +1,5 @@
 /* Common threading primitives definitions for both POSIX and C11.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _THREAD_SHARED_TYPES_H
 #define _THREAD_SHARED_TYPES_H 1
@@ -32,36 +32,6 @@
    __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
    __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
 
-   Also, the following macros must be define for internal pthread_mutex_t
-   struct definitions (struct __pthread_mutex_s):
-
-   __PTHREAD_COMPAT_PADDING_MID   - any additional members after 'kind'
-				    and before '__spin' (for 64 bits) or
-				    '__nusers' (for 32 bits).
-   __PTHREAD_COMPAT_PADDING_END   - any additional members at the end of
-				    the internal structure.
-   __PTHREAD_MUTEX_LOCK_ELISION   - 1 if the architecture supports lock
-				    elision or 0 otherwise.
-   __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers.  The
-				       preferred value for new architectures
-				       is 0.
-   __PTHREAD_MUTEX_USE_UNION      - control whether internal __spins and
-				    __list will be place inside a union for
-				    linuxthreads compatibility.
-				    The preferred value for new architectures
-				    is 0.
-
-   For a new port the preferred values for the required defines are:
-
-   #define __PTHREAD_COMPAT_PADDING_MID
-   #define __PTHREAD_COMPAT_PADDING_END
-   #define __PTHREAD_MUTEX_LOCK_ELISION         0
-   #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND    0
-   #define __PTHREAD_MUTEX_USE_UNION            0
-
-   __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-   eventually support lock elision using transactional memory.
-
    The additional macro defines any constraint for the lock alignment
    inside the thread structures:
 
@@ -69,81 +39,52 @@
 
    Same idea but for the once locking primitive:
 
-   __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+   __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.  */
 
-   And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-   must be defined.
- */
 #include <bits/pthreadtypes-arch.h>
 
+
 /* Common definition of pthread_mutex_t. */
 
-#if !__PTHREAD_MUTEX_USE_UNION
 typedef struct __pthread_internal_list
 {
   struct __pthread_internal_list *__prev;
   struct __pthread_internal_list *__next;
 } __pthread_list_t;
-#else
+
 typedef struct __pthread_internal_slist
 {
   struct __pthread_internal_slist *__next;
 } __pthread_slist_t;
-#endif
 
-/* Lock elision support.  */
-#if __PTHREAD_MUTEX_LOCK_ELISION
-# if !__PTHREAD_MUTEX_USE_UNION
-#  define __PTHREAD_SPINS_DATA	\
-  short __spins;		\
-  short __elision
-#  define __PTHREAD_SPINS             0, 0
-# else
-#  define __PTHREAD_SPINS_DATA	\
-  struct			\
-  {				\
-    short __espins;		\
-    short __eelision;		\
-  } __elision_data
-#  define __PTHREAD_SPINS         { 0, 0 }
-#  define __spins __elision_data.__espins
-#  define __elision __elision_data.__eelision
-# endif
-#else
-# define __PTHREAD_SPINS_DATA int __spins
-/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
-# define __PTHREAD_SPINS 0
-#endif
+/* Arch-specific mutex definitions.  A generic implementation is provided
+   by sysdeps/nptl/bits/struct_mutex.h.  If required, an architecture
+   can override it by defining:
 
-struct __pthread_mutex_s
-{
-  int __lock __LOCK_ALIGNMENT;
-  unsigned int __count;
-  int __owner;
-#if !__PTHREAD_MUTEX_NUSERS_AFTER_KIND
-  unsigned int __nusers;
-#endif
-  /* KIND must stay at this position in the structure to maintain
-     binary compatibility with static initializers.  */
-  int __kind;
-  __PTHREAD_COMPAT_PADDING_MID
-#if __PTHREAD_MUTEX_NUSERS_AFTER_KIND
-  unsigned int __nusers;
-#endif
-#if !__PTHREAD_MUTEX_USE_UNION
-  __PTHREAD_SPINS_DATA;
-  __pthread_list_t __list;
-# define __PTHREAD_MUTEX_HAVE_PREV      1
-#else
-  __extension__ union
-  {
-    __PTHREAD_SPINS_DATA;
-    __pthread_slist_t __list;
-  };
-# define __PTHREAD_MUTEX_HAVE_PREV      0
-#endif
-  __PTHREAD_COMPAT_PADDING_END
-};
+   1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+      definition).  It should contains at least the internal members
+      defined in the generic version.
+
+   2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+      atomic operations.
+
+   3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+      It should initialize the mutex internal flag.  */
+
+#include <bits/struct_mutex.h>
+
+/* Arch-sepecific read-write lock definitions.  A generic implementation is
+   provided by struct_rwlock.h.  If required, an architecture can override it
+   by defining:
+
+   1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+      It should contain at least the internal members defined in the
+      generic version.
+
+   2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+      It should initialize the rwlock internal type.  */
+
+#include <bits/struct_rwlock.h>
 
 
 /* Common definition of pthread_cond_t. */
@@ -175,4 +116,14 @@
   unsigned int __g_signals[2];
 };
 
+typedef unsigned int __tss_t;
+typedef unsigned long int __thrd_t;
+
+typedef struct
+{
+  int __data __ONCE_ALIGNMENT;
+} __once_flag;
+
+#define __ONCE_FLAG_INIT { 0 }
+
 #endif /* _THREAD_SHARED_TYPES_H  */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time.h
index 3df0dfd..ee5a8b3 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time.h
@@ -1,5 +1,5 @@
 /* System-dependent timing definitions.  Linux version.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include this file directly; use <time.h> instead.
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time64.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time64.h
new file mode 100644
index 0000000..af3e731
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/time64.h
@@ -0,0 +1,36 @@
+/* bits/time64.h -- underlying types for __time64_t.  Generic version.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/time64.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef	_BITS_TIME64_H
+#define	_BITS_TIME64_H	1
+
+/* Define __TIME64_T_TYPE so that it is always a 64-bit type.  */
+
+#if __TIMESIZE == 64
+/* If we already have 64-bit time type then use it.  */
+# define __TIME64_T_TYPE		__TIME_T_TYPE
+#else
+/* Define a 64-bit time type alongsize the 32-bit one.  */
+# define __TIME64_T_TYPE		__SQUAD_TYPE
+#endif
+
+#endif /* bits/time64.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timerfd.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timerfd.h
index 305f1e4..6444915 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timerfd.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_SYS_TIMERFD_H
 # error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timesize.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timesize.h
new file mode 100644
index 0000000..11a9c9a
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timesize.h
@@ -0,0 +1,22 @@
+/* Bit size of the time_t type at glibc build time, general case.
+   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <bits/wordsize.h>
+
+/* Size in bits of the 'time_t' type of the default ABI.  */
+#define __TIMESIZE	__WORDSIZE
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timex.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timex.h
index 1dbcc0b..9b2e30f 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timex.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef	_BITS_TIMEX_H
 #define	_BITS_TIMEX_H	1
@@ -104,7 +104,7 @@
 #define STA_CLK		0x8000	/* clock source (0 = A, 1 = B) (ro) */
 
 /* Read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
-    STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
+#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \
+    | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
 
 #endif /* bits/timex.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types.h
index bd06e2d..2dc63de 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types.h
@@ -1,5 +1,5 @@
 /* bits/types.h -- definitions of __*_t types underlying *_t types.
-   Copyright (C) 2002-2018 Free Software Foundation, Inc.
+   Copyright (C) 2002-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include this file directly; use <sys/types.h> instead.
@@ -25,6 +25,7 @@
 
 #include <features.h>
 #include <bits/wordsize.h>
+#include <bits/timesize.h>
 
 /* Convenience types.  */
 typedef unsigned char __u_char;
@@ -47,6 +48,16 @@
 __extension__ typedef unsigned long long int __uint64_t;
 #endif
 
+/* Smallest types with at least a given width.  */
+typedef __int8_t __int_least8_t;
+typedef __uint8_t __uint_least8_t;
+typedef __int16_t __int_least16_t;
+typedef __uint16_t __uint_least16_t;
+typedef __int32_t __int_least32_t;
+typedef __uint32_t __uint_least32_t;
+typedef __int64_t __int_least64_t;
+typedef __uint64_t __uint_least64_t;
+
 /* quad_t is also 64 bits.  */
 #if __WORDSIZE == 64
 typedef long int __quad_t;
@@ -76,7 +87,7 @@
 	32		-- "natural" 32-bit type (always int)
 	64		-- "natural" 64-bit type (long or long long)
 	LONG32		-- 32-bit type, traditionally long
-	QUAD		-- 64-bit type, always long long
+	QUAD		-- 64-bit type, traditionally long long
 	WORD		-- natural type of __WORDSIZE bits (int or long)
 	LONGWORD	-- type of __WORDSIZE bits, traditionally long
 
@@ -102,14 +113,14 @@
 #define __SLONGWORD_TYPE	long int
 #define __ULONGWORD_TYPE	unsigned long int
 #if __WORDSIZE == 32
-# define __SQUAD_TYPE		__quad_t
-# define __UQUAD_TYPE		__u_quad_t
+# define __SQUAD_TYPE		__int64_t
+# define __UQUAD_TYPE		__uint64_t
 # define __SWORD_TYPE		int
 # define __UWORD_TYPE		unsigned int
 # define __SLONG32_TYPE		long int
 # define __ULONG32_TYPE		unsigned long int
-# define __S64_TYPE		__quad_t
-# define __U64_TYPE		__u_quad_t
+# define __S64_TYPE		__int64_t
+# define __U64_TYPE		__uint64_t
 /* We want __extension__ before typedef's that use nonstandard base types
    such as `long long' in C89 mode.  */
 # define __STD_TYPE		__extension__ typedef
@@ -128,6 +139,7 @@
 # error
 #endif
 #include <bits/typesizes.h>	/* Defines __*_T_TYPE macros.  */
+#include <bits/time64.h>	/* Defines __TIME*_T_TYPE macros.  */
 
 
 __STD_TYPE __DEV_T_TYPE __dev_t;	/* Type of device numbers.  */
@@ -148,6 +160,7 @@
 __STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */
 __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
 __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */
+__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t;
 
 __STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address.  */
 __STD_TYPE __KEY_T_TYPE __key_t;	/* Type of an IPC key.  */
@@ -201,6 +214,15 @@
    It is not currently necessary for this to be machine-specific.  */
 typedef int __sig_atomic_t;
 
+/* Seconds since the Epoch, visible to user code when time_t is too
+   narrow only for consistency with the old way of widening too-narrow
+   types.  User code should never use __time64_t.  */
+#if __TIMESIZE == 64 && defined __LIBC
+# define __time64_t __time_t
+#elif __TIMESIZE != 64
+__STD_TYPE __TIME64_T_TYPE __time64_t;
+#endif
+
 #undef __STD_TYPE
 
 #endif /* bits/types.h */
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos64_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos64_t.h
new file mode 100644
index 0000000..06a6891
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos64_t.h
@@ -0,0 +1,16 @@
+#ifndef _____fpos64_t_defined
+#define _____fpos64_t_defined 1
+
+#include <bits/types.h>
+#include <bits/types/__mbstate_t.h>
+
+/* The tag name of this struct is _G_fpos64_t to preserve historic
+   C++ mangled names for functions taking fpos_t and/or fpos64_t
+   arguments.  That name should not be used in new code.  */
+typedef struct _G_fpos64_t
+{
+  __off64_t __pos;
+  __mbstate_t __state;
+} __fpos64_t;
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos_t.h
new file mode 100644
index 0000000..bb04576
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__fpos_t.h
@@ -0,0 +1,16 @@
+#ifndef _____fpos_t_defined
+#define _____fpos_t_defined 1
+
+#include <bits/types.h>
+#include <bits/types/__mbstate_t.h>
+
+/* The tag name of this struct is _G_fpos_t to preserve historic
+   C++ mangled names for functions taking fpos_t arguments.
+   That name should not be used in new code.  */
+typedef struct _G_fpos_t
+{
+  __off_t __pos;
+  __mbstate_t __state;
+} __fpos_t;
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__locale_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__locale_t.h
index a6cccf6..b0742bf 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__locale_t.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__locale_t.h
@@ -1,5 +1,5 @@
 /* Definition of struct __locale_struct and __locale_t.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_TYPES___LOCALE_T_H
 #define _BITS_TYPES___LOCALE_T_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__sigval_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__sigval_t.h
index 395ce50..0737bf9 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__sigval_t.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/__sigval_t.h
@@ -1,5 +1,5 @@
 /* Define __sigval_t.
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
+   Copyright (C) 1997-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef ____sigval_t_defined
 #define ____sigval_t_defined
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/cookie_io_functions_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/cookie_io_functions_t.h
new file mode 100644
index 0000000..097b056
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/cookie_io_functions_t.h
@@ -0,0 +1,63 @@
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef __cookie_io_functions_t_defined
+#define __cookie_io_functions_t_defined 1
+
+#include <bits/types.h>
+
+/* Functions to do I/O and file management for a stream.  */
+
+/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
+   Return number of bytes read.  */
+typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf,
+                                          size_t __nbytes);
+
+/* Write NBYTES bytes pointed to by BUF to COOKIE.  Write all NBYTES bytes
+   unless there is an error.  Return number of bytes written.  If
+   there is an error, return 0 and do not write anything.  If the file
+   has been opened for append (__mode.__append set), then set the file
+   pointer to the end of the file and then do the write; if not, just
+   write at the current file pointer.  */
+typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf,
+                                           size_t __nbytes);
+
+/* Move COOKIE's file position to *POS bytes from the
+   beginning of the file (if W is SEEK_SET),
+   the current position (if W is SEEK_CUR),
+   or the end of the file (if W is SEEK_END).
+   Set *POS to the new file position.
+   Returns zero if successful, nonzero if not.  */
+typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w);
+
+/* Close COOKIE.  */
+typedef int cookie_close_function_t (void *__cookie);
+
+/* The structure with the cookie function pointers.
+   The tag name of this struct is _IO_cookie_io_functions_t to
+   preserve historic C++ mangled names for functions taking
+   cookie_io_functions_t arguments.  That name should not be used in
+   new code.  */
+typedef struct _IO_cookie_io_functions_t
+{
+  cookie_read_function_t *read;		/* Read bytes.  */
+  cookie_write_function_t *write;	/* Write bytes.  */
+  cookie_seek_function_t *seek;		/* Seek/tell file position.  */
+  cookie_close_function_t *close;	/* Close file.  */
+} cookie_io_functions_t;
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/error_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/error_t.h
new file mode 100644
index 0000000..f8e26a9
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/error_t.h
@@ -0,0 +1,24 @@
+/* Define error_t.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef __error_t_defined
+# define __error_t_defined 1
+
+typedef int error_t;
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/locale_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/locale_t.h
index 6a7aad2..f46e9b0 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/locale_t.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/locale_t.h
@@ -1,5 +1,5 @@
 /* Definition of locale_t.
-   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef _BITS_TYPES_LOCALE_T_H
 #define _BITS_TYPES_LOCALE_T_H 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/siginfo_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/siginfo_t.h
index 33766d1..43c4e00 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/siginfo_t.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/siginfo_t.h
@@ -107,7 +107,7 @@
 	/* SIGPOLL.  */
 	struct
 	  {
-	    long int si_band;	/* Band event for SIGPOLL.  */
+	    __SI_BAND_TYPE si_band;	/* Band event for SIGPOLL.  */
 	    int si_fd;
 	  } _sigpoll;
 
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/stack_t.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/stack_t.h
index ce809ad..b544027 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/stack_t.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/stack_t.h
@@ -1,5 +1,5 @@
 /* Define stack_t.  Linux version.
-   Copyright (C) 1998-2018 Free Software Foundation, Inc.
+   Copyright (C) 1998-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef __stack_t_defined
 #define __stack_t_defined 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_FILE.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_FILE.h
new file mode 100644
index 0000000..ff8aef5
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_FILE.h
@@ -0,0 +1,120 @@
+/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef __struct_FILE_defined
+#define __struct_FILE_defined 1
+
+/* Caution: The contents of this file are not part of the official
+   stdio.h API.  However, much of it is part of the official *binary*
+   interface, and therefore cannot be changed.  */
+
+#if defined _IO_USE_OLD_IO_FILE && !defined _LIBC
+# error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself"
+#endif
+
+#if defined _IO_lock_t_defined && !defined _LIBC
+# error "_IO_lock_t_defined should only be defined when building libc itself"
+#endif
+
+#include <bits/types.h>
+
+struct _IO_FILE;
+struct _IO_marker;
+struct _IO_codecvt;
+struct _IO_wide_data;
+
+/* During the build of glibc itself, _IO_lock_t will already have been
+   defined by internal headers.  */
+#ifndef _IO_lock_t_defined
+typedef void _IO_lock_t;
+#endif
+
+/* The tag name of this struct is _IO_FILE to preserve historic
+   C++ mangled names for functions taking FILE* arguments.
+   That name should not be used in new code.  */
+struct _IO_FILE
+{
+  int _flags;		/* High-order word is _IO_MAGIC; rest is flags. */
+
+  /* The following pointers correspond to the C++ streambuf protocol. */
+  char *_IO_read_ptr;	/* Current read pointer */
+  char *_IO_read_end;	/* End of get area. */
+  char *_IO_read_base;	/* Start of putback+get area. */
+  char *_IO_write_base;	/* Start of put area. */
+  char *_IO_write_ptr;	/* Current put pointer. */
+  char *_IO_write_end;	/* End of put area. */
+  char *_IO_buf_base;	/* Start of reserve area. */
+  char *_IO_buf_end;	/* End of reserve area. */
+
+  /* The following fields are used to support backing up and undo. */
+  char *_IO_save_base; /* Pointer to start of non-current get area. */
+  char *_IO_backup_base;  /* Pointer to first valid character of backup area */
+  char *_IO_save_end; /* Pointer to end of non-current get area. */
+
+  struct _IO_marker *_markers;
+
+  struct _IO_FILE *_chain;
+
+  int _fileno;
+  int _flags2;
+  __off_t _old_offset; /* This used to be _offset but it's too small.  */
+
+  /* 1+column number of pbase(); 0 is unknown. */
+  unsigned short _cur_column;
+  signed char _vtable_offset;
+  char _shortbuf[1];
+
+  _IO_lock_t *_lock;
+#ifdef _IO_USE_OLD_IO_FILE
+};
+
+struct _IO_FILE_complete
+{
+  struct _IO_FILE _file;
+#endif
+  __off64_t _offset;
+  /* Wide character stream stuff.  */
+  struct _IO_codecvt *_codecvt;
+  struct _IO_wide_data *_wide_data;
+  struct _IO_FILE *_freeres_list;
+  void *_freeres_buf;
+  size_t __pad5;
+  int _mode;
+  /* Make sure we don't get into trouble again.  */
+  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+/* These macros are used by bits/stdio.h and internal headers.  */
+#define __getc_unlocked_body(_fp)					\
+  (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end)	\
+   ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
+
+#define __putc_unlocked_body(_ch, _fp)					\
+  (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end)	\
+   ? __overflow (_fp, (unsigned char) (_ch))				\
+   : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
+
+#define _IO_EOF_SEEN 0x0010
+#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0)
+
+#define _IO_ERR_SEEN 0x0020
+#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0)
+
+#define _IO_USER_LOCK 0x8000
+/* Many more flag bits are defined internally.  */
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct___jmp_buf_tag.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct___jmp_buf_tag.h
new file mode 100644
index 0000000..c7e0911
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct___jmp_buf_tag.h
@@ -0,0 +1,37 @@
+/* Define struct __jmp_buf_tag.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef	__jmp_buf_tag_defined
+#define	__jmp_buf_tag_defined 1
+
+#include <bits/setjmp.h>		/* Get `__jmp_buf'.  */
+#include <bits/types/__sigset_t.h>
+
+/* Calling environment, plus possibly a saved signal mask.  */
+struct __jmp_buf_tag
+  {
+    /* NOTE: The machine-dependent definitions of `__sigsetjmp'
+       assume that a `jmp_buf' begins with a `__jmp_buf' and that
+       `__mask_was_saved' follows it.  Do not move these members
+       or add others before it.  */
+    __jmp_buf __jmpbuf;		/* Calling environment.  */
+    int __mask_was_saved;	/* Saved the signal mask?  */
+    __sigset_t __saved_mask;	/* Saved signal mask.  */
+  };
+
+#endif
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_iovec.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_iovec.h
index 490b06b..89a87b7 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_iovec.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_iovec.h
@@ -1,5 +1,5 @@
 /* Define struct iovec.
-   Copyright (C) 1996-2018 Free Software Foundation, Inc.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef __iovec_defined
 #define __iovec_defined 1
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_msqid_ds.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_msqid_ds.h
new file mode 100644
index 0000000..1ed041a
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_msqid_ds.h
@@ -0,0 +1,47 @@
+/* Generic implementation of the SysV message struct msqid_ds.
+   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+/* Structure of record for one message inside the kernel.
+   The type `struct msg' is opaque.  */
+struct msqid_ds
+{
+  struct ipc_perm msg_perm;	/* structure describing operation permission */
+#if __TIMESIZE == 32
+  __time_t msg_stime;		/* time of last msgsnd command */
+  unsigned long int __msg_stime_high;
+  __time_t msg_rtime;		/* time of last msgsnd command */
+  unsigned long int __msg_rtime_high;
+  __time_t msg_ctime;		/* time of last change */
+  unsigned long int __msg_ctime_high;
+#else
+  __time_t msg_stime;		/* time of last msgsnd command */
+  __time_t msg_rtime;		/* time of last msgsnd command */
+  __time_t msg_ctime;		/* time of last change */
+#endif
+  __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
+  msgqnum_t msg_qnum;		/* number of messages currently on queue */
+  msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
+  __pid_t msg_lspid;		/* pid of last msgsnd() */
+  __pid_t msg_lrpid;		/* pid of last msgrcv() */
+  __syscall_ulong_t __glibc_reserved4;
+  __syscall_ulong_t __glibc_reserved5;
+};
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_rusage.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_rusage.h
index 5dc0916..7edd761 100644
--- a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_rusage.h
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_rusage.h
@@ -1,5 +1,5 @@
 /* Define struct rusage.
-   Copyright (C) 1994-2018 Free Software Foundation, Inc.
+   Copyright (C) 1994-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 #ifndef __rusage_defined
 #define __rusage_defined 1
@@ -22,7 +22,9 @@
 #include <bits/types.h>
 #include <bits/types/struct_timeval.h>
 
-/* Structure which says how much of each resource has been used.  */
+/* Structure which says how much of each resource has been used.  If
+   the system does not keep track of a particular value, the struct
+   field is always zero.  */
 
 /* The purpose of all the unions is to have the kernel-compatible layout
    while keeping the API type as 'long int', and among machines where
@@ -42,7 +44,6 @@
       };
     /* Amount of sharing of text segment memory
        with other processes (kilobyte-seconds).  */
-    /* Maximum resident set size (in kilobytes).  */
     __extension__ union
       {
 	long int ru_ixrss;
diff --git a/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_sched_param.h b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_sched_param.h
new file mode 100644
index 0000000..78f3d0b
--- /dev/null
+++ b/aarch64/usr/aarch64-cros-linux-gnu/usr/include/bits/types/struct_sched_param.h
@@ -0,0 +1,28 @@
+/* Sched parameter structure.  Generic version.
+   Copyright (C) 1996-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either