summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
9 daysUse #!/usr/bin/python3 in remaining Python scriptsFlorian Weimer
Some distributions ban the /usr/bin/python path in their build systems due to the ambiguity of whether it refers to Python 2 or Python 3. Python 2 has been out of support for many years, and glibc has required Python 3 at build time for a while. So it seems safe to switch the remaining scripts over to /usr/bin/python3. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
10 daysLoongArch: Add support for LA32 in sysdeps/loongarchmengqinggang
11 daysUse binutils 2.46, MPC 1.4.0 in build-many-glibcs.pyJoseph Myers
Note that MPC 1.4.0 has moved from .tar.gz to .tar.xz distribution. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2026-02-10Use Linux 6.19 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2026-01-01Update copyright dates not handled by scripts/update-copyrightsPaul Eggert
I've updated copyright dates in glibc for 2026. This is the patch for the changes not generated by scripts/update-copyrights.
2026-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert
2025-12-19build-many-glibcs.py: Fix s390x-linux-gnu.Stefan Liebler
The recent commit 638d437dbf9c68e40986edaa9b0d1c2e72a1ae81 "Deprecate s390-linux-gnu (31bit)" leads to: FAIL: compilers-s390x-linux-gnu gcc build when it tries to build 31bit libgcc. The build is fixed by explicitely disabling multilib.
2025-12-17Deprecate s390-linux-gnu (31bit)Stefan Liebler
The next linux 6.19 release will remove support for compat syscalls on s390x with those commits: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0d79affa31cbee477a45642efc49957d05466307 0d79affa31cb Merge branch 'compat-removal' 4ac286c4a8d9 s390/syscalls: Switch to generic system call table generation f4e1f1b1379d s390/syscalls: Remove system call table pointer from thread_struct 3db5cf935471 s390/uapi: Remove 31 bit support from uapi header files 8e0b986c59c6 s390: Remove compat support 169ebcbb9082 tools: Remove s390 compat support 7afb095df3e3 s390/syscalls: Add pt_regs parameter to SYSCALL_DEFINE0() syscall wrapper b2da5f6400b4 s390/kvm: Use psw32_t instead of psw_compat_t 8c633c78c23a s390/ptrace: Rename psw_t32 to psw32_t This patch also removes s390-linux-gnu (31bit) from build-many-glibcs.py. Then the next update of syscall numbers for Linux 6.19 won't change sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h Reviewed-by: Andreas K. Huettel <dilfridge@gentoo.org>
2025-12-09build-many-glibcs.py: Include URL in download exceptionFlorian Weimer
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-12-08build-many-glibcs.py: Switch Git URLs to https://Florian Weimer
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
2025-12-02Use Linux 6.18 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2025-12-01scripts: Support custom Git URLs in build-many-glibcs.pyYury Khrustalev
Use environment variables to provide mirror URLs to checkout sources from Git. Each component has a corresponding env var that will be used if it's present: <component>_GIT_MIRROR. Note that '<component>' should be upper case, e.g. GLIBC. Co-authored-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-12-01scripts: Support custom FTP mirror URL in build-many-glibcs.pyYury Khrustalev
Allow to use custom mirror URLs to download tarballs from a mirror of ftp.gnu.org using the FTP_GNU_ORG_MIRROR env variable (default value is 'https://ftp.gnu.org'). Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-11-25scripts: Fix minor lint warnings in build-many-glibcs.pyYury Khrustalev
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-11-18Remove support for lock elision.Stefan Liebler
The support for lock elision was already deprecated with glibc 2.42: commit 77438db8cfa6ee66b3906230156bdae11c49a195 "Mark support for lock elision as deprecated." See also discussions: https://sourceware.org/pipermail/libc-alpha/2025-July/168492.html This patch removes the architecture specific support for lock elision for x86, powerpc and s390 by removing the elision-conf.h, elision-conf.c, elision-lock.c, elision-timed.c, elision-unlock.c, elide.h, htm.h/hle.h files. Those generic files are also removed. The architecture specific structures are adjusted and the elision fields are marked as unused. See struct_mutex.h files. Furthermore in struct_rwlock.h, the leftover __rwelision was also removed. Those were originally removed with commit 0377a7fde6dfcc078dda29a1225d7720a0931357 "nptl: Remove rwlock elision definitions" and by chance reintroduced with commit 7df8af43ad1cd8ce527444de50bee6f35eebe071 "nptl: Add struct_rwlock.h" The common code (e.g. the pthread_mutex-files) are changed back to the time before lock elision was introduced with the x86-support: - commit 1cdbe579482c07e9f4bb3baa4864da2d3e7eb837 "Add the low level infrastructure for pthreads lock elision with TSX" - commit b023e4ca99f5e81f90d87d23cd267ef2abd2388c "Add new internal mutex type flags for elision." - commit 68cc29355f3334c7ad18f648ff9a6383a0916d23 "Add minimal test suite changes for elision enabled kernels" - commit e8c659d74e011346785355eeef03b7fb6f533c61 "Add elision to pthread_mutex_{try,timed,un}lock" - commit 49186d21ef2d87986bccaf0a7c45c48c91b265f3 "Disable elision for any pthread_mutexattr_settype call" - commit 1717da59aed9612becd56aaa1249aac695af4c8a "Add a configure option to enable lock elision and disable by default" Elision is removed also from the tunables, the initialization part, the pretty-printers and the manual. Some extra handling in the testsuite is removed as well as the full tst-mutex10 testcase, which tested a race while enabling lock elision. I've also searched the code for "elision", "elide", "transaction" and e.g. cleaned some comments. I've run the testsuite on x86_64 and s390x and run the build-many-glibcs.py script. Thanks to Sachin Monga, this patch is also tested on powerpc. A NEWS entry also mentions the removal. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2025-11-17Add COPYINGv3 with the GPL version 3 textFlorian Weimer
The license is referenced in various headers, so we should ship it. The text was copied from gnulib commit d64d66cc4897d605f543257dcd0, file doc/COPYINGv3. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Collin Funk <collin.funk1@gmail.com> Signed-off-by: Florian Weimer <fweimer@redhat.com>
2025-11-08Add missing $(rpath-link) to elf/ld.so --library-pathSamuel Thibault
This is notably needed for GNU/Hurd's libmachuser.so and libhurduser.so.
2025-10-01Use Linux 6.17 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2025-08-13LoongArch: Fix build failure for loongarch64-linux-gnusf toolchain. [BZ #32776]caiyinyu
GCC parts: A GCC bug caused the loss of the search path: /usr/lib64/sf, and this bug has now been fixed in GCC. See: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=9467435253948b83fcb5f7430f6cd571236960d8
2025-07-29Use Linux 6.16, GCC 15, binutils 2.45 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2025-05-28Use Linux 6.15 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds). Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-05-27Use -std=gnu17 in build-many-glibcs.py when configuring GMPJoseph Myers
This works around incompatibility of GMP 6.3.0 with GCC 15 (defaulting to C23) following an approach suggested by Florian. Tested with build-many-glibcs.py (host-libraries build only). Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-05-21pylintrc: Remove obsolete ignore section and comments.Carlos O'Donell
Remove the obsolete ignore=CVS since we use git now. We make the code more inclusive by removing obsolete comments. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-03-25Use MPFR 4.2.2 and Linux 6.14 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2025-03-07Use binutils 2.44 branch and Linux 6.13 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2025-03-05Remove dl-procinfo.hAdhemerval Zanella
powerpc was the only architecture with arch-specific hooks for LD_SHOW_AUXV, and with the information moved to ld diagnostics there is no need to keep the _dl_procinfo hook. Checked with a build for all affected ABIs. Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
2025-01-01Don't update copyright notices in Linux licensesPaul Eggert
* scripts/update-copyrights: Do not update copyright notices in licenses imported from the Linux kernel. This should prevent glitches such as those fixed in my recent commit.
2025-01-01Update copyright dates not handled by scripts/update-copyrightsPaul Eggert
I've updated copyright dates in glibc for 2025. This is the patch for the changes not generated by scripts/update-copyrights and subsequent build / regeneration of generated files.
2025-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert
2024-12-31Use GCC 14 branch in build-many-glibcs.pyH.J. Lu
Tested with build-many-glibcs.py with --exclude m68k-linux-gnu-coldfire-soft Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
2024-12-25build-many-glibcs.py: Add --exclude optionH.J. Lu
m68k-linux-gnu-coldfire-soft GCC and glibc often won't build due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103370 which results in build-many-glibcs.py failure. Add an option, --exclude, to exclude some targets. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
2024-12-22Use -finput-charset=ascii only if supportedH.J. Lu
Check if -finput-charset=ascii is supported before using it in check-installed-headers.sh. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
2024-12-03Use Linux 6.12 in build-many-glibcs.pyJoseph Myers
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2024-11-28Remove nios2-linux-gnuAdhemerval Zanella
GCC 15 (e876acab6cdd84bb2b32c98fc69fb0ba29c81153) and binutils (e7a16d9fd65098045ef5959bf98d990f12314111) both removed all Nios II support, and the architecture has been EOL'ed by the vendor. The kernel still has support, but without a proper compiler there is no much sense in keep it on glibc. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-10-10Use Linux 6.11 in build-many-glibcs.pyAdhemerval Zanella
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds). Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-09-25scripts: Remove arceb-linux-gnu from build-many-glibcs.pyFlorian Weimer
This was discussed on the hallway track at GNU Tools Cauldron 2024. There are concerns about stability of the big-endian GCC backend, and Linux removed support for the only big-endian ARC platform in commit dd7c7ab01a04d645b7e7baa8530bfd81e31a2202 ("ARC: [plat-eznps]: Drop support for EZChip NPS platform").
2024-09-14tst: Extend cross-test-ssh.sh to support passing glibc tunablesYury Khrustalev
This patch adds new flag --glibctunables to the cross-test-ssh.sh script to pass Glibc tunables to the system on which tests are executed. The value to pass can be also provided via the GLIBC_TUNABLES environment variable. This works similar to the TIMEOUTFACTOR variable. Sometimes it is useful to cross test glibc with some non-default tunable, and a global environment variable is the easiest way to inject some tunable value into most tests. With this patch using cross-test-ssh.sh script becomes very similar to running a test natively on the local host when using non-default tunable is important. Reviewed-by: Arjun Shankar <arjun@redhat.com>
2024-08-06Use binutils 2.43 branch in build-many-glibcs.pyJoseph Myers
This patch makes build-many-glibcs.py use binutils 2.43 branch. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2024-07-30Use Linux 6.10 in build-many-glibcs.pyAdhemerval Zanella
Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds). Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-07-19elf: Fix localplt.awk for DT_RELR-enabled builds (BZ 31978)Adhemerval Zanella
For each input readelf output, localplt.awk parses each 'Relocation section' entry, checks its offset against the dynamic section entry, and saves each DT_JMPREL, DT_RELA, and DT_REL offset value it finds. After all lines are read, the script checks if any segment offset differed from 0, meaning at least one 'Relocation section' was matched. However, if the shared object was built with RELR support and the static linker could place all the relocation on DT_RELR, there would be no DT_JMPREL, DT_RELA, and DT_REL entries; only a DT_RELR. For the current three ABIs that support (aarch64, x86, and powerpc64), the powerpc64 ld.so shows the behavior above. Both x86_64 and aarch64 show extra relocations on '.rela.dyn', which makes the script check to succeed. This patch fixes by handling DT_RELR, where the offset is checked against the dynamic section entries and if the shared object contains an entry it means that there are no extra PLT entries (since all relocations are relative). It fixes the elf/check-localplt failure on powerpc. Checked with a build/check for aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, arm-linux-gnueabihf, s390x-linux-gnu, powerpc-linux-gnu, powerpc64-linux-gnu, and powerpc64le-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2024-07-19Adjust check-local-headers test for libaudit 4.0Florian Weimer
The new version introduces /usr/include/audit_logging.h and /usr/include/audit-records.h.
2024-06-12tunables: sort tunables list (BZ 30027)DJ Delorie
Sort tunables list at the time it's generated. Note: adding new tunables will cause other tunable IDs to change, but that was the case before anyway. POSIX does not guarantee the order of "foo in bar" AWK operators, so the order was indeterminate before anyway. Even depending on the order to be the same across multiple calls, such as in this script, is undefined, so sorting the list resolves that also. Note that sorting is not dependent on the user's locale.
2024-05-16Use Linux 6.9 in build-many-glibcs.pyJoseph Myers
This patch makes build-many-glibcs.py use Linux 6.9. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2024-05-07elf: Make glibc.rtld.enable_secure ignore alias environment variablesAdhemerval Zanella
Tunable with environment variables aliases are also ignored if glibc.rtld.enable_secure is enabled. The tunable parsing is also optimized a bit, where the loop that checks each environment variable only checks for the tunables with aliases instead of all tables. Checked on aarch64-linux-gnu and x86_64-linux-gnu. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2024-05-03build-many-glibcs.py: Add openrisc hard float glibc variantStafford Horne
This adds the OpenRISC hard float glibc variant to the build many script. We update the compiler for glibc to support hard-float multilibs to allow us to use a single generic compiler for all glibc variants, this requires updating the compiler name. Tested and all builds are passing. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-04-19Use --enable-obsolete in build-many-glibcs.py for nios2-linux-gnuJoseph Myers
Until GCC removes Nios II support (at which point we should do so as well), this is now needed for GCC 14 / mainline to build for nios2-linux-gnu target. Tested with build-many-glibcs.py (GCC mainline) for nios2-linux-gnu.
2024-03-13Use Linux 6.8 in build-many-glibcs.pyJoseph Myers
This patch makes build-many-glibcs.py use Linux 6.8. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2024-02-21build-many-glibcs.py: Add s390 --disable-multi-arch / multi-arch configurations.Stefan Liebler
This patch adds some --disable-multi-arch variants for s390x. As the used IFUNC variants and __GI symbols depend on the used gcc -march=cpu-level, there are multiple new configurations. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-02-15sort-makefile-lines.py: Allow '_' in name and "^# name"H.J. Lu
'_' is used in Makefile variable names and many variables end with "^# name". Relax sort-makefile-lines.py to allow '_' in name and "^# name" as variable end. This fixes BZ #31385.
2024-02-12test_printers_common.py: Remove invalid escape sequenceH.J. Lu
Change "\(" and "\)" to "\\(" and "\\)" in test_printers_common.py. This fixes the test warning: .../scripts/test_printers_common.py:101: SyntaxWarning: invalid escape sequence '\(' Reviewed-by: Florian Weimer <fweimer@redhat.com>