rebase to 2.36

Signed-off-by: Chunmei Xu <xuchunmei@linux.alibaba.com>
This commit is contained in:
Chunmei Xu 2022-08-04 16:26:51 +08:00
parent 4b03b78746
commit bbc1fbe6e4
9 changed files with 19 additions and 7710 deletions

View file

@ -1,65 +0,0 @@
From 9e8281add35dde70478464389fab6f0f7e75b880 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@linux-m68k.org>
Date: Thu, 3 Feb 2022 09:37:42 +0100
Subject: [PATCH 01/13] Regenerate configure
---
configure | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/configure b/configure
index 00dc638388..8e5bee775a 100755
--- a/configure
+++ b/configure
@@ -730,7 +730,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -845,7 +844,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1098,15 +1096,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1244,7 +1233,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1397,7 +1386,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--
2.29.2

View file

@ -1,147 +0,0 @@
From d2e4d2a38e4e7bc3ca407607e717b7f50b20c63f Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed, 2 Feb 2022 18:31:59 -0300
Subject: [PATCH 02/13] posix: Fix tst-spawn6 terminal handling (BZ #28853)
The test changes the current foreground process group, which might
break testing depending of how the make check is issued. For instance:
nohup make -j1 test t=posix/tst-spawn6 | less
Will set 'make' and 'less' to be in the foreground process group in
the current session. When tst-spawn6 new child takes over it becomes
the foreground process and 'less' is stopped and backgrounded which
interrupts the 'make check' command.
To fix it a pseudo-terminal is allocated, the test starts in new
session (so there is no controlling terminal associated), and the
pseudo-terminal is set as the controlling one (similar to what
login_tty does).
Checked on x86_64-linux-gnu.
Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from a9d35765728cbc5b66af5eeda5428298bccf9b69)
---
NEWS | 8 ++++++
posix/tst-spawn6.c | 62 ++++++++++++++++++++++++++++++++++++++--------
2 files changed, 59 insertions(+), 11 deletions(-)
diff --git a/NEWS b/NEWS
index faa7ec1871..b1aae94cfb 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,14 @@ See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
+
+Version 2.35.1
+
+The following bugs are resolved with this release:
+
+ [28853] libc: tst-spawn6 changes current foreground process group
+ (breaks test isolation)
+
Version 2.35
diff --git a/posix/tst-spawn6.c b/posix/tst-spawn6.c
index 911e90a461..044abd8535 100644
--- a/posix/tst-spawn6.c
+++ b/posix/tst-spawn6.c
@@ -29,7 +29,14 @@
#include <support/check.h>
#include <support/xunistd.h>
#include <sys/wait.h>
+#include <sys/ioctl.h>
#include <stdlib.h>
+#include <termios.h>
+
+#ifndef PATH_MAX
+# define PATH_MAX 1024
+#endif
+static char ptmxpath[PATH_MAX];
static int
handle_restart (const char *argv1, const char *argv2)
@@ -115,7 +122,7 @@ run_subprogram (int argc, char *argv[], const posix_spawnattr_t *attr,
}
static int
-do_test (int argc, char *argv[])
+run_test (int argc, char *argv[])
{
/* We must have either:
- four parameters left if called initially:
@@ -127,16 +134,7 @@ do_test (int argc, char *argv[])
+ --setgrpr optional
*/
- if (restart)
- return handle_restart (argv[1], argv[2]);
-
- int tcfd = open64 (_PATH_TTY, O_RDONLY, 0600);
- if (tcfd == -1)
- {
- if (errno == ENXIO)
- FAIL_UNSUPPORTED ("terminal not available, skipping test");
- FAIL_EXIT1 ("open64 (\"%s\", 0x%x, 0600): %m", _PATH_TTY, O_RDONLY);
- }
+ int tcfd = xopen (ptmxpath, O_RDONLY, 0600);
/* Check setting the controlling terminal without changing the group. */
{
@@ -198,5 +196,47 @@ do_test (int argc, char *argv[])
return 0;
}
+static int
+do_test (int argc, char *argv[])
+{
+ if (restart)
+ return handle_restart (argv[1], argv[2]);
+
+ pid_t pid = xfork ();
+ if (pid == 0)
+ {
+ /* Create a pseudo-terminal to avoid interfering with the one using by
+ test itself, creates a new session (so there is no controlling
+ terminal), and set the pseudo-terminal as the controlling one. */
+ int ptmx = posix_openpt (0);
+ if (ptmx == -1)
+ {
+ if (errno == ENXIO)
+ FAIL_UNSUPPORTED ("terminal not available, skipping test");
+ FAIL_EXIT1 ("posix_openpt (0): %m");
+ }
+ TEST_VERIFY_EXIT (grantpt (ptmx) == 0);
+ TEST_VERIFY_EXIT (unlockpt (ptmx) == 0);
+
+ TEST_VERIFY_EXIT (setsid () != -1);
+ TEST_VERIFY_EXIT (ioctl (ptmx, TIOCSCTTY, NULL) == 0);
+ while (dup2 (ptmx, STDIN_FILENO) == -1 && errno == EBUSY)
+ ;
+ while (dup2 (ptmx, STDOUT_FILENO) == -1 && errno == EBUSY)
+ ;
+ while (dup2 (ptmx, STDERR_FILENO) == -1 && errno == EBUSY)
+ ;
+ TEST_VERIFY_EXIT (ptsname_r (ptmx, ptmxpath, sizeof ptmxpath) == 0);
+ xclose (ptmx);
+
+ run_test (argc, argv);
+ _exit (0);
+ }
+ int status;
+ xwaitpid (pid, &status, 0);
+ TEST_VERIFY (WIFEXITED (status));
+ exit (0);
+}
+
#define TEST_FUNCTION_ARGV do_test
#include <support/test-driver.c>
--
2.29.2

View file

@ -1,45 +0,0 @@
From a2f1675634b3513c09c38e55e6766e8c05768b1f Mon Sep 17 00:00:00 2001
From: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
Date: Tue, 1 Feb 2022 22:39:02 +0000
Subject: [PATCH 03/13] linux: __get_nprocs_sched: do not feed CPU_COUNT_S with
garbage [BZ #28850]
Pass the actual number of bytes returned by the kernel.
Fixes: 33099d72e41c ("linux: Simplify get_nprocs")
Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
(cherry picked from commit 97ba273b505763325efd802dc3a9562dbba79579)
---
NEWS | 1 +
sysdeps/unix/sysv/linux/getsysstats.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/NEWS b/NEWS
index b1aae94cfb..d1602051d1 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Version 2.35.1
The following bugs are resolved with this release:
+ [28850] linux: __get_nprocs_sched reads uninitialized memory from the stack
[28853] libc: tst-spawn6 changes current foreground process group
(breaks test isolation)
diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
index 4798cc337e..c98c8ce3d4 100644
--- a/sysdeps/unix/sysv/linux/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/getsysstats.c
@@ -44,7 +44,7 @@ __get_nprocs_sched (void)
int r = INTERNAL_SYSCALL_CALL (sched_getaffinity, 0, cpu_bits_size,
cpu_bits);
if (r > 0)
- return CPU_COUNT_S (cpu_bits_size, (cpu_set_t*) cpu_bits);
+ return CPU_COUNT_S (r, (cpu_set_t*) cpu_bits);
else if (r == -EINVAL)
/* The input buffer is still not enough to store the number of cpus. This
is an arbitrary values assuming such systems should be rare and there
--
2.29.2

View file

@ -1,36 +0,0 @@
From 7001c1e38b46d5f5a90f7915b1211782341ab6a8 Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Thu, 3 Feb 2022 16:52:52 -0300
Subject: [PATCH 04/13] linux: Fix missing __convert_scm_timestamps (BZ #28860)
Commit 948ce73b31 made recvmsg/recvmmsg to always call
__convert_scm_timestamps for 64 bit time_t symbol, so adjust it to
always build it for __TIMESIZE != 64.
It fixes build for architecture with 32 bit time_t support when
configured with minimum kernel of 5.1.
(cherry picked from 798d716df71fb23dc89d1d5dba1fc26a1b5c0024)
---
sysdeps/unix/sysv/linux/convert_scm_timestamps.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 82171bf325..dfc8c2beff 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -16,9 +16,9 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <kernel-features.h>
+#include <bits/timesize.h>
-#ifndef __ASSUME_TIME64_SYSCALLS
+#if __TIMESIZE != 64
# include <stdint.h>
# include <string.h>
# include <sys/socket.h>
--
2.29.2

View file

@ -1,25 +0,0 @@
From 24962427071fa532c3c48c918e9d64d719cc8a6c Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Thu, 3 Feb 2022 17:50:13 -0300
Subject: [PATCH 05/13] Add BZ#28860 reference on NEWS
---
NEWS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/NEWS b/NEWS
index d1602051d1..6b8db4e947 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,8 @@ The following bugs are resolved with this release:
[28850] linux: __get_nprocs_sched reads uninitialized memory from the stack
[28853] libc: tst-spawn6 changes current foreground process group
(breaks test isolation)
+ [28860] build: --enable-kernel=5.1.0 build fails because of missing
+ __convert_scm_timestamps
Version 2.35
--
2.29.2

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -1,4 +1,4 @@
%define anolis_release 2
%define anolis_release 1
##############################################################################
# We support the following options:
# --with/--without,
@ -100,7 +100,7 @@ end \
##############################################################################
Summary: The GNU libc libraries
Name: glibc
Version: 2.35
Version: 2.36
Release: %{anolis_release}%{?dist}
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
@ -161,20 +161,13 @@ rpm.define("__debug_install_post bash " .. wrapper
# - See each individual patch file for origin and upstream status.
# - For new patches follow template.patch format.
##############################################################################
Patch6: glibc-no-archive-for-localedef.patch
Patch8: glibc-place-info-into-Libraries-category.patch
Patch9: glibc-nscd-add-syslog-target-dependency.patch
Patch15: glibc-fix-newlocale-error-return.patch
Patch17: glibc-cs-path.patch
Patch23: glibc-python3.patch
Patch30: glibc-deprecated-selinux-makedb.patch
# sync from release/2.35/master
Patch1001: 0001-Regenerate-configure.patch
Patch1002: 0002-posix-Fix-tst-spawn6-terminal-handling-BZ-28853.patch
Patch1003: 0003-linux-__get_nprocs_sched-do-not-feed-CPU_COUNT_S-wit.patch
Patch1004: 0004-linux-Fix-missing-__convert_scm_timestamps-BZ-28860.patch
Patch1005: 0005-Add-BZ-28860-reference-on-NEWS.patch
Patch1: glibc-no-archive-for-localedef.patch
Patch2: glibc-place-info-into-Libraries-category.patch
Patch3: glibc-nscd-add-syslog-target-dependency.patch
Patch4: glibc-fix-newlocale-error-return.patch
Patch5: glibc-cs-path.patch
Patch6: glibc-python3.patch
Patch7: glibc-deprecated-selinux-makedb.patch
##############################################################################
# Continued list of core "glibc" package information:
@ -443,6 +436,8 @@ The sources for all locales provided in the language packs.
If you are building custom locales you will most likely use
these sources as the basis for your new locale.
%global locale_rx eo syr *_*
%{lua:
-- To make lua-mode happy: '
@ -678,6 +673,7 @@ local locales = {
{ code="pt", name="Portuguese", regions={ "BR", "PT" } },
{ code="quz", name="Cusco Quechua", regions={ "PE" } },
{ code="raj", name="Rajasthani", regions={ "IN" } },
{ code="rif", name="Tarifit", regions={ "MA" } },
{ code="ro", name="Romanian", regions={ "RO" } },
{ code="ru", name="Russian", regions={ "RU", "UA" } },
{ code="rw", name="Kinyarwanda", regions={ "RW" } },
@ -702,6 +698,7 @@ local locales = {
{ code="st", name="Southern Sotho", regions={ "ZA" } },
{ code="sv", name="Swedish", regions={ "FI", "SE" } },
{ code="sw", name="Swahili", regions={ "KE", "TZ" } },
{ code="syr", name="Syriac", regions={} },
{ code="szl", name="Silesian", regions={ "PL" } },
{ code="ta", name="Tamil", regions={ "IN", "LK" } },
{ code="tcy", name="Tulu", regions={ "IN" } },
@ -1010,6 +1007,7 @@ rpm_inherit_flags \
"-m64" \
"-march=armv8-a+lse" \
"-march=armv8.1-a" \
"-march=armv9-a" \
"-march=haswell" \
"-march=i686" \
"-march=x86-64" \
@ -1261,14 +1259,14 @@ $olddir/build-%{target}/elf/ld.so \
$olddir/build-%{target}/locale/localedef \
--alias-file=$olddir/intl/locale.alias \
--prefix %{glibc_sysroot} --add-to-archive \
eo *_*
%locale_rx
# Historically, glibc-all-langpacks deleted the file on updates (sic),
# so we need to restore it in the posttrans scriptlet (like the old
# glibc-all-langpacks versions)
ln locale-archive locale-archive.real
# Create the file lists for the language specific sub-packages:
for i in eo *_*
for i in %locale_rx
do
lang=${i%%_*}
if [ ! -e langpack-${lang}.filelist ]; then
@ -2067,6 +2065,9 @@ update_gconv_modules_cache ()
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
%changelog
* Thu Aug 04 2022 Chunmei Xu <xuchunmei@linux.alibaba.com> - 2.36-1
- rebase to 2.36
* Mon Jul 11 2022 Weisson <wenshu.hx@alibaba-inc.com> - 2.35-2
- Add support for riscv64
- RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. Make these be symlinks to /lib64 or /usr/lib64 respectively.