Update package version to 2.44

This commit is contained in:
2026-09-04 15:56:44 +03:00
parent 8a37ae21c8
commit 724a100f90
5 changed files with 9 additions and 257 deletions
+4 -4
View File
@@ -1,7 +1,7 @@
name: glibc name: glibc
description: The GNU C Library description: The GNU C Library
version: "2.43" version: "2.44"
revision: 2 revision: 1
url: https://www.gnu.org/software/libc/ url: https://www.gnu.org/software/libc/
license: GPL2-or-later,LGPL2.1-or-later,BSD-3-Clause license: GPL2-or-later,LGPL2.1-or-later,BSD-3-Clause
maintainers: maintainers:
@@ -24,7 +24,7 @@ provides:
options: options:
- nostrip - nostrip
downloads: downloads:
- url: https://ftpmirror.gnu.org/gnu/glibc/glibc-${BPM_PKG_VERSION}.tar.xz - url: http://ftp.gnu.org/gnu/glibc/glibc-${BPM_PKG_VERSION}.tar.xz
extract_to: ${BPM_SOURCE} extract_to: ${BPM_SOURCE}
extract_strip_components: 1 extract_strip_components: 1
checksum: d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 checksum: 37f600f2bef3c5e8300147059568b2a2e40a7ad6ccc65ce942556d49429cc667
+5 -13
View File
@@ -2,15 +2,6 @@
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
# The prepare function is executed in the root of the temp directory
# This function is used for putting downloaded files to the correct location or applying patches
prepare() {
cd "$BPM_SOURCE"
patch -Np1 -i "$BPM_WORKDIR"/0001-fix-tst-rseq-with-linux-7.0.patch
patch -Np1 -i "$BPM_WORKDIR"/0002-isolate-__O_CLOEXEC-flag-for-sys-mount.h-and-fcntl.h.patch
patch -Np1 -i "$BPM_WORKDIR"/0003-only-define-OPEN_TREE_-macros-in-sys-mount.h-if-undefined.patch
}
# The build function is executed in the source directory # The build function is executed in the source directory
# This function is used to compile the source code # This function is used to compile the source code
build() { build() {
@@ -44,10 +35,11 @@ build() {
# The check function is executed in the source directory # The check function is executed in the source directory
# This function is used to run tests to verify the package has been compiled correctly # This function is used to run tests to verify the package has been compiled correctly
check() { check() {
# disable tests that take too long on most systems # disable tests that cause issues
sed -i "/tst-thread-affinity-pthread/d" nptl/Makefile sed -i "/\btst-ldconfig-cache /d" elf/Makefile
sed -i "/tst-thread-affinity-sched/d" nptl/Makefile sed -i "/\btst-thread-affinity-sched /d" nptl/Makefile
sed -i '/tst-resolv-res_init-multi/d' resolv/Makefile sed -i '/\btst-resolv-res_init-multi /d' resolv/Makefile
sed -i '/\btst-resolv-res_init-multi /d' resolv/Makefile
cd build cd build
@@ -1,57 +0,0 @@
From 67f303b47dc584f204e3f2441b9832082415eebc Mon Sep 17 00:00:00 2001
From: Michael Jeanson <[email protected]>
Date: Fri, 20 Feb 2026 11:01:00 -0500
Subject: [PATCH] tests: fix tst-rseq with Linux 7.0
A sub-test of tst-rseq is to validate the return code and errno of the
rseq syscall when attempting to register the exact same rseq area as was
done in the dynamic loader.
This involves finding the rseq area address by adding the
'__rseq_offset' to the thread pointer and calculating the area size from
the AT_RSEQ_FEATURE_SIZE auxiliary vector. However the test currently
calculates the size of the rseq area allocation in the TLS block which
must be a multiple of AT_RSEQ_ALIGN.
Up until now that happened to be the same value since the feature size
and alignment exposed by the kernel were below the minimum ABI size of
32. Starting with Linux 7.0 the feature size has reached 33 while the
alignment is now 64.
This results in the test trying to re-register the rseq area with a
different size and thus not getting the expected errno value.
Signed-off-by: Michael Jeanson <[email protected]>
Reviewed-by: Mathieu Desnoyers <[email protected]>
---
sysdeps/unix/sysv/linux/tst-rseq.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c
index 11371dc6c5..ba93d390f4 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq.c
@@ -48,8 +48,7 @@ do_rseq_main_test (void)
size_t rseq_align = MAX (getauxval (AT_RSEQ_ALIGN), RSEQ_MIN_ALIGN);
size_t rseq_feature_size = MAX (getauxval (AT_RSEQ_FEATURE_SIZE),
RSEQ_AREA_SIZE_INITIAL_USED);
- size_t rseq_alloc_size = roundup (MAX (rseq_feature_size,
- RSEQ_AREA_SIZE_INITIAL_USED), rseq_align);
+ size_t rseq_reg_size = MAX (rseq_feature_size, RSEQ_AREA_SIZE_INITIAL);
struct rseq *rseq_abi = __thread_pointer () + __rseq_offset;
TEST_VERIFY_EXIT (rseq_thread_registered ());
@@ -89,8 +88,8 @@ do_rseq_main_test (void)
/* Test a rseq registration with the same arguments as the internal
registration which should fail with errno == EBUSY. */
TEST_VERIFY (((unsigned long) rseq_abi % rseq_align) == 0);
- TEST_VERIFY (__rseq_size <= rseq_alloc_size);
- int ret = syscall (__NR_rseq, rseq_abi, rseq_alloc_size, 0, RSEQ_SIG);
+ TEST_VERIFY (__rseq_size <= rseq_reg_size);
+ int ret = syscall (__NR_rseq, rseq_abi, rseq_reg_size, 0, RSEQ_SIG);
TEST_VERIFY (ret != 0);
TEST_COMPARE (errno, EBUSY);
}
--
2.43.7
@@ -1,139 +0,0 @@
From 419245719ccbc7dad6a97f24465e7f09c090327a Mon Sep 17 00:00:00 2001
From: DJ Delorie <[email protected]>
Date: Mon, 26 Jan 2026 22:24:42 -0500
Subject: [PATCH 1/1] include: isolate __O_CLOEXEC flag for sys/mount.h and
fcntl.h
Including sys/mount.h should not implicitly include fcntl.h
as that causes namespace pollution and conflicts with kernel
headers. It only needs O_CLOEXEC for OPEN_TREE_CLOEXEC
(although it shouldn't need that, but it's defined that way)
so we provide that define (via a private version) separately.
Reviewed-by: Adhemerval Zanella <[email protected]>
Tested-by: Florian Weimer <[email protected]>
---
io/fcntl.c | 4 ++++
sysdeps/unix/sysv/linux/Makefile | 1 +
sysdeps/unix/sysv/linux/alpha/bits/cloexec.h | 1 +
sysdeps/unix/sysv/linux/bits/cloexec.h | 1 +
sysdeps/unix/sysv/linux/bits/fcntl-linux.h | 4 +---
sysdeps/unix/sysv/linux/hppa/bits/cloexec.h | 1 +
sysdeps/unix/sysv/linux/sparc/bits/cloexec.h | 1 +
sysdeps/unix/sysv/linux/sys/mount.h | 6 +++++-
sysdeps/unix/sysv/linux/tst-mount.c | 1 +
9 files changed, 16 insertions(+), 4 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/cloexec.h
create mode 100644 sysdeps/unix/sysv/linux/bits/cloexec.h
create mode 100644 sysdeps/unix/sysv/linux/hppa/bits/cloexec.h
create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/cloexec.h
diff --git a/io/fcntl.c b/io/fcntl.c
index c13546e4fd..4fbc522624 100644
--- a/io/fcntl.c
+++ b/io/fcntl.c
@@ -18,6 +18,10 @@
#include <errno.h>
#include <fcntl.h>
+#ifndef __O_CLOEXEC
+# error __O_CLOEXEC not defined by fcntl.h/cloexec.h
+#endif
+
/* Perform file control operations on FD. */
int
__fcntl (int fd, int cmd, ...)
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 955d316362..c6bd97abf1 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -129,6 +129,7 @@ CFLAGS-test-errno-linux.c += $(no-fortify-source)
sysdep_headers += \
bits/a.out.h \
+ bits/cloexec.h \
bits/epoll.h \
bits/eventfd.h \
bits/inotify.h \
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h b/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h
new file mode 100644
index 0000000000..f381f28a53
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h
@@ -0,0 +1 @@
+#define __O_CLOEXEC 010000000
diff --git a/sysdeps/unix/sysv/linux/bits/cloexec.h b/sysdeps/unix/sysv/linux/bits/cloexec.h
new file mode 100644
index 0000000000..3059fb6473
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/cloexec.h
@@ -0,0 +1 @@
+#define __O_CLOEXEC 02000000
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index ad7f7c98c6..221a71aa62 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -81,9 +81,7 @@
#ifndef __O_NOFOLLOW
# define __O_NOFOLLOW 0400000
#endif
-#ifndef __O_CLOEXEC
-# define __O_CLOEXEC 02000000
-#endif
+#include <bits/cloexec.h>
#ifndef __O_DIRECT
# define __O_DIRECT 040000
#endif
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h b/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h
new file mode 100644
index 0000000000..f381f28a53
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h
@@ -0,0 +1 @@
+#define __O_CLOEXEC 010000000
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h b/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h
new file mode 100644
index 0000000000..6706eaa7d5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h
@@ -0,0 +1 @@
+#define __O_CLOEXEC 0x400000
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index 457d8dcff2..5e496caf2f 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -21,7 +21,6 @@
#ifndef _SYS_MOUNT_H
#define _SYS_MOUNT_H 1
-#include <fcntl.h>
#include <features.h>
#include <stdint.h>
#include <stddef.h>
@@ -266,6 +265,11 @@ enum fsconfig_command
/* open_tree flags. */
#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
+#ifndef O_CLOEXEC
+# include <bits/cloexec.h>
+# define O_CLOEXEC __O_CLOEXEC
+#endif
+#undef OPEN_TREE_CLOEXEC
#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
diff --git a/sysdeps/unix/sysv/linux/tst-mount.c b/sysdeps/unix/sysv/linux/tst-mount.c
index 8e3ffbd56f..84dcd448d4 100644
--- a/sysdeps/unix/sysv/linux/tst-mount.c
+++ b/sysdeps/unix/sysv/linux/tst-mount.c
@@ -20,6 +20,7 @@
#include <support/check.h>
#include <support/xunistd.h>
#include <support/namespace.h>
+#include <fcntl.h> /* For AT_ constants. */
#include <sys/mount.h>
_Static_assert (sizeof (struct mount_attr) == MOUNT_ATTR_SIZE_VER0,
--
2.43.7
@@ -1,44 +0,0 @@
From d12b017cddfeb9fe9920ba054ae3dfcb8e9238b8 Mon Sep 17 00:00:00 2001
From: Florian Weimer <[email protected]>
Date: Wed, 4 Mar 2026 18:32:36 +0100
Subject: [PATCH] Linux: Only define OPEN_TREE_* macros in <sys/mount.h> if
undefined (bug 33921)
There is a conditional inclusion of <linux/mount.h> earlier in the file.
If that defines the macros, do not redefine them. This addresses build
problems as the token sequence used by the UAPI macro definitions
changes between Linux versions.
Reviewed-by: Adhemerval Zanella <[email protected]>
---
sysdeps/unix/sysv/linux/sys/mount.h | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index 5e496caf2f..0c5ebed33a 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -264,14 +264,16 @@ enum fsconfig_command
#define FSOPEN_CLOEXEC 0x00000001
/* open_tree flags. */
-#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
+#ifndef OPEN_TREE_CLONE
+# define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
+#endif
#ifndef O_CLOEXEC
# include <bits/cloexec.h>
# define O_CLOEXEC __O_CLOEXEC
#endif
-#undef OPEN_TREE_CLOEXEC
-#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
-
+#ifndef OPEN_TREE_CLOEXEC
+# define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
+#endif
__BEGIN_DECLS
--
2.43.7