manifest_format=1.6 # Note that for ABE, these parameters are not used # Component data for dejagnu dejagnu_url=https://git.linaro.org/git/toolchain dejagnu_branch=linaro-local/stable dejagnu_revision=e35e23954791251cf332d15df1958459f94ae584 dejagnu_filespec=dejagnu.git dejagnu_mingw_only="no" dejagnu_linuxhost_only="no" dejagnu_staticlink="yes" # Component data for gmp gmp_url=https://snapshots.linaro.org/components/toolchain/infrastructure gmp_filespec=gmp-6.1.2.tar.xz gmp_md5sum=f58fa8001d60c4c77595fbbb62b63c1d gmp_mingw_only="no" gmp_linuxhost_only="no" gmp_configure="--enable-cxx --enable-fft" gmp_staticlink="yes" # Component data for mpfr mpfr_url=https://snapshots.linaro.org/components/toolchain/infrastructure mpfr_filespec=mpfr-3.1.5.tar.xz mpfr_md5sum=c4ac246cf9795a4491e7766002cd528f mpfr_mingw_only="no" mpfr_linuxhost_only="no" mpfr_configure="--with-gmp=${local_builds}/destdir/${host}" mpfr_staticlink="yes" # Component data for mpc mpc_url=https://snapshots.linaro.org/components/toolchain/infrastructure/ mpc_filespec=mpc-1.0.3.tar.gz mpc_md5sum=d6a1d5f8ddea3abd2cc3e98f58352d26 mpc_mingw_only="no" mpc_linuxhost_only="no" mpc_configure="--with-gmp=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host}" mpc_staticlink="yes" # Component data for binutils binutils_url=https://git.linaro.org/git/toolchain binutils_branch=binutils-2_40-branch binutils_revision=391fd4d9ee5d2b78244cbcd57fc405738359b70b binutils_filespec=binutils-gdb.git binutils_mingw_only="no" binutils_linuxhost_only="no" binutils_configure="--enable-lto --enable-plugins --enable-gold --disable-werror CPPFLAGS=-UFORTIFY_SOURCE --with-pkgversion=Linaro_Binutils-2024.03.13 --disable-gdb --disable-sim --disable-libdecnumber --disable-readline --with-sysroot=${local_builds}/destdir/${host}/aarch64-linux-gnu" binutils_staticlink="yes" # Component data for linux linux_url=git://git.kernel.org/pub/scm/linux/kernel/git/stable linux_branch=linux-rolling-lts linux_revision=fe051f96e38a2d3485f0b1ac7a4d3d7f14646b25 linux_filespec=linux.git linux_mingw_only="no" linux_linuxhost_only="no" linux_staticlink="yes" # Component data for expat expat_url=https://snapshots.linaro.org/components/toolchain/infrastructure/ expat_filespec=expat-2.1.0-1-mingw32-dev.tar.xz expat_md5sum=1dae54e2670882843d496692154a0e27 expat_mingw_only="yes" expat_linuxhost_only="no" expat_staticlink="yes" # Component data for python python_url=https://snapshots.linaro.org/components/toolchain/infrastructure/ python_filespec=python-2.7.4-mingw32.tar.xz python_md5sum=9b3092eff5508c4802936dfe4f5225ef python_mingw_only="yes" python_linuxhost_only="no" python_staticlink="yes" # Component data for libiconv libiconv_url=https://snapshots.linaro.org/components/toolchain/infrastructure/ libiconv_filespec=libiconv-1.14-3-mingw32-dev.tar.xz libiconv_md5sum=7ead614fa3a8bc266e70c6fcdf198219 libiconv_mingw_only="yes" libiconv_linuxhost_only="no" libiconv_staticlink="yes" # Component data for gcc gcc_url=https://git.linaro.org/git/toolchain gcc_branch=releases/gcc-12 gcc_revision=2f09b1c7b936f83da597b4a37aa5619c5e36dfc4 gcc_filespec=gcc.git gcc_makeflags="MAKEINFOFLAGS=--force" gcc_mingw_only="no" gcc_linuxhost_only="no" gcc_configure= gcc_mingw_extraconf="--with-libiconv-prefix=${local_builds}/destdir/${host}/usr --with-system-zlib=no" gcc_staticlink="no" gcc_stage1_flags="--with-mpc=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host} --with-gmp=${local_builds}/destdir/${host} --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-arch=armv8-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --disable-libssp --disable-libquadmath --disable-threads --without-headers --with-newlib --disable-libmudflap --disable-decimal-float --disable-libgomp --disable-libatomic --disable-libsanitizer --disable-plugins --disable-libitm --disable-libvtv --disable-shared --enable-languages=c,c++ --disable-libstdcxx --with-glibc-version=2.18 --disable-bootstrap" gcc_stage2_flags="--with-mpc=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host} --with-gmp=${local_builds}/destdir/${host} --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-arch=armv8-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-sysroot=${local_builds}/destdir/${host}/aarch64-linux-gnu/libc --enable-checking=yes --disable-bootstrap --enable-languages=c,c++,fortran,lto" # Component data for glibc glibc_url=https://git.linaro.org/git/toolchain glibc_branch=release/2.37/master glibc_revision=2fadb0d9b4c14f1517816564bd8ba9e9262f7332 glibc_filespec=glibc.git glibc_makeflags="PARALLELMFLAGS=-j32" glibc_mingw_only="no" glibc_linuxhost_only="no" glibc_configure="--disable-profile --with-gd=no --with-headers=${local_builds}/destdir/${host}/aarch64-linux-gnu/libc/usr/include --without-selinux" # Component data for gdb gdb_url=https://git.linaro.org/git/toolchain gdb_branch=gdb-13-branch gdb_revision=c987953c1028fce9ea6080fdfbbc7d25192be69e gdb_filespec=binutils-gdb.git gdb_makeflags="all-gdb" gdb_mingw_only="no" gdb_linuxhost_only="no" gdb_configure="--with-gnu-ld --enable-plugins --enable-tui --with-pkgversion=Linaro_GDB-2024.03.13 --disable-gas --disable-binutils --disable-elfcpp --disable-ld --disable-gold --disable-gprof --with-python=python3 --disable-werror --with-auto-load-safe-path=@@debugdir:@@datadir/auto-load:${local_builds}/destdir/${host}/aarch64-linux-gnu --with-additional-debug-dirs=/usr/lib/debug" gdb_mingw_extraconf="--disable-tui --with-python=no --with-gmp=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host} CFLAGS=-I${local_builds}/destdir/${host}/usr/include LDFLAGS=-L${local_builds}/destdir/${host}/usr/lib" gdb_staticlink="yes" # Component data for gdbserver gdbserver_url=https://git.linaro.org/git/toolchain gdbserver_branch=gdb-13-branch gdbserver_revision=c987953c1028fce9ea6080fdfbbc7d25192be69e gdbserver_filespec=binutils-gdb.git gdbserver_makeflags="all-gdbserver" gdbserver_mingw_only="no" gdbserver_linuxhost_only="no" gdbserver_configure="--with-gnu-ld --enable-plugins --enable-tui --with-pkgversion=Linaro_GDB-2024.03.13 --disable-gas --disable-binutils --disable-elfcpp --disable-ld --disable-gold --disable-gprof --with-python=python3 --disable-gdb" gdbserver_staticlink="yes" # Component data for qemu qemu_url=https://gitlab.com/qemu-project qemu_branch=v7.0.0 qemu_revision=823a3f11fb8f04c3c3cc0f95f968fef1bfc6534f qemu_filespec=qemu.git qemu_mingw_only="no" qemu_linuxhost_only="yes" qemu_configure="--target-list=aarch64-linux-user,aarch64-softmmu" qemu_staticlink="no" clibrary=glibc target=aarch64-linux-gnu manifestid=c5247d4da94ea2f29b957b237cecf40c52fac0ae ############################################################################## # Everything below this line is only for informational purposes for developers ############################################################################## # Build machine data build: linux host: x86_64-pc-linux-gnu kernel: 4.15.0-88-generic hostname: 570c9f8229c2 distribution: jammy host_gcc: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) # These aren't used in the repeat build. just a sanity check for developers build directory: /home/tcwg-buildslave/workspace/tcwg-abe-test__0/abe-tests/full-manifest-test/build/builds sysroot directory: /home/tcwg-buildslave/workspace/tcwg-abe-test__0/abe-tests/full-manifest-test/build/builds/destdir/x86_64-pc-linux-gnu/aarch64-linux-gnu snapshots directory: /home/tcwg-buildslave/workspace/tcwg-abe-test__0/abe-tests/full-manifest-test/snapshots git reference directory: /home/tcwg-buildslave/snapshots-ref abe_url=https://git.linaro.org/toolchain abe_branch=branch= abe_revision=fbd9d89ed14da1c94cc013e593f786134371dbe9 abe_filespec=abe.git abe_configure="--with-git-reference-dir=/home/tcwg-buildslave/snapshots-ref" --------------------- gcc ---------------------- commit 2f09b1c7b936f83da597b4a37aa5619c5e36dfc4 Author: Cassio Neri Date: Sun Dec 10 11:31:31 2023 +0000 libstdc++: Remove UB from month and weekday additions and subtractions. The following invoke signed integer overflow (UB) [1]: month + months{MAX} // where MAX is the maximum value of months::rep month + months{MIN} // where MIN is the maximum value of months::rep month - months{MIN} // where MIN is the minimum value of months::rep weekday + days {MAX} // where MAX is the maximum value of days::rep weekday - days {MIN} // where MIN is the minimum value of days::rep For the additions to MAX, the crux of the problem is that, in libstdc++, months::rep and days::rep are int64_t. Other implementations use int32_t, cast operands to int64_t and perform arithmetic operations without risk of overflowing. For month + months{MIN}, the implementation follows the Standard's "returns clause" and evaluates: modulo(static_cast(unsigned{__x}) + (__y.count() - 1), 12); Overflow occurs when MIN - 1 is evaluated. Casting to a larger type could help but, unfortunately again, this is not possible for libstdc++. For the subtraction of MIN, the problem is that -MIN is not representable. It's fair to say that the intention is for these additions/subtractions to be performed in modulus (12 or 7) arithmetic so that no overflow is expected. To fix these UB, this patch implements: template unsigned __add_modulo(unsigned __x, _T __y); template unsigned __sub_modulo(unsigned __x, _T __y); which respectively, returns the remainder of Euclidean division of, __x + __y and __x - __y by __d without overflowing. These functions replace constexpr unsigned __modulo(long long __n, unsigned __d); which also calculates the reminder of __n, where __n is the result of the addition or subtraction. Hence, these operations might invoke UB before __modulo is called and thus, __modulo can't do anything to remediate the issue. In addition to solve the UB issues, __add_modulo and __sub_modulo allow better codegen (shorter and branchless) on x86-64 and ARM [2]. [1] https://godbolt.org/z/a9YfWdn57 [2] https://godbolt.org/z/Gh36cr7E4 libstdc++-v3/ChangeLog: * include/std/chrono: Fix + and - for months and weekdays. * testsuite/std/time/month/1.cc: Add constexpr tests against overflow. * testsuite/std/time/month/2.cc: New test for extreme values. * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow. * testsuite/std/time/weekday/2.cc: New test for extreme values. (cherry picked from commit 2cb3d42d3f3e7a5345ee7a6f3676a10c84864d72) --------------------- binutils ---------------------- commit 391fd4d9ee5d2b78244cbcd57fc405738359b70b Author: Alan Modra Date: Fri Aug 4 15:09:53 2023 +0930 PR30697, ppc32 mix of local-dynamic and global-dynamic TLS This fixes miscounting of dynamic relocations on GOT entries when a) there are both local-dynamic and global-dynamic tls accesss for a given symbol, and b) the symbol is global with non-default visibility, and c) the __tls_get_addr calls aren't optimised away. PR 30697 bfd/ * elf32-ppc.c (allocate_dynrelocs): Correct local-dynamic reloc count. ld/ * testsuite/ld-powerpc/tls32ldgd.d, * testsuite/ld-powerpc/tls32ldgd.s: New test. * testsuite/ld-powerpc/powerpc.exp: Run it. (cherry picked from commit ae33771224660dac25e64c3f70943a17bfab7681) --------------------- glibc ---------------------- commit 2fadb0d9b4c14f1517816564bd8ba9e9262f7332 Author: Andreas Schwab Date: Tue Feb 28 10:37:18 2023 -0300 support: use 64-bit time_t (bug 30111) Ensure to use 64-bit time_t in the test infrastructure. (cherry picked from commit 3bfdc4e2bceb601b90c81a9baa73c1904db58b2f) --------------------- abe ---------------------- commit fbd9d89ed14da1c94cc013e593f786134371dbe9 Author: Adhemerval Zanella Date: Tue Mar 12 08:58:21 2024 -0300 lib/make.sh: Fix test-container tests on armhf The glibc tests are built in two different modes (enabled at configure time): 1. No RPATH defined, tests will run by issuing the loader along with the required library paths. It is the default option. 2. RPATH defined, tests will have RPATH pointing to the build directory, so the kernel will be responsible for running the loader. It enables with --enable-hardcoded-path-in-tests. In both cases, the loader consults the system cache (ld.so.cache), so any compiler dynamic library (libgcc_s.so for instance) is supplied by the system. However, this might fail for container tests, where even test-container (the binary that setups and runs the tests in a container mode) creates a loader cache that might not contain the required libraries. The glibc build system tries to check and provide the required libraries by tracing the DT_NEEDED one from a test binary, but the tracing inhibits the system loader, and thus it will not copy the required system libraries. It is expected the user to copy the required libraries to build a directory. This works for case 2., however, test-container does not issue the loader for case 1.: it will parse the command arguments and issue the binary and the kernel will be responsible for starting the loader. This has the side-effect of ignoring all the defined --library-path and thus making the compiler libraries copy trick ineffective. So we copy the compiler libraries on both the build directory and on the sysroot used by the test-container to set each test. The former handles the case 1., while the latter will place the libraries on the default system path, which will be included in the loader cache as well (and handling case 2.). Change-Id: I5b90c733a92a5980a8f33e5b6a5c67f768f91906