Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2021-09-17 23:25:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glibc (Old) and /work/SRC/openSUSE:Factory/.glibc.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc" Fri Sep 17 23:25:22 2021 rev:253 rq:911561 version:2.34 Changes: -------- --- /work/SRC/openSUSE:Factory/glibc/glibc.changes 2021-06-20 19:37:45.421495405 +0200 +++ /work/SRC/openSUSE:Factory/.glibc.new.1899/glibc.changes 2021-09-17 23:25:37.841219012 +0200 @@ -1,0 +2,99 @@ +Wed Aug 11 12:56:09 UTC 2021 - Andreas Schwab <[email protected]> + +- Don't create separate debuginfo packages for cross packages + +------------------------------------------------------------------- +Wed Aug 11 12:23:10 UTC 2021 - Andreas Schwab <[email protected]> + +- ldconfig-leak-empty-paths.patch: ldconfig: avoid leak on empty paths in + config file +- gconv-parseconfdir-memory-leak.patch: gconv_parseconfdir: Fix memory leak +- gaiconf-init-double-free.patch: gaiconf_init: Avoid double-free in label + and precedence lists +- copy-and-spawn-sgid-double-close.patch: copy_and_spawn_sgid: Avoid + double calls to close() +- icon-charmap-close-output.patch: iconv_charmap: Close output file when + done +- fcntl-time-bits-64-redirect.patch: Linux: Fix fcntl, ioctl, prctl + redirects for _TIME_BITS=64 (BZ #28182) +- librt-null-pointer.patch: librt: fix NULL pointer dereference (BZ + #28213) + +------------------------------------------------------------------- +Tue Aug 10 13:18:54 UTC 2021 - Michael Matz <[email protected]> + +- Add cross development packages for aarch64 and riscv64. + +------------------------------------------------------------------- +Mon Aug 2 09:38:46 UTC 2021 - Andreas Schwab <[email protected]> + +- Update to glibc 2.34 + Major new features: + * When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, + PTHREAD_STACK_MIN is no longer constant and is redefined to + sysconf(_SC_THREAD_STACK_MIN) + * Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ + * The dynamic linker implements the --list-diagnostics option, printing + a dump of information related to IFUNC resolver operation and + glibc-hwcaps subdirectory selection + * On Linux, the function execveat has been added + * The ISO C2X function timespec_getres has been added + * The feature test macro __STDC_WANT_IEC_60559_EXT__, from draft ISO + C2X, is supported to enable declarations of functions defined in Annex F + of C2X + * Add support for 64-bit time_t on configurations like x86 where time_t + is traditionally 32-bit + * The main gconv-modules file in glibc now contains only a small set of + essential converter modules and the rest have been moved into a supplementary + configuration file gconv-modules-extra.conf in the gconv-modules.d directory + in the same GCONV_PATH + * On Linux, a new tunable, glibc.pthread.stack_cache_size, can be used + to configure the size of the thread stack cache + * The function _Fork has been added as an async-signal-safe fork replacement + since Austin Group issue 62 droped the async-signal-safe requirement for + fork (and it will be included in the future POSIX standard) + * On Linux, the close_range function has been added + * The function closefrom has been added + * The posix_spawn_file_actions_closefrom_np function has been added, enabling + posix_spawn and posix_spawnp to close all file descriptors great than or + equal to a giver integer + Deprecated and removed features, and other changes affecting compatibility: + * The function pthread_mutex_consistent_np has been deprecated + * The function pthread_mutexattr_getrobust_np has been deprecated + * The function pthread_mutexattr_setrobust_np has been deprecated + * The function pthread_yield has been deprecated + * The function inet_neta declared in <arpa/inet.h> has been deprecated + * Various rarely-used functions declared in <resolv.h> and + <arpa/nameser.h> have been deprecated + * The pthread cancellation handler is now installed with SA_RESTART and + pthread_cancel will always send the internal SIGCANCEL on a cancellation + request + * The symbols mallwatch and tr_break are now deprecated and no longer used in + mtrace + * The __morecore and __after_morecore_hook malloc hooks and the default + implementation __default_morecore have been removed from the API + * Debugging features in malloc such as the MALLOC_CHECK_ environment variable + (or the glibc.malloc.check tunable), mtrace() and mcheck() have now been + disabled by default in the main C library + * The deprecated functions malloc_get_state and malloc_set_state have been + moved from the core C library into libc_malloc_debug.so + * The deprecated memory allocation hooks __malloc_hook, __realloc_hook, + __memalign_hook and __free_hook are now removed from the API + Changes to build and runtime requirements: + * On Linux, the shm_open, sem_open, and related functions now expect the + file shared memory file system to be mounted at /dev/shm + Security related changes: + CVE-2021-27645: The nameserver caching daemon (nscd), when processing + a request for netgroup lookup, may crash due to a double-free, + potentially resulting in degraded service or Denial of Service on the + local system + CVE-2021-33574: The mq_notify function has a potential use-after-free + issue when using a notification type of SIGEV_THREAD and a thread + attribute with a non-default affinity mask +- nss-database-check-reload.patch, nss-load-chroot.patch, + x86-isa-level.patch, nscd-netgroupcache.patch, + nss-database-lookup.patch, select-modify-timeout.patch, + nptl-db-libpthread-load-order.patch, rawmemchr-warning.patch, + tst-cpu-features-amx.patch, mq-notify-use-after-free.patch: Removed + +------------------------------------------------------------------- Old: ---- glibc-2.33.tar.xz glibc-2.33.tar.xz.sig mq-notify-use-after-free.patch nptl-db-libpthread-load-order.patch nscd-netgroupcache.patch nss-database-check-reload.patch nss-database-lookup.patch nss-load-chroot.patch rawmemchr-warning.patch select-modify-timeout.patch tst-cpu-features-amx.patch x86-isa-level.patch New: ---- copy-and-spawn-sgid-double-close.patch fcntl-time-bits-64-redirect.patch gaiconf-init-double-free.patch gconv-parseconfdir-memory-leak.patch glibc-2.34.tar.xz glibc-2.34.tar.xz.sig icon-charmap-close-output.patch ldconfig-leak-empty-paths.patch librt-null-pointer.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.4n9LvL/_old 2021-09-17 23:25:39.177220204 +0200 +++ /var/tmp/diff_new_pack.4n9LvL/_new 2021-09-17 23:25:39.181220207 +0200 @@ -1,5 +1,5 @@ # -# spec file for package glibc%{name_suffix} +# spec file # # Copyright (c) 2021 SUSE LLC # @@ -25,6 +25,24 @@ %define flavor @BUILD_FLAVOR@%{nil} +# We need to map from flavor to cross-arch, but as we need the +# result in BuildRequires where the build service evaluates, we +# can use only simple RPM expressions, no lua, no shell, no '{expand:' +# expression :-/ Ideally we'd like to just strip the 'cross_' prefix, +# but we can't. So enumerate the possibilities for now. +%if "%flavor" == "cross-aarch64" +%define cross_arch aarch64 +%endif +%if "%flavor" == "cross-riscv64" +%define cross_arch riscv64 +%endif + +%if 0%{?cross_arch:1} +%define binutils_os %{cross_arch}-suse-linux +# use same sysroot as in binutils.spec +%define sysroot %{_prefix}/%{binutils_os}/sys-root +%endif + %if 0%{?usrmerged} || 0%{?suse_version} >= 1550 %bcond_without usrmerged %else @@ -35,6 +53,7 @@ %define build_main 1 %define build_utils %{with build_all} %define build_testsuite %{with build_all} +%define build_cross 0 %if "%flavor" == "utils" %if %{with ringdisabled} ExclusiveArch: do_not_build @@ -51,6 +70,18 @@ %define build_utils 0 %define build_testsuite 1 %endif +%if 0%{?cross_arch:1} +%define build_main 0 +%define build_utils 0 +%define build_testsuite 0 +%define build_cross 1 +%undefine _build_create_debug +ExcludeArch: %{cross_arch} +%if %{with ringdisabled} +ExclusiveArch: do_not_build +%endif +%endif +%define host_arch %{?cross_arch}%{!?cross_arch:%{_target_cpu}} %if %{build_main} %define name_suffix %{nil} @@ -86,6 +117,10 @@ BuildRequires: libpng-devel BuildRequires: zlib-devel %endif +%if %{build_cross} +BuildRequires: cross-%{cross_arch}-gcc11-bootstrap +BuildRequires: cross-%{cross_arch}-linux-glibc-devel +%endif %if "%flavor" == "i686" ExclusiveArch: i586 i686 BuildArch: i686 @@ -99,7 +134,7 @@ %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{build_utils} && %{without build_all} +%if %{with fast_build} || %{build_cross} || %{build_utils} && %{without build_all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -131,10 +166,10 @@ %define enablekernel 4.15 %endif -Version: 2.33 +Version: 2.34 Release: 0 %if !%{build_snapshot} -%define git_id 9826b03b74 +%define git_id ae37d06c7d %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -246,26 +281,20 @@ ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM nsswitch: return result when nss database is locked (BZ #27343) -Patch1000: nss-database-check-reload.patch -# PATCH-FIX-UPSTREAM nss: Re-enable NSS module loading after chroot (BZ #27389) -Patch1001: nss-load-chroot.patch -# PATCH-FIX-UPSTREAM x86: Set minimum x86-64 level marker (BZ #27318) -Patch1002: x86-isa-level.patch -# PATCH-FIX-UPSTREAM nscd: Fix double free in netgroupcache (CVE-2021-27645, BZ #27462) -Patch1003: nscd-netgroupcache.patch -# PATCH-FIX-UPSTREAM nss: fix nss_database_lookup2's alternate handling (BZ #27416) -Patch1004: nss-database-lookup.patch -# PATCH-FIX-UPSTREAM linux: always update select timeout (BZ #27706) -Patch1005: select-modify-timeout.patch -# PATCH-FIX-UPSTREAM: nptl_db: Support different libpthread/ld.so load orders (BZ #27744) -Patch1006: nptl-db-libpthread-load-order.patch -# PATCH-FIX-UPSTREAM: string: Work around GCC PR 98512 in rawmemchr -Patch1007: rawmemchr-warning.patch -# PATCH-FIX-UPSTREAM: x86: tst-cpu-features-supports.c: Update AMX check -Patch1008: tst-cpu-features-amx.patch -# PATCH-FIX-UPSTREAM: Use __pthread_attr_copy in mq_notify (CVE-2021-33574, BZ #27896) -Patch1009: mq-notify-use-after-free.patch +# PATCH-FIX-UPSTREAM ldconfig: avoid leak on empty paths in config file +Patch1000: ldconfig-leak-empty-paths.patch +# PATCH-FIX-UPSTREAM gconv_parseconfdir: Fix memory leak +Patch1001: gconv-parseconfdir-memory-leak.patch +# PATCH-FIX-UPSTREAM gaiconf_init: Avoid double-free in label and precedence lists +Patch1002: gaiconf-init-double-free.patch +# PATCH-FIX-UPSTREAM copy_and_spawn_sgid: Avoid double calls to close() +Patch1003: copy-and-spawn-sgid-double-close.patch +# PATCH-FIX-UPSTREAM iconv_charmap: Close output file when done +Patch1004: icon-charmap-close-output.patch +# PATCH-FIX-UPSTREAM Linux: Fix fcntl, ioctl, prctl redirects for _TIME_BITS=64 (BZ #28182) +Patch1005: fcntl-time-bits-64-redirect.patch +# PATCH-FIX-UPSTREAM librt: fix NULL pointer dereference (BZ #28213) +Patch1006: librt-null-pointer.patch ### # Patches awaiting upstream approval @@ -453,6 +482,18 @@ %lang_package %endif +%package -n cross-%{cross_arch}-glibc-devel +Summary: Include Files and Libraries Mandatory for Development +License: BSD-3-Clause AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND GPL-2.0-or-later +Group: Development/Libraries/C and C++ +Requires: cross-%{cross_arch}-linux-glibc-devel +BuildArch: noarch +AutoReqProv: off + +%description -n cross-%{cross_arch}-glibc-devel +These libraries are needed to develop programs which use the standard C +library in a cross compilation setting. + %prep %setup -n glibc-%{version} -q -a 4 %patch6 -p1 @@ -474,6 +515,9 @@ %patch304 -p1 %patch306 -p1 +%patch2000 -p1 +%patch2001 -p1 + %patch1000 -p1 %patch1001 -p1 %patch1002 -p1 @@ -481,12 +525,6 @@ %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 -%patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 - -%patch2000 -p1 -%patch2001 -p1 %patch3000 @@ -503,19 +541,22 @@ ulimit -a nice # We do not want configure to figure out the system its building one -# to support a common ground and thus set build and host to the -# target_cpu. +# to support a common ground and thus set build and host ourself. +target="%{host_arch}-suse-linux" +case " %arm " in + *" %{host_arch} "*) target="%{host_arch}-suse-linux-gnueabi" ;; +esac %ifarch %arm -%define target %{_target_cpu}-suse-linux-gnueabi +%define build %{_target_cpu}-suse-linux-gnueabi %else -%define target %{_target_cpu}-suse-linux +%define build %{_target_cpu}-suse-linux %endif # Don't use as-needed, it breaks glibc assumptions # Before enabling it, run the testsuite and verify that it # passes completely export SUSE_ASNEEDED=0 # Adjust glibc version.h -echo "#define CONFHOST \"%{target}\"" >> version.h +echo "#define CONFHOST \"${target}\"" >> version.h echo "#define GITID \"%{git_id}\"" >> version.h # # Default CFLAGS and Compiler @@ -531,6 +572,9 @@ %if "%flavor" == "i686" *i586*) BuildFlags+=" ${opt/i586/i686}" ;; %endif +%if %{build_cross} + -m*) ;; # remove all machine specific options for crosses +%endif *) BuildFlags+=" $opt" ;; esac done @@ -542,6 +586,10 @@ # #now overwrite for some architectures # +%if %{build_cross} +BuildCC=%{cross_arch}-suse-linux-gcc +BuildCCplus=%{cross_arch}-suse-linux-g++ +%else %ifarch sparc64 BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" BuildCC="gcc -m64" @@ -578,6 +626,7 @@ # fails to build otherwise - need to recheck and fix %define enable_stackguard_randomization 0 %endif +%endif # # Build base glibc @@ -589,13 +638,22 @@ %else profile="--disable-profile" %endif + +CONFARGS= +case " %{ix86} x86_64 aarch64 " in + *" %{host_arch} "*) CONFARGS="$CONFARGS --enable-static-pie" ;; +esac + ../configure \ CFLAGS="$BuildFlags" BUILD_CFLAGS="$BuildFlags" \ CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ $profile \ - --build=%{target} --host=%{target} \ + --build=%{build} --host=${target} \ +%if %{build_cross} + --with-headers=%{sysroot}/usr/include \ +%else %ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif @@ -616,20 +674,27 @@ --enable-cet \ %endif %endif + --enable-systemtap \ +%endif + $CONFARGS \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ -%ifarch %{ix86} x86_64 aarch64 - --enable-static-pie \ -%endif --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now \ - --enable-systemtap \ --disable-timezone-tools \ - --disable-crypt + --disable-crypt || \ + { + rc=$?; + echo "------- BEGIN config.log ------"; + %{__cat} config.log; + echo "------- END config.log ------"; + exit $rc; + } + make %{?_smp_mflags} cd .. @@ -742,6 +807,7 @@ ln -s %{buildroot}%{_sbindir} %{buildroot}/sbin %endif +%if !%{build_cross} %ifarch riscv64 mkdir -p %{buildroot}%{_libdir} ln -s . %{buildroot}%{_libdir}/lp64d @@ -750,10 +816,11 @@ ln -s . %{buildroot}%{slibdir}/lp64d %endif %endif +%endif %if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, -# certainly not from libpthread.so.* because it is used by libthread_db to find +# certainly not from libc.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support # should be enabled. These symbols are _not_ exported, and we can't easily # export them retroactively without changing the ABI. So we have to @@ -857,7 +924,7 @@ %if 0%{?rtld_oldname:1} # Provide compatibility link -ln -s %{slibdir}/ld-%{libversion}.so %{buildroot}%{rtlddir}/%{rtld_oldname} +ln -s %{rtlddir}/%{rtld_name} %{buildroot}%{rtlddir}/%{rtld_oldname} %endif # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link @@ -894,22 +961,22 @@ # LSB %ifarch %ix86 -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb.so.3 %endif %ifarch x86_64 -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-x86-64.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-x86-64.so.3 %endif %ifarch ppc -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-ppc32.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-ppc32.so.3 %endif %ifarch ppc64 -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-ppc64.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-ppc64.so.3 %endif %ifarch s390 -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-s390.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-s390.so.3 %endif %ifarch s390x -ln -sf %{slibdir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-s390x.so.3 +ln -sf %{rtlddir}/%{rtld_name} $RPM_BUILD_ROOT%{slibdir}/ld-lsb-s390x.so.3 %endif %else @@ -920,10 +987,7 @@ subdirs='malloc debug elf' cd manpages; make install_root=%{buildroot} install; cd .. # Remove unwanted files -rm -f %{buildroot}%{slibdir}/ld*.so* %{buildroot}%{slibdir}/lib[!mp]* -%if "%{rtlddir}" != "%{slibdir}" -rm -f %{buildroot}%{rtlddir}/ld*.so* -%endif +rm -f %{buildroot}%{rtlddir}/ld*.so* %{buildroot}%{slibdir}/lib[!mp]* %if "%{_libdir}" != "%{slibdir}" rm -f %{buildroot}%{_libdir}/lib* %else @@ -941,6 +1005,28 @@ %endif +%if %{build_cross} +# See above +export STRIP_KEEP_SYMTAB=*.so* +export NO_BRP_STRIP_DEBUG=true +make %{?_smp_mflags} install_root=%{buildroot}/%{sysroot} install -C cc-base +rm -rf %{buildroot}/%{sysroot}/%{_libdir}/audit +rm -rf %{buildroot}/%{sysroot}/%{_libdir}/gconv +rm -rf %{buildroot}/%{sysroot}/%{_infodir} +rm -rf %{buildroot}/%{sysroot}/%{_prefix}/share/i18n +rm -rf %{buildroot}/%{sysroot}/%{_datadir}/locale/*/ +rm -f %{buildroot}/%{sysroot}/%{_bindir}/makedb +rm -rf %{buildroot}/%{sysroot}/var/lib +rm -f %{buildroot}/%{sysroot}/%{_sbindir}/nscd + +# Some programs look for <prefix>/lib/../$subdir where subdir is +# for instance "lib64". For this path lookup to succeed we need the +# ../lib subdir, even if it's empty, so enforce its existence. +mkdir -p %{buildroot}/%{sysroot}/lib +mkdir -p %{buildroot}/%{sysroot}/%{_prefix}/lib + +%endif + %endif %if %{with usrmerged} @@ -1063,11 +1149,7 @@ %doc %{_mandir}/man1/getconf.1.gz %doc %{_mandir}/man5/* -%{slibdir}/ld-%{libversion}.so -%{slibdir}/%{rtld_name} -%if "%{rtlddir}" != "%{slibdir}" %{rtlddir}/%{rtld_name} -%endif %if 0%{?rtld_oldname:1} %{rtlddir}/%{rtld_oldname} %endif @@ -1083,42 +1165,26 @@ %endif %endif -%{slibdir}/libBrokenLocale-%{libversion}.so %{slibdir}/libBrokenLocale.so.1 %{slibdir}/libSegFault.so -%{slibdir}/libanl-%{libversion}.so %{slibdir}/libanl.so.1 -%{slibdir}/libc-%{libversion}.so %{slibdir}/libc.so.6* -%{slibdir}/libdl-%{libversion}.so +%{slibdir}/libc_malloc_debug.so.0 %{slibdir}/libdl.so.2* -%{slibdir}/libm-%{libversion}.so %{slibdir}/libm.so.6* %ifarch x86_64 -%{slibdir}/libmvec-%{libversion}.so %{slibdir}/libmvec.so.1 %endif -%{slibdir}/libnsl-%{libversion}.so %{slibdir}/libnsl.so.1 -%{slibdir}/libnss_compat-%{libversion}.so %{slibdir}/libnss_compat.so.2 -%{slibdir}/libnss_db-%{libversion}.so %{slibdir}/libnss_db.so.2 -%{slibdir}/libnss_dns-%{libversion}.so %{slibdir}/libnss_dns.so.2 -%{slibdir}/libnss_files-%{libversion}.so %{slibdir}/libnss_files.so.2 -%{slibdir}/libnss_hesiod-%{libversion}.so %{slibdir}/libnss_hesiod.so.2 -%{slibdir}/libpthread-%{libversion}.so %{slibdir}/libpthread.so.0 -%{slibdir}/libresolv-%{libversion}.so %{slibdir}/libresolv.so.2 -%{slibdir}/librt-%{libversion}.so %{slibdir}/librt.so.1 -%{slibdir}/libthread_db-1.0.so %{slibdir}/libthread_db.so.1 -%{slibdir}/libutil-%{libversion}.so %{slibdir}/libutil.so.1 %dir %attr(0700,root,root) /var/cache/ldconfig %{rootsbindir}/ldconfig @@ -1147,6 +1213,7 @@ %dir %{_libdir}/gconv %{_libdir}/gconv/*.so %{_libdir}/gconv/gconv-modules +%{_libdir}/gconv/gconv-modules.d %attr(0644,root,root) %verify(not md5 size mtime) %ghost %{_libdir}/gconv/gconv-modules.cache %files locale @@ -1170,45 +1237,40 @@ %{_libdir}/libBrokenLocale.so %{_libdir}/libanl.so %{_libdir}/libc.so -%{_libdir}/libdl.so +%{_libdir}/libc_malloc_debug.so %{_libdir}/libm.so %ifarch x86_64 %{_libdir}/libmvec.so %endif %{_libdir}/libnss_compat.so %{_libdir}/libnss_db.so -%{_libdir}/libnss_dns.so -%{_libdir}/libnss_files.so %{_libdir}/libnss_hesiod.so -%{_libdir}/libpthread.so %{_libdir}/libresolv.so -%{_libdir}/librt.so %{_libdir}/libthread_db.so -%{_libdir}/libutil.so # These static libraries are needed even for shared builds %{_libdir}/libc_nonshared.a +%{_libdir}/libdl.a %{_libdir}/libg.a %ifarch ppc ppc64 ppc64le s390 s390x sparc sparcv8 sparcv9 sparcv9v # This is not built on sparc64. %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libmcheck.a +%{_libdir}/libpthread.a +%{_libdir}/librt.a +%{_libdir}/libutil.a %files devel-static %defattr(-,root,root) %{_libdir}/libBrokenLocale.a %{_libdir}/libanl.a %{_libdir}/libc.a -%{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 %{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif -%{_libdir}/libpthread.a %{_libdir}/libresolv.a -%{_libdir}/librt.a -%{_libdir}/libutil.a %ifnarch i686 %files info @@ -1275,6 +1337,13 @@ %endif +%if %{build_cross} +%files -n cross-%{cross_arch}-glibc-devel +%defattr(-,root,root) +%license COPYING COPYING.LIB +%{sysroot} +%endif + %if %{build_utils} %files -n glibc-utils %defattr(-,root,root) ++++++ _multibuild ++++++ --- /var/tmp/diff_new_pack.4n9LvL/_old 2021-09-17 23:25:39.237220257 +0200 +++ /var/tmp/diff_new_pack.4n9LvL/_new 2021-09-17 23:25:39.237220257 +0200 @@ -2,4 +2,6 @@ <package>i686</package> <package>utils</package> <package>testsuite</package> + <package>cross-aarch64</package> + <package>cross-riscv64</package> </multibuild> ++++++ copy-and-spawn-sgid-double-close.patch ++++++ >From 45caed9d67a00af917d8b5b88d4b5eb1225b7aef Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <[email protected]> Date: Tue, 3 Aug 2021 21:10:53 +0530 Subject: [PATCH] copy_and_spawn_sgid: Avoid double calls to close() If close() on infd and outfd succeeded, reset the fd numbers so that we don't attempt to close them again. Reviewed-by: Arjun Shankar <[email protected]> --- support/support_capture_subprocess.c | 1 + 1 file changed, 1 insertion(+) diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c index 27bfd19c93..0bacf6dbc2 100644 --- a/support/support_capture_subprocess.c +++ b/support/support_capture_subprocess.c @@ -170,6 +170,7 @@ copy_and_spawn_sgid (char *child_id, gid_t gid) support_subprogram because we only want the program exit status, not the contents. */ ret = 0; + infd = outfd = -1; char * const args[] = {execname, child_id, NULL}; -- 2.32.0 ++++++ fcntl-time-bits-64-redirect.patch ++++++ >From c87fcacc50505d550f1bb038382bcc7ea73a5926 Mon Sep 17 00:00:00 2001 From: Florian Weimer <[email protected]> Date: Fri, 6 Aug 2021 09:51:38 +0200 Subject: [PATCH] Linux: Fix fcntl, ioctl, prctl redirects for _TIME_BITS=64 (bug 28182) __REDIRECT and __THROW are not compatible with C++ due to the ordering of the __asm__ alias and the throw specifier. __REDIRECT_NTH has to be used instead. Fixes commit 8a40aff86ba5f64a3a84883e539cb67b ("io: Add time64 alias for fcntl"), commit 82c395d91ea4f69120d453aeec398e30 ("misc: Add time64 alias for ioctl"), commit b39ffab860cd743a82c91946619f1b8158 ("Linux: Add time64 alias for prctl"). Reviewed-by: Carlos O'Donell <[email protected]> --- io/fcntl.h | 8 ++++---- misc/sys/ioctl.h | 4 ++-- sysdeps/unix/sysv/linux/sys/prctl.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/io/fcntl.h b/io/fcntl.h index 8917a73b42..1c96f98f4d 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -187,10 +187,10 @@ extern int fcntl64 (int __fd, int __cmd, ...); # endif #else /* __USE_TIME_BITS64 */ # ifdef __REDIRECT -extern int __REDIRECT (fcntl, (int __fd, int __request, ...), - __fcntl_time64) __THROW; -extern int __REDIRECT (fcntl64, (int __fd, int __request, ...), - __fcntl_time64) __THROW; +extern int __REDIRECT_NTH (fcntl, (int __fd, int __request, ...), + __fcntl_time64); +extern int __REDIRECT_NTH (fcntl64, (int __fd, int __request, ...), + __fcntl_time64); # else extern int __fcntl_time64 (int __fd, int __request, ...) __THROW; # define fcntl64 __fcntl_time64 diff --git a/misc/sys/ioctl.h b/misc/sys/ioctl.h index 6884d9925f..9945c1e918 100644 --- a/misc/sys/ioctl.h +++ b/misc/sys/ioctl.h @@ -42,8 +42,8 @@ __BEGIN_DECLS extern int ioctl (int __fd, unsigned long int __request, ...) __THROW; #else # ifdef __REDIRECT -extern int __REDIRECT (ioctl, (int __fd, unsigned long int __request, ...), - __ioctl_time64) __THROW; +extern int __REDIRECT_NTH (ioctl, (int __fd, unsigned long int __request, ...), + __ioctl_time64); # else extern int __ioctl_time64 (int __fd, unsigned long int __request, ...) __THROW; # define ioctl __ioctl_time64 diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h index db88938b3a..f0e0d2f27f 100644 --- a/sysdeps/unix/sysv/linux/sys/prctl.h +++ b/sysdeps/unix/sysv/linux/sys/prctl.h @@ -42,7 +42,7 @@ __BEGIN_DECLS extern int prctl (int __option, ...) __THROW; #else # ifdef __REDIRECT -extern int __REDIRECT (prctl, (int __option, ...), __prctl_time64) __THROW; +extern int __REDIRECT_NTH (prctl, (int __option, ...), __prctl_time64); # else extern int __prctl_time64 (int __option,d ...) __THROW; # define ioctl __prctl_time64 -- 2.32.0 ++++++ gaiconf-init-double-free.patch ++++++ >From 77a34079d8f3d63b61543bf3af93043f8674e4c4 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <[email protected]> Date: Tue, 3 Aug 2021 21:11:03 +0530 Subject: [PATCH] gaiconf_init: Avoid double-free in label and precedence lists labellist and precedencelist could get freed a second time if there are allocation failures, so set them to NULL to avoid a double-free. Reviewed-by: Arjun Shankar <[email protected]> --- sysdeps/posix/getaddrinfo.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 838a68f022..43dfc6739e 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -2008,6 +2008,7 @@ gaiconf_init (void) l = l->next; } free_prefixlist (labellist); + labellist = NULL; /* Sort the entries so that the most specific ones are at the beginning. */ @@ -2046,6 +2047,7 @@ gaiconf_init (void) l = l->next; } free_prefixlist (precedencelist); + precedencelist = NULL; /* Sort the entries so that the most specific ones are at the beginning. */ -- 2.32.0 ++++++ gconv-parseconfdir-memory-leak.patch ++++++ >From 5f9b78fe35d08739b6da1e5b356786d41116c108 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <[email protected]> Date: Tue, 3 Aug 2021 21:10:20 +0530 Subject: [PATCH] gconv_parseconfdir: Fix memory leak The allocated `conf` would leak if we have to skip over the file due to the underlying filesystem not supporting dt_type. Reviewed-by: Arjun Shankar <[email protected]> --- iconv/gconv_parseconfdir.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/iconv/gconv_parseconfdir.h b/iconv/gconv_parseconfdir.h index a4153e54c6..2f062689ec 100644 --- a/iconv/gconv_parseconfdir.h +++ b/iconv/gconv_parseconfdir.h @@ -153,12 +153,11 @@ gconv_parseconfdir (const char *dir, size_t dir_len) struct stat64 st; if (asprintf (&conf, "%s/%s", buf, ent->d_name) < 0) continue; - if (ent->d_type == DT_UNKNOWN - && (lstat64 (conf, &st) == -1 - || !S_ISREG (st.st_mode))) - continue; - found |= read_conf_file (conf, dir, dir_len); + if (ent->d_type != DT_UNKNOWN + || (lstat64 (conf, &st) != -1 && S_ISREG (st.st_mode))) + found |= read_conf_file (conf, dir, dir_len); + free (conf); } } -- 2.32.0 ++++++ glibc-2.33.tar.xz -> glibc-2.34.tar.xz ++++++ /work/SRC/openSUSE:Factory/glibc/glibc-2.33.tar.xz /work/SRC/openSUSE:Factory/.glibc.new.1899/glibc-2.34.tar.xz differ: char 27, line 2 ++++++ glibc.keyring ++++++ --- /var/tmp/diff_new_pack.4n9LvL/_old 2021-09-17 23:25:39.397220399 +0200 +++ /var/tmp/diff_new_pack.4n9LvL/_new 2021-09-17 23:25:39.397220399 +0200 @@ -1,3 +1,8 @@ +Member GPG keyring of libc group. + +Note that this keyring is not intended for checking releases of that group. +Use Group Release Keyring instead. + GPG keys of Andreas Schwab <schwab> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 ++++++ glibc.rpmlintrc ++++++ --- /var/tmp/diff_new_pack.4n9LvL/_old 2021-09-17 23:25:39.425220424 +0200 +++ /var/tmp/diff_new_pack.4n9LvL/_new 2021-09-17 23:25:39.425220424 +0200 @@ -18,3 +18,9 @@ # with glibc, therefore do not warn about them addFilter("glibc.*no-manual-page-for-binary (getent|iconv|ldd|ldconfig|locale)") addFilter("nscd.*no-manual-page-for-binary nscd") +# the cross..-devel packages contain everything, in non-std paths, so no +# ldconfig is wanted or needed (for sle-15 based trees), and we accept +# the *.so symlinks, and deliver (target) binaries +addFilter("cross.*library-without-ldconfig-post.*") +addFilter("cross.*non-devel-file-in-devel-package.*") +addFilter("cross.*arch-independent-package-contains-binary-or-object.*") ++++++ icon-charmap-close-output.patch ++++++ >From 1e0e6d656db9dfa12ef7eb67976385d3deb0d4ff Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <[email protected]> Date: Tue, 3 Aug 2021 21:10:29 +0530 Subject: [PATCH] iconv_charmap: Close output file when done Reviewed-by: Arjun Shankar <[email protected]> --- iconv/iconv_charmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c index e2d53fee3c..a8b6b56124 100644 --- a/iconv/iconv_charmap.c +++ b/iconv/iconv_charmap.c @@ -234,6 +234,8 @@ charmap_conversion (const char *from_code, struct charmap_t *from_charmap, while (++remaining < argc); /* All done. */ + if (output != stdout) + fclose (output); free_table (cvtbl); return status; } -- 2.32.0 ++++++ ldconfig-concurrency.patch ++++++ --- /var/tmp/diff_new_pack.4n9LvL/_old 2021-09-17 23:25:39.445220443 +0200 +++ /var/tmp/diff_new_pack.4n9LvL/_new 2021-09-17 23:25:39.449220446 +0200 @@ -1,11 +1,11 @@ * elf/cache.c (save_cache): Use unique temporary name. (save_aux_cache): Likewise. -Index: glibc-2.29/elf/cache.c +Index: glibc-2.34/elf/cache.c =================================================================== ---- glibc-2.29.orig/elf/cache.c -+++ glibc-2.29/elf/cache.c -@@ -427,12 +427,12 @@ save_cache (const char *cache_name) +--- glibc-2.34.orig/elf/cache.c ++++ glibc-2.34/elf/cache.c +@@ -716,12 +716,12 @@ save_cache (const char *cache_name) /* Write out the cache. */ /* Write cache first to a temporary file and rename it later. */ @@ -22,15 +22,7 @@ if (fd < 0) error (EXIT_FAILURE, errno, _("Can't create temporary cache file %s"), temp_name); -@@ -481,6 +481,7 @@ save_cache (const char *cache_name) - free (file_entries_new); - free (file_entries); - free (strings_finalized.strings); -+ free (temp_name); - - while (entries) - { -@@ -804,8 +805,9 @@ save_aux_cache (const char *aux_cache_na +@@ -1128,8 +1128,9 @@ save_aux_cache (const char *aux_cache_na /* Write out auxiliary cache file. */ /* Write auxiliary cache first to a temporary file and rename it later. */ @@ -42,7 +34,7 @@ /* Check that directory exists and create if needed. */ char *dir = strdupa (aux_cache_name); -@@ -819,8 +821,7 @@ save_aux_cache (const char *aux_cache_na +@@ -1143,8 +1144,7 @@ save_aux_cache (const char *aux_cache_na } /* Create file. */ @@ -52,7 +44,7 @@ if (fd < 0) goto out_fail; -@@ -840,5 +841,6 @@ save_aux_cache (const char *aux_cache_na +@@ -1167,5 +1167,6 @@ save_aux_cache (const char *aux_cache_na out_fail: /* Free allocated memory. */ free (temp_name); ++++++ ldconfig-leak-empty-paths.patch ++++++ >From b0234d79e7d82475d1666f25326ec045c045b3ed Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar <[email protected]> Date: Tue, 3 Aug 2021 21:10:10 +0530 Subject: [PATCH] ldconfig: avoid leak on empty paths in config file Reviewed-by: Arjun Shankar <[email protected]> --- elf/ldconfig.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 1037e8d0cf..b8893637f8 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -503,7 +503,11 @@ add_dir_1 (const char *line, const char *from_file, int from_line) entry->path[--i] = '\0'; if (i == 0) - return; + { + free (entry->path); + free (entry); + return; + } char *path = entry->path; if (opt_chroot != NULL) -- 2.32.0 ++++++ librt-null-pointer.patch ++++++ >From b805aebd42364fe696e417808a700fdb9800c9e8 Mon Sep 17 00:00:00 2001 From: Nikita Popov <[email protected]> Date: Mon, 9 Aug 2021 20:17:34 +0530 Subject: [PATCH] librt: fix NULL pointer dereference (bug 28213) Helper thread frees copied attribute on NOTIFY_REMOVED message received from the OS kernel. Unfortunately, it fails to check whether copied attribute actually exists (data.attr != NULL). This worked earlier because free() checks passed pointer before actually attempting to release corresponding memory. But __pthread_attr_destroy assumes pointer is not NULL. So passing NULL pointer to __pthread_attr_destroy will result in segmentation fault. This scenario is possible if notification->sigev_notify_attributes == NULL (which means default thread attributes should be used). Signed-off-by: Nikita Popov <[email protected]> Reviewed-by: Siddhesh Poyarekar <[email protected]> --- sysdeps/unix/sysv/linux/mq_notify.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c index 9799dcdaa4..eccae2e4c6 100644 --- a/sysdeps/unix/sysv/linux/mq_notify.c +++ b/sysdeps/unix/sysv/linux/mq_notify.c @@ -131,7 +131,7 @@ helper_thread (void *arg) to wait until it is done with it. */ (void) __pthread_barrier_wait (¬ify_barrier); } - else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED) + else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED && data.attr != NULL) { /* The only state we keep is the copy of the thread attributes. */ __pthread_attr_destroy (data.attr); -- 2.32.0
