summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO14
-rw-r--r--PKGBUILD28
-rw-r--r--glibc-linux4.patch68
3 files changed, 48 insertions, 62 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f2eedb434134..cbd601b6be2c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = glibc-linux4
- pkgver = 2.36
- pkgrel = 3
+ pkgver = 2.38
+ pkgrel = 1
url = https://www.gnu.org/software/libc/
arch = x86_64
license = GPL
@@ -11,7 +11,7 @@ pkgbase = glibc-linux4
makedepends = python
options = staticlibs
options = !lto
- source = git+https://sourceware.org/git/glibc.git#commit=93967a2a7bbdcedb73e0b246713580c7c84d001e
+ source = git+https://sourceware.org/git/glibc.git#commit=1aed90c9c8f8be9f68b58e96b6e4cd0fc08eb2b1
source = glibc-linux4.patch
source = locale.gen.txt
source = locale-gen
@@ -21,7 +21,7 @@ pkgbase = glibc-linux4
validpgpkeys = 7273542B39962DF7B299931416792B4EA25340F8
validpgpkeys = BC7C7372637EC10C57D7AA6579C43DFBF1CF2187
sha256sums = SKIP
- sha256sums = 69573c1c4eee6216f4f345647aed938d13994bf19a7e3a6ba9ed8bab85f23bef
+ sha256sums = e105e7788b068f364178eaaa6cd2e150047fec7a79138fda32a5410cbdf1c1b4
sha256sums = 2a7dd6c906b6c54a68f48a21898664a32fdb136cbd9ff7bfd48f01d1aaa649ae
sha256sums = 7503947e23cecc8307e8f7ce2a792eecb6f72f22d6838b34417c2489a259fde9
sha256sums = c27424154a6096ae32c0824b785e05de6acef33d9224fd6147d1936be9b4962b
@@ -36,7 +36,7 @@ pkgname = glibc-linux4
depends = filesystem
optdepends = gd: for memusagestat
optdepends = perl: for mtrace
- provides = glibc=2.36
+ provides = glibc=2.38
conflicts = glibc
backup = etc/gai.conf
backup = etc/locale.gen
@@ -44,8 +44,8 @@ pkgname = glibc-linux4
pkgname = lib32-glibc-linux4
pkgdesc = GNU C Library (linux 4.x compat, 32-bit)
- depends = glibc=2.36
- provides = lib32-glibc=2.36
+ depends = glibc=2.38
+ provides = lib32-glibc=2.38
conflicts = lib32-glibc
options = staticlibs
options = !lto
diff --git a/PKGBUILD b/PKGBUILD
index 7f3c559d6f47..4c085b888c02 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,9 +9,9 @@
pkgbase=glibc-linux4
pkgname=(glibc-linux4 lib32-glibc-linux4)
-pkgver_=93967a2a7bbdcedb73e0b246713580c7c84d001e
-pkgver=2.36
-pkgrel=3
+pkgver_=1aed90c9c8f8be9f68b58e96b6e4cd0fc08eb2b1
+pkgver=2.38
+pkgrel=1
arch=(x86_64)
url="https://www.gnu.org/software/libc/"
license=(GPL LGPL)
@@ -33,8 +33,8 @@ source=(
)
sha256sums=(
"SKIP"
- # "1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75" "SKIP"
- "69573c1c4eee6216f4f345647aed938d13994bf19a7e3a6ba9ed8bab85f23bef"
+ # "fb82998998b2b29965467bc1b69d152e9c307d2cf301c9eafb4555b770ef3fd2" "SKIP"
+ "e105e7788b068f364178eaaa6cd2e150047fec7a79138fda32a5410cbdf1c1b4"
"2a7dd6c906b6c54a68f48a21898664a32fdb136cbd9ff7bfd48f01d1aaa649ae"
"7503947e23cecc8307e8f7ce2a792eecb6f72f22d6838b34417c2489a259fde9"
"c27424154a6096ae32c0824b785e05de6acef33d9224fd6147d1936be9b4962b"
@@ -59,11 +59,11 @@ build() {
--with-bugurl=https://bugs.archlinux.org/
--enable-bind-now
--enable-cet
+ --enable-fortify-source
--enable-kernel=4.4.0
--enable-multi-arch
--enable-stack-protector=strong
--enable-systemtap
- --disable-crypt
--disable-profile
--disable-werror
)
@@ -78,20 +78,13 @@ build() {
# Credits @allanmcrae
# https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/glibc/PKGBUILD
# remove fortify for building libraries
- CFLAGS=${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2/}
+ # CFLAGS=${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2/}
"${srcdir}"/glibc/configure \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
"${_configure_flags[@]}"
- # build libraries with fortify disabled
- echo "build-programs=no" >> configparms
- make -O
-
- # re-enable fortify for programs
- sed -i "/build-programs=/s#no#yes#" configparms
- echo "CFLAGS += -Wp,-D_FORTIFY_SOURCE=2" >> configparms
make -O
# build info pages manually for reproducibility
@@ -112,13 +105,6 @@ build() {
--libexecdir=/usr/lib32 \
"${_configure_flags[@]}"
- # build libraries with fortify disabled
- echo "build-programs=no" >> configparms
- make -O
-
- # re-enable fortify for programs
- sed -i "/build-programs=/s#no#yes#" configparms
- echo "CFLAGS += -Wp,-D_FORTIFY_SOURCE=2" >> configparms
make -O
cd "${srcdir}"/glibc-build
diff --git a/glibc-linux4.patch b/glibc-linux4.patch
index 7ad3ff7f5ad1..cd9248f618a9 100644
--- a/glibc-linux4.patch
+++ b/glibc-linux4.patch
@@ -1,5 +1,5 @@
diff --git a/nptl/futex-internal.c b/nptl/futex-internal.c
-index 7ec228e8fb..e7d5058eeb 100644
+index 5a64d14338..e9fb108111 100644
--- a/nptl/futex-internal.c
+++ b/nptl/futex-internal.c
@@ -54,13 +54,9 @@ __futex_abstimed_wait_common64 (unsigned int* futex_word,
@@ -12,14 +12,14 @@ index 7ec228e8fb..e7d5058eeb 100644
+ return -ENOSYS; // INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected, abstime, NULL /* Unused. */, FUTEX_BITSET_MATCH_ANY);
else
- return INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op, expected,
-- abstime, NULL /* Ununsed. */,
+- abstime, NULL /* Unused. */,
- FUTEX_BITSET_MATCH_ANY);
-+ return -ENOSYS; // INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op, expected, abstime, NULL /* Ununsed. */, FUTEX_BITSET_MATCH_ANY);
++ return -ENOSYS; // INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op, expected, abstime, NULL /* Unused. */, FUTEX_BITSET_MATCH_ANY);
}
static int
diff --git a/sysdeps/unix/sysv/linux/clock_adjtime.c b/sysdeps/unix/sysv/linux/clock_adjtime.c
-index 5ded82f506..0955222329 100644
+index bd6663431c..fd771e9ad5 100644
--- a/sysdeps/unix/sysv/linux/clock_adjtime.c
+++ b/sysdeps/unix/sysv/linux/clock_adjtime.c
@@ -29,7 +29,8 @@ __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64)
@@ -33,7 +33,7 @@ index 5ded82f506..0955222329 100644
if (r >= 0 || errno != ENOSYS)
return r;
diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
-index 5534127ed7..7ec0690061 100644
+index 5f01225542..ae1e9abc0b 100644
--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -34,7 +34,7 @@ __clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
@@ -46,7 +46,7 @@ index 5534127ed7..7ec0690061 100644
#ifndef __ASSUME_TIME64_SYSCALLS
if (r != 0 && r == -ENOSYS)
diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c
-index 38304db3cc..2b64c53d9f 100644
+index da2cb90f5c..39ee38a078 100644
--- a/sysdeps/unix/sysv/linux/clock_getres.c
+++ b/sysdeps/unix/sysv/linux/clock_getres.c
@@ -35,9 +35,9 @@ __clock_getres64 (clockid_t clock_id, struct __timespec64 *res)
@@ -62,12 +62,12 @@ index 38304db3cc..2b64c53d9f 100644
if (r == 0 || errno != ENOSYS)
return r;
diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c
-index befe6ecb8c..f9692363c6 100644
+index ac2d810632..12c1c976f5 100644
--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c
+++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -50,8 +50,7 @@ __clock_nanosleep_time64 (clockid_t clock_id, int flags,
#else
- if (!in_time_t_range (req->tv_sec))
+ if (!in_int32_t_range (req->tv_sec))
{
- r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags,
- req, rem);
@@ -76,7 +76,7 @@ index befe6ecb8c..f9692363c6 100644
r = -EOVERFLOW;
}
diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c
-index 2a32e2eb13..0c15ef3260 100644
+index 68e8b0ce12..26e1e75a35 100644
--- a/sysdeps/unix/sysv/linux/clock_settime.c
+++ b/sysdeps/unix/sysv/linux/clock_settime.c
@@ -35,7 +35,8 @@ __clock_settime64 (clockid_t clock_id, const struct __timespec64 *tp)
@@ -90,7 +90,7 @@ index 2a32e2eb13..0c15ef3260 100644
#ifndef __ASSUME_TIME64_SYSCALLS
if (ret == 0 || errno != ENOSYS)
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
-index 1378bb2db8..c4944f65b0 100644
+index 0ccbd778b5..f373741afe 100644
--- a/sysdeps/unix/sysv/linux/faccessat.c
+++ b/sysdeps/unix/sysv/linux/faccessat.c
@@ -26,7 +26,8 @@
@@ -104,10 +104,10 @@ index 1378bb2db8..c4944f65b0 100644
return ret;
#else
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
-index 74adc3956b..da28b563c7 100644
+index 07b440f4ee..3be0f500a4 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
-@@ -203,7 +203,7 @@
+@@ -210,7 +210,7 @@
#if __LINUX_KERNEL_VERSION >= 0x050100 \
|| __WORDSIZE == 64 \
|| (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64)
@@ -116,7 +116,7 @@ index 74adc3956b..da28b563c7 100644
#endif
/* Linux waitid prior kernel 5.4 does not support waiting for the current
-@@ -215,7 +215,7 @@
+@@ -222,7 +222,7 @@
/* The faccessat2 system call was introduced across all architectures
in Linux 5.8. */
#if __LINUX_KERNEL_VERSION >= 0x050800
@@ -126,11 +126,11 @@ index 74adc3956b..da28b563c7 100644
# define __ASSUME_FACCESSAT2 0
#endif
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
-index 5bf1e0a83b..8abea336b9 100644
+index 6391e0026b..89815deb5d 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -39,8 +39,8 @@ ___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len
- && !in_time_t_range (abs_timeout->tv_sec);
+ && !in_int32_t_range (abs_timeout->tv_sec);
if (need_time64)
{
- int r = SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len,
@@ -141,11 +141,11 @@ index 5bf1e0a83b..8abea336b9 100644
return r;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
-index 3ca5050976..753ffbb328 100644
+index 40d475a141..b7d19f6b7a 100644
--- a/sysdeps/unix/sysv/linux/mq_timedsend.c
+++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -39,8 +39,8 @@ ___mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
- && !in_time_t_range (abs_timeout->tv_sec);
+ && !in_int32_t_range (abs_timeout->tv_sec);
if (need_time64)
{
- int r = SYSCALL_CANCEL (mq_timedsend_time64, mqdes, msg_ptr, msg_len,
@@ -156,11 +156,11 @@ index 3ca5050976..753ffbb328 100644
return r;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c
-index 1105e29b00..3d5d7e3157 100644
+index 078eba3031..3f27c3d485 100644
--- a/sysdeps/unix/sysv/linux/ppoll.c
+++ b/sysdeps/unix/sysv/linux/ppoll.c
@@ -46,8 +46,8 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout,
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
- ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask,
@@ -171,11 +171,11 @@ index 1105e29b00..3d5d7e3157 100644
return ret;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
-index eba1c111f8..2a522d4e80 100644
+index 7fab25c19e..54ad5d0364 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -59,8 +59,8 @@ __pselect64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
- int r = pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout,
@@ -186,7 +186,7 @@ index eba1c111f8..2a522d4e80 100644
return r;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
-index d9664d61c4..1775c1d38f 100644
+index e3561f2f60..8c14128869 100644
--- a/sysdeps/unix/sysv/linux/recvmmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -26,8 +26,8 @@ recvmmsg_syscall (int fd, struct mmsghdr *vmessages, unsigned int vlen,
@@ -201,7 +201,7 @@ index d9664d61c4..1775c1d38f 100644
if (r >= 0 || errno != ENOSYS)
return r;
diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c b/sysdeps/unix/sysv/linux/sched_rr_gi.c
-index 19abc995b9..2426cba814 100644
+index 0f725cafc8..4a7b5eb0d6 100644
--- a/sysdeps/unix/sysv/linux/sched_rr_gi.c
+++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c
@@ -28,7 +28,8 @@ __sched_rr_get_interval64 (pid_t pid, struct __timespec64 *tp)
@@ -215,11 +215,11 @@ index 19abc995b9..2426cba814 100644
if (ret == 0 || errno != ENOSYS)
return ret;
diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c
-index a3f0a2eba7..63c4a5991b 100644
+index 556165c11c..976ca7d0fd 100644
--- a/sysdeps/unix/sysv/linux/select.c
+++ b/sysdeps/unix/sysv/linux/select.c
@@ -75,8 +75,8 @@ __select64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
- int r = SYSCALL_CANCEL (pselect6_time64, nfds, readfds, writefds,
@@ -230,11 +230,11 @@ index a3f0a2eba7..63c4a5991b 100644
{
TIMESPEC_TO_TIMEVAL (timeout, &ts64);
diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
-index 38a401bb6f..8f2e7ea99b 100644
+index 4cff1f982a..9fa0300add 100644
--- a/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/sysdeps/unix/sysv/linux/semtimedop.c
@@ -45,7 +45,8 @@ __semtimedop64 (int semid, struct sembuf *sops, size_t nsops,
- bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec);
+ bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec);
if (need_time64)
{
- int r = semtimedop_syscall (semid, sops, nsops, timeout);
@@ -244,7 +244,7 @@ index 38a401bb6f..8f2e7ea99b 100644
return r;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
-index 3ac39979da..aca910450e 100644
+index 091a03ef36..b965c94457 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -32,7 +32,8 @@ ___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
@@ -258,7 +258,7 @@ index 3ac39979da..aca910450e 100644
if (ret == 0 || errno != ENOSYS)
return ret;
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
-index 518fed9c59..6f4b8fd699 100644
+index 148eb4c0f2..ecb9bf99e9 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -39,8 +39,7 @@ ___timer_settime64 (timer_t timerid, int flags,
@@ -272,7 +272,7 @@ index 518fed9c59..6f4b8fd699 100644
return ret;
# endif
diff --git a/sysdeps/unix/sysv/linux/timerfd_gettime.c b/sysdeps/unix/sysv/linux/timerfd_gettime.c
-index 9bd0e02621..989f24eff3 100644
+index 2c8db1003d..9c3683bea9 100644
--- a/sysdeps/unix/sysv/linux/timerfd_gettime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_gettime.c
@@ -32,7 +32,8 @@ __timerfd_gettime64 (int fd, struct __itimerspec64 *value)
@@ -286,11 +286,11 @@ index 9bd0e02621..989f24eff3 100644
return ret;
struct itimerspec its32;
diff --git a/sysdeps/unix/sysv/linux/timerfd_settime.c b/sysdeps/unix/sysv/linux/timerfd_settime.c
-index 59282bf1ad..bdd4e31171 100644
+index 4f6148ea30..ab7eb0b568 100644
--- a/sysdeps/unix/sysv/linux/timerfd_settime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_settime.c
@@ -37,8 +37,8 @@ __timerfd_settime64 (int fd, int flags, const struct __itimerspec64 *value,
- || !in_time_t_range (value->it_interval.tv_sec);
+ || !in_int32_t_range (value->it_interval.tv_sec);
if (need_time64)
{
- int r = INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value,
@@ -301,11 +301,11 @@ index 59282bf1ad..bdd4e31171 100644
return r;
__set_errno (EOVERFLOW);
diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c
-index 5662ecc9aa..25bc1e9c58 100644
+index 6075e1e006..8b931cdc35 100644
--- a/sysdeps/unix/sysv/linux/utimensat.c
+++ b/sysdeps/unix/sysv/linux/utimensat.c
@@ -46,8 +46,8 @@ __utimensat64_helper (int fd, const char *file,
- && !in_time_t_range (tsp64[1].tv_sec)));
+ && !in_int32_t_range (tsp64[1].tv_sec)));
if (need_time64)
{
- int r = INLINE_SYSCALL_CALL (utimensat_time64, fd, file, &tsp64[0],