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