Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Maytha8/glibc
  • vimerbf-guest/glibc
  • schopin/glibc
  • yumeyao/glibc
  • carlespina/po-debconf-manager-glibc
  • Claudia/glibc-widevine
  • andrewsh/glibc
  • jscott/glibc
  • bluca/glibc
  • gioele/glibc
  • rouca/glibc
  • sven/glibc
  • josch/glibc
  • cjwatson/glibc
  • fw/glibc
  • rbalint/glibc
  • bsd-team/glibc-packaging
  • glibc-team/glibc
  • bigon/glibc
  • ahrex-guest/glibc
  • friki/glibc
21 results
Show changes
Commits on Source (28)
Showing
with 10957 additions and 5094 deletions
glibc (2.38-15) UNRELEASED; urgency=medium
glibc (2.39-4) unstable; urgency=medium
 
[ Aurelien Jarno ]
* debian/patches/git-updates.diff: update from upstream stable branch:
- debian/patches/any/submitted-static-copysignf128.diff: upstreamed.
- debian/patches/any/submitted-static-fmod-fmodf.diff: upstreamed.
- debian/patches/any/submitted-static-frexpf128.diff: upstreamed.
- debian/patches/any/submitted-static-isnanf128.diff: upstreamed.
- debian/patches/any/submitted-static-modf128.diff: upstreamed.
- debian/patches/any/submitted-static-exp10.diff: upstreamed.
[ Samuel Thibault ]
* debian/testsuite-xfail-debian.mk: Update for upcoming 2.40.
* debian/debhelper.in/libc-udeb.install.hurd-amd64: Fix missing libhurduser.
* debian/debhelper.in/libc-udeb.install.hurd-i386: Fix missing libhurduser.
* debian/patches/hurd-i386/git-intr-msg-clobber.diff: Fix restoring message to be retried.
* debian/patches/hurd-i386/local-intr-msg-clobber.diff: Fix message-retry overwrite.
 
-- Samuel Thibault <sthibault@debian.org> Sun, 07 Jul 2024 18:52:16 +0200
-- Aurelien Jarno <aurel32@debian.org> Mon, 15 Jul 2024 21:20:54 +0200
glibc (2.39-3.1) experimental; urgency=medium
* Non-maintainer upload acked by Aurelien Jarno.
* Same diff as the 2.38-12.1 upload to unstable.
* Move all aliased files including the dynamic loader to /usr. (DEP17,
Closes: #1061248)
+ Install a protective diversion for the dynamic loader to avoid accidental
deletion (DEP17 P1 M8).
+ Manage the dynamic loader symlink via maintainer scripts and triggers
in multilib packages to avoid interaction of Replaces and /usr-move.
+ Avoid a versioned dependency on base-files.
- Continue managing toplevel multilib aliasing links for the time being.
- Install protective diversions for aliasing symlinks that base-files
would also install in case libc is upgraded first. (DEP17 P9 M4)
-- Helmut Grohne <helmut@subdivi.de> Thu, 06 Jun 2024 09:18:03 +0200
 
glibc (2.38-14) unstable; urgency=medium
 
......@@ -41,7 +69,75 @@ glibc (2.38-12.1) unstable; urgency=medium
- Install protective diversions for aliasing symlinks that base-files
would also install in case libc is upgraded first. (DEP17 P9 M4)
 
-- Helmut Grohne <helmut@subdivi.de> Wed, 05 Jun 2024 17:31:36 +0200
-- Helmut Grohne <helmut@subdivi.de> Thu, 06 Jun 2024 09:18:03 +0200
glibc (2.39-3) experimental; urgency=medium
[ Aurelien Jarno ]
* debian/patches/arm64/local-remove-aarch64-bits-math-vector-h.diff: drop,
buggy packages should be fixed instead.
* debian/patches/git-updates.diff: update from upstream stable branch.
-- Aurelien Jarno <aurel32@debian.org> Sat, 01 Jun 2024 23:26:50 +0200
glibc (2.39-2) experimental; urgency=medium
[ Aurelien Jarno ]
* debian/patches/any/submitted-static-exp10.diff: add proposed patch to fix
missing exp10 math function in libm.a on i386 and m68k.
* debian/control.in/libc, debian/rules.d/control.mk, debian/sysdeps/ia64.mk:
remove support for ia64, it is not supported upstream anymore.
* debian/patches/git-updates.diff: update from upstream stable branch.
-- Aurelien Jarno <aurel32@debian.org> Sun, 12 May 2024 00:54:31 +0200
glibc (2.39-1) experimental; urgency=medium
[ Aurelien Jarno ]
* New upstream release.
- Add support for fchmodat with flags != 0, using the fchmodat2 syscall.
Closes: #1041415.
- debian/symbols.wildcard: add 2.39.
- debian/patches/git-updates.diff: update from upstream stable branch.
- debian/patches/localedata/sort-UTF8-first.diff: rebased.
- debian/patches/localedata/locale-ku_TR.diff: rebased.
- debian/patches/localedata/locale-en_DK.diff: rebased.
- debian/patches/localedata/locale-zh_TW.diff: rebased.
- debian/patches/localedata/submitted-es_MX-decimal_point.diff.
- debian/patches/hurd-i386/git-realpath_NULL.diff: upstreamed.
- debian/patches/hurd-i386/git-tst-realpath-toolong.diff: upstreamed.
- debian/patches/hurd-i386/git-hidden_chk.diff: upstreamed.
- debian/patches/hurd-i386/git-glob_dirent.diff: upstreamed.
- debian/patches/hurd-i386/git-powerpc-longjmp.diff: upstreamed.
- debian/patches/hurd-i386/git-jemalloc.diff: upstreamed.
- debian/patches/hurd-i386/git-jemalloc2.diff: upstreamed.
- debian/patches/hurd-i386/git-error_t.diff: upstreamed.
- debian/patches/hurd-i386/git-tls_dtors.diff: upstreamed.
- debian/patches/hurd-i386/git-main_stack.diff: upstreamed.
- debian/patches/hurd-i386/git-ucontext.diff: upstreamed.
- debian/patches/hurd-i386/git-clean_ports.diff: upstreamed.
- debian/patches/hurd-i386/git-statfs_f_ffree.patch: upstreamed.
- debian/patches/hurd-i386/git-send_interrupt.diff: upstreamed.
- debian/patches/hurd-i386/git-exec-intr.diff: upstreamed.
- debian/patches/hurd-i386/git-ioctls-bsd.diff: upstreamed.
- debian/patches/hurd-i386/git-dtable_reauth.diff: upstreamed.
- debian/patches/hurd-i386/git-64bit-abi.diff: upstreamed.
- debian/patches/i386/unsubmitted-quiet-ldconfig.diff: rebased.
- debian/patches/i386/local-setcontext-revert-eax-ecx-edx.patch: rebased.
- debian/patches/riscv64/git-risc-v-add-support-for-dl_runtime_profile.diff:
upstreamed.
- debian/patches/all/local-remove-manual.diff: rebased.
- debian/patches/any/git-c-utf-8-language.diff: upstreamed.
- debian/patches/any/local-qsort-memory-corruption.patch: removed, obsolete.
* debian/rules.d/tarball.mk: make tarball creation reproducible.
[ Samuel Thibault ]
* debian/patches/hurd-i386/local-no-bootstrap-fs-access.2.diff: Now useless.
* debian/patches/hurd-i386/local-fix-nss.diff: Refresh.
* debian/patches/hurd-i386/submitted-net.diff: Refresh.
* debian/testsuite-xfail-debian.mk: Update hurd results.
-- Aurelien Jarno <aurel32@debian.org> Sat, 04 May 2024 00:35:25 +0200
 
glibc (2.38-12) unstable; urgency=medium
 
......
......@@ -11,7 +11,7 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file,
g++-13-for-host, g++-13-multilib [amd64 i386 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
python3:native,
libidn2-0 (>= 2.0.5~) <!nocheck>,
libc-bin (>= 2.38) <cross>,
libc-bin (>= 2.39) <cross>,
libgd-dev <!stage1 !stage2>,
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Rules-Requires-Root: no
......@@ -49,7 +49,7 @@ Priority: optional
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: manpages, manpages-dev
Suggests: libc-devtools (>> 2.38)
Suggests: libc-devtools (>> 2.39)
Build-Profiles: <!stage1>
Description: GNU C Library: Development binaries
This package contains utility programs related to the GNU C Library
......@@ -115,7 +115,7 @@ Package: locales
Architecture: all
Section: localization
Priority: standard
Depends: libc-bin (>> 2.38), libc-l10n (>> 2.38), ${misc:Depends}, debconf | debconf-2.0
Depends: libc-bin (>> 2.39), libc-l10n (>> 2.39), ${misc:Depends}, debconf | debconf-2.0
Build-Profiles: <!stage1>
Description: GNU C Library: National Language (locale) data [support]
Machine-readable data files, shared objects and programs used by the
......@@ -132,7 +132,7 @@ Architecture: any
Section: localization
Priority: optional
Multi-Arch: foreign
Depends: libc-l10n (>> 2.38), ${misc:Depends}
Depends: libc-l10n (>> 2.39), ${misc:Depends}
Build-Profiles: <!stage1>
Description: GNU C Library: Precompiled locale data
This package contains the precompiled locale data for all supported locales.
......@@ -164,7 +164,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.38), locales (<< 2.38), locales-all (<< 2.38), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1), sysvinit (<< 3.09-2)
Breaks: nscd (<< 2.39), locales (<< 2.39), locales-all (<< 2.39), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit (<< 3.09-2~), base-files (<< 13.3~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......@@ -192,7 +192,7 @@ Multi-Arch: same
Depends: libc6 (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], gnumach-dev [hurd-any], hurd-dev (>= 20080607-3) [hurd-any] | hurd-headers-dev [hurd-any], ${libcrypt-dev:Depends}, ${rpcsvc-proto:Depends}
Replaces: hurd-dev (<< 20120408-3) [hurd-any], libc6 (<= 2.32-1)
Suggests: glibc-doc, manpages-dev
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha ia64 hurd-any]
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha hurd-any]
Breaks: check (<< 0.15.2-2+b1) [s390x], ${libc-dev:Breaks}, libassimp-dev (<= 5.2.4~ds0-1), libbson-dev (<= 1.22.0-1), libdeal.ii-dev (<= 9.4.0-1), libdolfin-dev-common (<= 2019.2.0~git20220407.d29e24d-5), libeckit-dev (<= 1.20.0-1), libfclib-dev (<= 3.1.0+dfsg-2), libfltk1.3-dev (<= 1.3.8-4+b1), libinsighttoolkit4-dev (<= 4.13.3withdata-dfsg2-3+b1), libinsighttoolkit5-dev (<= 5.2.1-5+b1), libismrmrd-dev (<= 1.8.0-2), liblog4cplus-dev (<= 2.0.7-1), libmgl-dev (<= 8.0.1-2), libmimalloc2.0 (<= 2.0.6+ds-1), libminc-dev (<= 2.4.03-5), libmrpt-ros1bridge-dev (<= 1:2.4.9+ds-4+b2), libnetcdf-dev (<= 1:4.9.0-3), libnetcdf-mpi-dev (<= 1:4.9.0-1), libnetcdf-pnetcdf-dev (<= 1:4.9.0-1), libns3-dev (<= 3.36.1+dfsg-4), libopenms-dev (<= 2.6.0+cleaned1-3+b1), libtrilinos-amesos2-dev (<= 13.2.0-3), libtrilinos-amesos-dev (<= 13.2.0-3), libtrilinos-anasazi-dev (<= 13.2.0-3), libtrilinos-aztecoo-dev (<= 13.2.0-3), libtrilinos-belos-dev (<= 13.2.0-3), libtrilinos-epetra-dev (<= 13.2.0-3), libtrilinos-epetraext-dev (<= 13.2.0-3), libtrilinos-galeri-dev (<= 13.2.0-3), libtrilinos-ifpack2-dev (<= 13.2.0-3), libtrilinos-ifpack-dev (<= 13.2.0-3), libtrilinos-intrepid2-dev (<= 13.2.0-3), libtrilinos-intrepid-dev (<= 13.2.0-3), libtrilinos-isorropia-dev (<= 13.2.0-3), libtrilinos-kokkos-dev (<= 13.2.0-3), libtrilinos-kokkos-kernels-dev (<= 13.2.0-3), libtrilinos-komplex-dev (<= 13.2.0-3), libtrilinos-ml-dev (<= 13.2.0-3), libtrilinos-moertel-dev (<= 13.2.0-3), libtrilinos-muelu-dev (<= 13.2.0-3), libtrilinos-nox-dev (<= 13.2.0-3), libtrilinos-phalanx-dev (<= 13.2.0-3), libtrilinos-pike-dev (<= 13.2.0-3), libtrilinos-piro-dev (<= 13.2.0-3), libtrilinos-pliris-dev (<= 13.2.0-3), libtrilinos-rol-dev (<= 13.2.0-3), libtrilinos-rtop-dev (<= 13.2.0-3), libtrilinos-rythmos-dev (<= 13.2.0-3), libtrilinos-sacado-dev (<= 13.2.0-3), libtrilinos-shylu-dev (<= 13.2.0-3), libtrilinos-stokhos-dev (<= 13.2.0-3), libtrilinos-stratimikos-dev (<= 13.2.0-3), libtrilinos-teko-dev (<= 13.2.0-3), libtrilinos-teuchos-dev (<= 13.2.0-3), libtrilinos-thyra-dev (<= 13.2.0-3), libtrilinos-tpetra-dev (<= 13.2.0-3), libtrilinos-trilinoscouplings-dev (<= 13.2.0-3), libtrilinos-triutils-dev (<= 13.2.0-3), libtrilinos-xpetra-dev (<= 13.2.0-3), libtrilinos-zoltan2-dev (<= 13.2.0-3), libvisp-dev (<= 3.5.0-2+b1), libvotca-dev (<= 2022-3), libvtk6-dev (<= 6.3.0+dfsg2-8.1+b1), libvtk7-dev (<= 7.1.1+dfsg2-10.2), igblast (<= 1.19.0-1), libasyncns-dev (<= 0.8-6+b2), libatm1-dev (<= 1:2.5.1-4), libaws20-dev (<= 20.2-2+b1), libboinc-app-dev (<= 7.20.2+dfsg-1), libcups2-dev (<= 2.4.2-1), libdkim-dev (<= 1:1.0.21-4+b2), libghc-resolv-dev (<= 0.1.2.0-3), libghc-resolv-prof (<= 0.1.2.0-3), libglib2.0-dev (<= 2.72.3-1), libgloox-dev (<= 1.0.24-2+b1), libhesiod-dev (<= 3.2.1-3.1+b1), libinfinity-0.7-dev (<= 0.7.2-1+b1), libldap-dev (<= 2.5.12+dfsg-2), libloudmouth1-dev (<= 1.5.4-1), libmongoc-dev (<= 1.22.1-1), libmysqlclient-dev (<= 8.0.29-1), libnfsidmap-dev (<= 1:2.6.1-2), libola-dev (<= 0.10.8.nojsmin-2), libopenafs-dev (<= 1.8.8.1-3), libopendkim-dev (<= 2.11.0~beta2-7), libopendmarc-dev (<= 1.4.2-1), libopenzwave1.6-dev (<= 1.6.1914+ds-1), libpg-query-dev (<= 13-2.1.2-2), librbl-dev (<= 2.11.0~beta2-7), libre-dev (<= 1.1.0-1+b1), libshishi-dev (<= 1.0.2-11), libslurm-dev (<= 21.08.8.2-1), libsocksd0-dev (<= 1.4.2+dfsg-7+b4), libspf2-dev (<= 1.2.10-7.1+b1), libstrophe-dev (<= 0.12.1-2), libtaningia-dev (<= 0.2.2-2+b1), libvbr-dev (<= 2.11.0~beta2-7), open-vm-tools-dev (<= 2:12.0.5-2), pidgin-librvp (<= 0.9.7cvs-3), proftpd-dev (<= 1.3.7d+dfsg-2), slurm-wlm-basic-plugins-dev (<= 21.08.8.2-1), catch (<< 1.12.2-0.1), heimdal-multidev (<= 7.7.0+dfsg-4), binutils (<< 2.38)
Conflicts: libc6.1-dev, libc0.3-dev,
Description: GNU C Library: Development Libraries and Header Files
......@@ -227,7 +227,7 @@ Description: GNU C Library: Shared libraries - udeb
installer. Do not install it on a normal system.
Package: libc6.1
Architecture: alpha ia64
Architecture: alpha
Section: libs
Priority: optional
Multi-Arch: same
......@@ -236,7 +236,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.38), locales (<< 2.38), locales-all (<< 2.38), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1), sysvinit (<< 3.09-2)
Breaks: nscd (<< 2.39), locales (<< 2.39), locales-all (<< 2.39), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit (<< 3.09-2~), base-files (<< 13.3~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......@@ -257,14 +257,14 @@ Description: GNU C Library: Shared libraries
and the standard math library, as well as many others.
Package: libc6.1-dev
Architecture: alpha ia64
Architecture: alpha
Section: libdevel
Priority: optional
Multi-Arch: same
Depends: libc6.1 (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], gnumach-dev [hurd-any], hurd-dev (>= 20080607-3) [hurd-any] | hurd-headers-dev [hurd-any], ${libcrypt-dev:Depends}, ${rpcsvc-proto:Depends}
Replaces: hurd-dev (<< 20120408-3) [hurd-any], libc6.1 (<= 2.32-1)
Suggests: glibc-doc, manpages-dev
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha ia64 hurd-any]
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha hurd-any]
Breaks: check (<< 0.15.2-2+b1) [s390x], ${libc-dev:Breaks}, libassimp-dev (<= 5.2.4~ds0-1), libbson-dev (<= 1.22.0-1), libdeal.ii-dev (<= 9.4.0-1), libdolfin-dev-common (<= 2019.2.0~git20220407.d29e24d-5), libeckit-dev (<= 1.20.0-1), libfclib-dev (<= 3.1.0+dfsg-2), libfltk1.3-dev (<= 1.3.8-4+b1), libinsighttoolkit4-dev (<= 4.13.3withdata-dfsg2-3+b1), libinsighttoolkit5-dev (<= 5.2.1-5+b1), libismrmrd-dev (<= 1.8.0-2), liblog4cplus-dev (<= 2.0.7-1), libmgl-dev (<= 8.0.1-2), libmimalloc2.0 (<= 2.0.6+ds-1), libminc-dev (<= 2.4.03-5), libmrpt-ros1bridge-dev (<= 1:2.4.9+ds-4+b2), libnetcdf-dev (<= 1:4.9.0-3), libnetcdf-mpi-dev (<= 1:4.9.0-1), libnetcdf-pnetcdf-dev (<= 1:4.9.0-1), libns3-dev (<= 3.36.1+dfsg-4), libopenms-dev (<= 2.6.0+cleaned1-3+b1), libtrilinos-amesos2-dev (<= 13.2.0-3), libtrilinos-amesos-dev (<= 13.2.0-3), libtrilinos-anasazi-dev (<= 13.2.0-3), libtrilinos-aztecoo-dev (<= 13.2.0-3), libtrilinos-belos-dev (<= 13.2.0-3), libtrilinos-epetra-dev (<= 13.2.0-3), libtrilinos-epetraext-dev (<= 13.2.0-3), libtrilinos-galeri-dev (<= 13.2.0-3), libtrilinos-ifpack2-dev (<= 13.2.0-3), libtrilinos-ifpack-dev (<= 13.2.0-3), libtrilinos-intrepid2-dev (<= 13.2.0-3), libtrilinos-intrepid-dev (<= 13.2.0-3), libtrilinos-isorropia-dev (<= 13.2.0-3), libtrilinos-kokkos-dev (<= 13.2.0-3), libtrilinos-kokkos-kernels-dev (<= 13.2.0-3), libtrilinos-komplex-dev (<= 13.2.0-3), libtrilinos-ml-dev (<= 13.2.0-3), libtrilinos-moertel-dev (<= 13.2.0-3), libtrilinos-muelu-dev (<= 13.2.0-3), libtrilinos-nox-dev (<= 13.2.0-3), libtrilinos-phalanx-dev (<= 13.2.0-3), libtrilinos-pike-dev (<= 13.2.0-3), libtrilinos-piro-dev (<= 13.2.0-3), libtrilinos-pliris-dev (<= 13.2.0-3), libtrilinos-rol-dev (<= 13.2.0-3), libtrilinos-rtop-dev (<= 13.2.0-3), libtrilinos-rythmos-dev (<= 13.2.0-3), libtrilinos-sacado-dev (<= 13.2.0-3), libtrilinos-shylu-dev (<= 13.2.0-3), libtrilinos-stokhos-dev (<= 13.2.0-3), libtrilinos-stratimikos-dev (<= 13.2.0-3), libtrilinos-teko-dev (<= 13.2.0-3), libtrilinos-teuchos-dev (<= 13.2.0-3), libtrilinos-thyra-dev (<= 13.2.0-3), libtrilinos-tpetra-dev (<= 13.2.0-3), libtrilinos-trilinoscouplings-dev (<= 13.2.0-3), libtrilinos-triutils-dev (<= 13.2.0-3), libtrilinos-xpetra-dev (<= 13.2.0-3), libtrilinos-zoltan2-dev (<= 13.2.0-3), libvisp-dev (<= 3.5.0-2+b1), libvotca-dev (<= 2022-3), libvtk6-dev (<= 6.3.0+dfsg2-8.1+b1), libvtk7-dev (<= 7.1.1+dfsg2-10.2), igblast (<= 1.19.0-1), libasyncns-dev (<= 0.8-6+b2), libatm1-dev (<= 1:2.5.1-4), libaws20-dev (<= 20.2-2+b1), libboinc-app-dev (<= 7.20.2+dfsg-1), libcups2-dev (<= 2.4.2-1), libdkim-dev (<= 1:1.0.21-4+b2), libghc-resolv-dev (<= 0.1.2.0-3), libghc-resolv-prof (<= 0.1.2.0-3), libglib2.0-dev (<= 2.72.3-1), libgloox-dev (<= 1.0.24-2+b1), libhesiod-dev (<= 3.2.1-3.1+b1), libinfinity-0.7-dev (<= 0.7.2-1+b1), libldap-dev (<= 2.5.12+dfsg-2), libloudmouth1-dev (<= 1.5.4-1), libmongoc-dev (<= 1.22.1-1), libmysqlclient-dev (<= 8.0.29-1), libnfsidmap-dev (<= 1:2.6.1-2), libola-dev (<= 0.10.8.nojsmin-2), libopenafs-dev (<= 1.8.8.1-3), libopendkim-dev (<= 2.11.0~beta2-7), libopendmarc-dev (<= 1.4.2-1), libopenzwave1.6-dev (<= 1.6.1914+ds-1), libpg-query-dev (<= 13-2.1.2-2), librbl-dev (<= 2.11.0~beta2-7), libre-dev (<= 1.1.0-1+b1), libshishi-dev (<= 1.0.2-11), libslurm-dev (<= 21.08.8.2-1), libsocksd0-dev (<= 1.4.2+dfsg-7+b4), libspf2-dev (<= 1.2.10-7.1+b1), libstrophe-dev (<= 0.12.1-2), libtaningia-dev (<= 0.2.2-2+b1), libvbr-dev (<= 2.11.0~beta2-7), open-vm-tools-dev (<= 2:12.0.5-2), pidgin-librvp (<= 0.9.7cvs-3), proftpd-dev (<= 1.3.7d+dfsg-2), slurm-wlm-basic-plugins-dev (<= 21.08.8.2-1), catch (<< 1.12.2-0.1), heimdal-multidev (<= 7.7.0+dfsg-4), binutils (<< 2.38)
Conflicts: libc6-dev, libc0.3-dev,
Description: GNU C Library: Development Libraries and Header Files
......@@ -272,7 +272,7 @@ Description: GNU C Library: Development Libraries and Header Files
and link programs which use the standard C library.
Package: libc6.1-dbg
Architecture: alpha ia64
Architecture: alpha
Section: debug
Priority: optional
Multi-Arch: same
......@@ -285,7 +285,7 @@ Description: GNU C Library: detached debugging symbols
Package: libc6.1-udeb
Package-Type: udeb
Architecture: alpha ia64
Architecture: alpha
Section: debian-installer
Priority: optional
Provides: libc6.1, libc-udeb, libnss-dns-udeb, libnss-files-udeb
......@@ -308,7 +308,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.38), locales (<< 2.38), locales-all (<< 2.38), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1), sysvinit (<< 3.09-2)
Breaks: nscd (<< 2.39), locales (<< 2.39), locales-all (<< 2.39), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit (<< 3.09-2~), base-files (<< 13.3~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......@@ -336,7 +336,7 @@ Multi-Arch: same
Depends: libc0.3 (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], gnumach-dev [hurd-any], hurd-dev (>= 20080607-3) [hurd-any] | hurd-headers-dev [hurd-any], ${libcrypt-dev:Depends}, ${rpcsvc-proto:Depends}
Replaces: hurd-dev (<< 20120408-3) [hurd-any], libc0.3 (<= 2.32-1)
Suggests: glibc-doc, manpages-dev
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha ia64 hurd-any]
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha hurd-any]
Breaks: check (<< 0.15.2-2+b1) [s390x], ${libc-dev:Breaks}, libassimp-dev (<= 5.2.4~ds0-1), libbson-dev (<= 1.22.0-1), libdeal.ii-dev (<= 9.4.0-1), libdolfin-dev-common (<= 2019.2.0~git20220407.d29e24d-5), libeckit-dev (<= 1.20.0-1), libfclib-dev (<= 3.1.0+dfsg-2), libfltk1.3-dev (<= 1.3.8-4+b1), libinsighttoolkit4-dev (<= 4.13.3withdata-dfsg2-3+b1), libinsighttoolkit5-dev (<= 5.2.1-5+b1), libismrmrd-dev (<= 1.8.0-2), liblog4cplus-dev (<= 2.0.7-1), libmgl-dev (<= 8.0.1-2), libmimalloc2.0 (<= 2.0.6+ds-1), libminc-dev (<= 2.4.03-5), libmrpt-ros1bridge-dev (<= 1:2.4.9+ds-4+b2), libnetcdf-dev (<= 1:4.9.0-3), libnetcdf-mpi-dev (<= 1:4.9.0-1), libnetcdf-pnetcdf-dev (<= 1:4.9.0-1), libns3-dev (<= 3.36.1+dfsg-4), libopenms-dev (<= 2.6.0+cleaned1-3+b1), libtrilinos-amesos2-dev (<= 13.2.0-3), libtrilinos-amesos-dev (<= 13.2.0-3), libtrilinos-anasazi-dev (<= 13.2.0-3), libtrilinos-aztecoo-dev (<= 13.2.0-3), libtrilinos-belos-dev (<= 13.2.0-3), libtrilinos-epetra-dev (<= 13.2.0-3), libtrilinos-epetraext-dev (<= 13.2.0-3), libtrilinos-galeri-dev (<= 13.2.0-3), libtrilinos-ifpack2-dev (<= 13.2.0-3), libtrilinos-ifpack-dev (<= 13.2.0-3), libtrilinos-intrepid2-dev (<= 13.2.0-3), libtrilinos-intrepid-dev (<= 13.2.0-3), libtrilinos-isorropia-dev (<= 13.2.0-3), libtrilinos-kokkos-dev (<= 13.2.0-3), libtrilinos-kokkos-kernels-dev (<= 13.2.0-3), libtrilinos-komplex-dev (<= 13.2.0-3), libtrilinos-ml-dev (<= 13.2.0-3), libtrilinos-moertel-dev (<= 13.2.0-3), libtrilinos-muelu-dev (<= 13.2.0-3), libtrilinos-nox-dev (<= 13.2.0-3), libtrilinos-phalanx-dev (<= 13.2.0-3), libtrilinos-pike-dev (<= 13.2.0-3), libtrilinos-piro-dev (<= 13.2.0-3), libtrilinos-pliris-dev (<= 13.2.0-3), libtrilinos-rol-dev (<= 13.2.0-3), libtrilinos-rtop-dev (<= 13.2.0-3), libtrilinos-rythmos-dev (<= 13.2.0-3), libtrilinos-sacado-dev (<= 13.2.0-3), libtrilinos-shylu-dev (<= 13.2.0-3), libtrilinos-stokhos-dev (<= 13.2.0-3), libtrilinos-stratimikos-dev (<= 13.2.0-3), libtrilinos-teko-dev (<= 13.2.0-3), libtrilinos-teuchos-dev (<= 13.2.0-3), libtrilinos-thyra-dev (<= 13.2.0-3), libtrilinos-tpetra-dev (<= 13.2.0-3), libtrilinos-trilinoscouplings-dev (<= 13.2.0-3), libtrilinos-triutils-dev (<= 13.2.0-3), libtrilinos-xpetra-dev (<= 13.2.0-3), libtrilinos-zoltan2-dev (<= 13.2.0-3), libvisp-dev (<= 3.5.0-2+b1), libvotca-dev (<= 2022-3), libvtk6-dev (<= 6.3.0+dfsg2-8.1+b1), libvtk7-dev (<= 7.1.1+dfsg2-10.2), igblast (<= 1.19.0-1), libasyncns-dev (<= 0.8-6+b2), libatm1-dev (<= 1:2.5.1-4), libaws20-dev (<= 20.2-2+b1), libboinc-app-dev (<= 7.20.2+dfsg-1), libcups2-dev (<= 2.4.2-1), libdkim-dev (<= 1:1.0.21-4+b2), libghc-resolv-dev (<= 0.1.2.0-3), libghc-resolv-prof (<= 0.1.2.0-3), libglib2.0-dev (<= 2.72.3-1), libgloox-dev (<= 1.0.24-2+b1), libhesiod-dev (<= 3.2.1-3.1+b1), libinfinity-0.7-dev (<= 0.7.2-1+b1), libldap-dev (<= 2.5.12+dfsg-2), libloudmouth1-dev (<= 1.5.4-1), libmongoc-dev (<= 1.22.1-1), libmysqlclient-dev (<= 8.0.29-1), libnfsidmap-dev (<= 1:2.6.1-2), libola-dev (<= 0.10.8.nojsmin-2), libopenafs-dev (<= 1.8.8.1-3), libopendkim-dev (<= 2.11.0~beta2-7), libopendmarc-dev (<= 1.4.2-1), libopenzwave1.6-dev (<= 1.6.1914+ds-1), libpg-query-dev (<= 13-2.1.2-2), librbl-dev (<= 2.11.0~beta2-7), libre-dev (<= 1.1.0-1+b1), libshishi-dev (<= 1.0.2-11), libslurm-dev (<= 21.08.8.2-1), libsocksd0-dev (<= 1.4.2+dfsg-7+b4), libspf2-dev (<= 1.2.10-7.1+b1), libstrophe-dev (<= 0.12.1-2), libtaningia-dev (<= 0.2.2-2+b1), libvbr-dev (<= 2.11.0~beta2-7), open-vm-tools-dev (<= 2:12.0.5-2), pidgin-librvp (<= 0.9.7cvs-3), proftpd-dev (<= 1.3.7d+dfsg-2), slurm-wlm-basic-plugins-dev (<= 21.08.8.2-1), catch (<< 1.12.2-0.1), heimdal-multidev (<= 7.7.0+dfsg-4), binutils (<< 2.38)
Conflicts: libc6-dev, libc6.1-dev,
Description: GNU C Library: Development Libraries and Header Files
......
......@@ -36,7 +36,7 @@ Multi-Arch: same
Depends: @libc@ (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], gnumach-dev [hurd-any], hurd-dev (>= 20080607-3) [hurd-any] | hurd-headers-dev [hurd-any], ${libcrypt-dev:Depends}, ${rpcsvc-proto:Depends}
Replaces: hurd-dev (<< 20120408-3) [hurd-any], @libc@ (<= 2.32-1)
Suggests: glibc-doc, manpages-dev
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha ia64 hurd-any]
Provides: libc-dev (= ${binary:Version}), libc6-dev [alpha hurd-any]
Breaks: check (<< 0.15.2-2+b1) [s390x], ${libc-dev:Breaks}, libassimp-dev (<= 5.2.4~ds0-1), libbson-dev (<= 1.22.0-1), libdeal.ii-dev (<= 9.4.0-1), libdolfin-dev-common (<= 2019.2.0~git20220407.d29e24d-5), libeckit-dev (<= 1.20.0-1), libfclib-dev (<= 3.1.0+dfsg-2), libfltk1.3-dev (<= 1.3.8-4+b1), libinsighttoolkit4-dev (<= 4.13.3withdata-dfsg2-3+b1), libinsighttoolkit5-dev (<= 5.2.1-5+b1), libismrmrd-dev (<= 1.8.0-2), liblog4cplus-dev (<= 2.0.7-1), libmgl-dev (<= 8.0.1-2), libmimalloc2.0 (<= 2.0.6+ds-1), libminc-dev (<= 2.4.03-5), libmrpt-ros1bridge-dev (<= 1:2.4.9+ds-4+b2), libnetcdf-dev (<= 1:4.9.0-3), libnetcdf-mpi-dev (<= 1:4.9.0-1), libnetcdf-pnetcdf-dev (<= 1:4.9.0-1), libns3-dev (<= 3.36.1+dfsg-4), libopenms-dev (<= 2.6.0+cleaned1-3+b1), libtrilinos-amesos2-dev (<= 13.2.0-3), libtrilinos-amesos-dev (<= 13.2.0-3), libtrilinos-anasazi-dev (<= 13.2.0-3), libtrilinos-aztecoo-dev (<= 13.2.0-3), libtrilinos-belos-dev (<= 13.2.0-3), libtrilinos-epetra-dev (<= 13.2.0-3), libtrilinos-epetraext-dev (<= 13.2.0-3), libtrilinos-galeri-dev (<= 13.2.0-3), libtrilinos-ifpack2-dev (<= 13.2.0-3), libtrilinos-ifpack-dev (<= 13.2.0-3), libtrilinos-intrepid2-dev (<= 13.2.0-3), libtrilinos-intrepid-dev (<= 13.2.0-3), libtrilinos-isorropia-dev (<= 13.2.0-3), libtrilinos-kokkos-dev (<= 13.2.0-3), libtrilinos-kokkos-kernels-dev (<= 13.2.0-3), libtrilinos-komplex-dev (<= 13.2.0-3), libtrilinos-ml-dev (<= 13.2.0-3), libtrilinos-moertel-dev (<= 13.2.0-3), libtrilinos-muelu-dev (<= 13.2.0-3), libtrilinos-nox-dev (<= 13.2.0-3), libtrilinos-phalanx-dev (<= 13.2.0-3), libtrilinos-pike-dev (<= 13.2.0-3), libtrilinos-piro-dev (<= 13.2.0-3), libtrilinos-pliris-dev (<= 13.2.0-3), libtrilinos-rol-dev (<= 13.2.0-3), libtrilinos-rtop-dev (<= 13.2.0-3), libtrilinos-rythmos-dev (<= 13.2.0-3), libtrilinos-sacado-dev (<= 13.2.0-3), libtrilinos-shylu-dev (<= 13.2.0-3), libtrilinos-stokhos-dev (<= 13.2.0-3), libtrilinos-stratimikos-dev (<= 13.2.0-3), libtrilinos-teko-dev (<= 13.2.0-3), libtrilinos-teuchos-dev (<= 13.2.0-3), libtrilinos-thyra-dev (<= 13.2.0-3), libtrilinos-tpetra-dev (<= 13.2.0-3), libtrilinos-trilinoscouplings-dev (<= 13.2.0-3), libtrilinos-triutils-dev (<= 13.2.0-3), libtrilinos-xpetra-dev (<= 13.2.0-3), libtrilinos-zoltan2-dev (<= 13.2.0-3), libvisp-dev (<= 3.5.0-2+b1), libvotca-dev (<= 2022-3), libvtk6-dev (<= 6.3.0+dfsg2-8.1+b1), libvtk7-dev (<= 7.1.1+dfsg2-10.2), igblast (<= 1.19.0-1), libasyncns-dev (<= 0.8-6+b2), libatm1-dev (<= 1:2.5.1-4), libaws20-dev (<= 20.2-2+b1), libboinc-app-dev (<= 7.20.2+dfsg-1), libcups2-dev (<= 2.4.2-1), libdkim-dev (<= 1:1.0.21-4+b2), libghc-resolv-dev (<= 0.1.2.0-3), libghc-resolv-prof (<= 0.1.2.0-3), libglib2.0-dev (<= 2.72.3-1), libgloox-dev (<= 1.0.24-2+b1), libhesiod-dev (<= 3.2.1-3.1+b1), libinfinity-0.7-dev (<= 0.7.2-1+b1), libldap-dev (<= 2.5.12+dfsg-2), libloudmouth1-dev (<= 1.5.4-1), libmongoc-dev (<= 1.22.1-1), libmysqlclient-dev (<= 8.0.29-1), libnfsidmap-dev (<= 1:2.6.1-2), libola-dev (<= 0.10.8.nojsmin-2), libopenafs-dev (<= 1.8.8.1-3), libopendkim-dev (<= 2.11.0~beta2-7), libopendmarc-dev (<= 1.4.2-1), libopenzwave1.6-dev (<= 1.6.1914+ds-1), libpg-query-dev (<= 13-2.1.2-2), librbl-dev (<= 2.11.0~beta2-7), libre-dev (<= 1.1.0-1+b1), libshishi-dev (<= 1.0.2-11), libslurm-dev (<= 21.08.8.2-1), libsocksd0-dev (<= 1.4.2+dfsg-7+b4), libspf2-dev (<= 1.2.10-7.1+b1), libstrophe-dev (<= 0.12.1-2), libtaningia-dev (<= 0.2.2-2+b1), libvbr-dev (<= 2.11.0~beta2-7), open-vm-tools-dev (<= 2:12.0.5-2), pidgin-librvp (<= 0.9.7cvs-3), proftpd-dev (<= 1.3.7d+dfsg-2), slurm-wlm-basic-plugins-dev (<= 21.08.8.2-1), catch (<< 1.12.2-0.1), heimdal-multidev (<= 7.7.0+dfsg-4), binutils (<< 2.38)
Conflicts: @libc-dev-conflict@
Description: GNU C Library: Development Libraries and Header Files
......
......@@ -4,10 +4,11 @@ solution is to drop those dependencies and make sure that MAKEINFO=:
so that no target depends on manual/*.texi files.
---
elf/Makefile | 3
manual/Makefile | 182 +++++++++++++++++++++++++++++++++++++++++++++
stdio-common/Makefile | 2
sysdeps/mach/hurd/Makefile | 2
3 files changed, 184 insertions(+), 2 deletions(-)
4 files changed, 185 insertions(+), 4 deletions(-)
--- /dev/null
+++ b/manual/Makefile
......@@ -196,7 +197,7 @@ so that no target depends on manual/*.texi files.
+ $(ETAGS) -o $@ $^
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -251,7 +251,7 @@
@@ -318,7 +318,7 @@
# generated
endif # $(run-built-tests)
......@@ -207,8 +208,8 @@ so that no target depends on manual/*.texi files.
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -88,7 +88,7 @@
-e 's, \.\./, $(..),g' > $@t
@@ -94,7 +94,7 @@
echo >> $@t
mv -f $@t $@
-$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ;
......@@ -216,3 +217,16 @@ so that no target depends on manual/*.texi files.
$(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
$(mach-errnos-deps) $(common-objpfx)errnos.d
mkdir -p $(hurd-objpfx)bits
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -2782,9 +2782,8 @@
$(objpfx)tst-ro-dynamic-mod.os
$(objpfx)tst-rtld-list-diagnostics.out: tst-rtld-list-diagnostics.py \
- $(..)manual/dynlink.texi $(objpfx)$(rtld-installed-name)
+ $(objpfx)$(rtld-installed-name)
$(PYTHON) tst-rtld-list-diagnostics.py \
- --manual=$(..)manual/dynlink.texi \
"$(test-wrapper-env) $(objpfx)$(rtld-installed-name) --list-diagnostics" \
> $@; \
$(evaluate-test)
commit 2897b231a6b71ee17d47d3d63f1112b2641a476c
Author: Bruno Haible <bruno@clisp.org>
Date: Mon Sep 4 15:31:36 2023 +0200
intl: Treat C.UTF-8 locale like C locale (BZ# 16621)
The wiki page https://sourceware.org/glibc/wiki/Proposals/C.UTF-8
says that "Setting LC_ALL=C.UTF-8 will ignore LANGUAGE just like it
does with LC_ALL=C." This patch implements it.
* intl/dcigettext.c (guess_category_value): Treat C.<encoding> locale
like the C locale.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 7886ac9545..27063886d2 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -1560,8 +1560,12 @@ guess_category_value (int category, const char *categoryname)
2. The precise output of some programs in the "C" locale is specified
by POSIX and should not depend on environment variables like
"LANGUAGE" or system-dependent information. We allow such programs
- to use gettext(). */
- if (strcmp (locale, "C") == 0)
+ to use gettext().
+ Ignore LANGUAGE and its system-dependent analogon also if the locale is
+ set to "C.UTF-8" or, more generally, to "C.<encoding>", because that's
+ the by-design behaviour for glibc, see
+ <https://sourceware.org/glibc/wiki/Proposals/C.UTF-8>. */
+ if (locale[0] == 'C' && (locale[1] == '\0' || locale[1] == '.'))
return locale;
/* The highest priority value is the value of the 'LANGUAGE' environment
diff -rup a/stdlib/qsort.c b/stdlib/qsort.c
--- a/stdlib/qsort.c 2023-07-31 10:54:16.000000000 -0700
+++ b/stdlib/qsort.c 2024-01-15 09:08:25.596167959 -0800
@@ -224,7 +224,8 @@ _quicksort (void *const pbase, size_t to
while ((run_ptr += size) <= end_ptr)
{
tmp_ptr = run_ptr - size;
- while ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0)
+ while (tmp_ptr != base_ptr
+ && (*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0)
tmp_ptr -= size;
tmp_ptr += size;
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: [PATCH v3 5/7] math: Provided copysignf128 for static libm on alpha,
s390, and sparcv9
Date: Tue, 2 Apr 2024 11:06:42 -0300
Message-Id: <20240402140644.2172819-6-adhemerval.zanella@linaro.org>
Checked with a static build for the affected ABIs.
---
sysdeps/ieee754/ldbl-64-128/s_copysignl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/ieee754/ldbl-64-128/s_copysignl.c b/sysdeps/ieee754/ldbl-64-128/s_copysignl.c
index 11b42d04ba..80137847d3 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_copysignl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_copysignl.c
@@ -1,10 +1,10 @@
#include <math_ldbl_opt.h>
#include <libm-alias-ldouble.h>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
# undef libm_alias_ldouble
# define libm_alias_ldouble(from, to)
#endif
#include <sysdeps/ieee754/ldbl-128/s_copysignl.c>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
long_double_symbol (libc, __copysignl, copysignl);
#endif
--
2.34.1
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: [PATCH v3 2/7] math: Fix i386 and m68k fmod/fmodf on static build (BZ
31488)
Date: Tue, 2 Apr 2024 11:06:39 -0300
Message-Id: <20240402140644.2172819-3-adhemerval.zanella@linaro.org>
The commit 16439f419b removed the static fmod/fmodf on i386 and m68k
with and empty w_fmod.c (required for the ABIs that uses the newly
implementation). This patch fixes by adding the required symbols on
the arch-specific w_fmod{f}_compat.c implementation.
To statically build fmod fails on some ABI (alpha, s390, sparc) because
it does not export the ldexpf128, this is also fixed by this patch.
Checked on i686-linux-gnu and with a build for m68k-linux-gnu with
'make test t=math/test-{float,double}-modf-static build-math-static-tests=yes'.
---
sysdeps/i386/fpu/w_fmod_compat.c | 7 ++++---
sysdeps/i386/fpu/w_fmodf_compat.c | 7 ++++---
sysdeps/ieee754/ldbl-opt/s_ldexpl.c | 4 ++--
sysdeps/m68k/m680x0/fpu/w_fmod_compat.c | 5 +++--
sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c | 7 ++++---
5 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/sysdeps/i386/fpu/w_fmod_compat.c b/sysdeps/i386/fpu/w_fmod_compat.c
index 5ac9995ffd..528bfc2a13 100644
--- a/sysdeps/i386/fpu/w_fmod_compat.c
+++ b/sysdeps/i386/fpu/w_fmod_compat.c
@@ -7,8 +7,9 @@
# define LIBM_SVID_COMPAT 1
# undef compat_symbol
# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmod_compat.c>
-#ifdef SHARED
+# include <math/w_fmod_compat.c>
libm_alias_double (__fmod_compat, fmod)
+#else
+#include <math-type-macros-double.h>
+#include <w_fmod_template.c>
#endif
diff --git a/sysdeps/i386/fpu/w_fmodf_compat.c b/sysdeps/i386/fpu/w_fmodf_compat.c
index cc417e07d3..5a61693e51 100644
--- a/sysdeps/i386/fpu/w_fmodf_compat.c
+++ b/sysdeps/i386/fpu/w_fmodf_compat.c
@@ -7,8 +7,9 @@
# define LIBM_SVID_COMPAT 1
# undef compat_symbol
# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmodf_compat.c>
-#ifdef SHARED
+# include <math/w_fmodf_compat.c>
libm_alias_float (__fmod_compat, fmod)
+#else
+#include <math-type-macros-float.h>
+#include <w_fmod_template.c>
#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
index 1afbe7d8ad..932cc4341c 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
@@ -17,13 +17,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
# define declare_mgen_alias(f,t)
#endif
#include <math-type-macros-ldouble.h>
#include <s_ldexp_template.c>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
long_double_symbol (libc, __ldexpl, ldexpl);
long_double_symbol (libc, __wrap_scalbnl, scalbnl);
#endif
diff --git a/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c
index 527d4fbed2..57f38091e6 100644
--- a/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c
+++ b/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c
@@ -7,8 +7,9 @@
# define LIBM_SVID_COMPAT 1
# undef compat_symbol
# define compat_symbol(a, b, c, d)
-#endif
#include <math/w_fmod_compat.c>
-#ifdef SHARED
libm_alias_double (__fmod_compat, fmod)
+#else
+#include <math-type-macros-double.h>
+#include <w_fmod_template.c>
#endif
diff --git a/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c
index 5043586b91..88db07f443 100644
--- a/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c
+++ b/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c
@@ -7,8 +7,9 @@
# define LIBM_SVID_COMPAT 1
# undef compat_symbol
# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmodf_compat.c>
-#ifdef SHARED
+# include <math/w_fmodf_compat.c>
libm_alias_float (__fmod_compat, fmod)
+#else
+#include <math-type-macros-float.h>
+#include <w_fmod_template.c>
#endif
--
2.34.1
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: [PATCH v3 6/7] math: Provide frexpf128 for static libm on alpha, s390,
and sparcv9
Date: Tue, 2 Apr 2024 11:06:43 -0300
Message-Id: <20240402140644.2172819-7-adhemerval.zanella@linaro.org>
hecked with a build for the affected ABIs.
---
sysdeps/ieee754/ldbl-64-128/s_frexpl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/ieee754/ldbl-64-128/s_frexpl.c b/sysdeps/ieee754/ldbl-64-128/s_frexpl.c
index 73ac41e40c..f5f7d349f7 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_frexpl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_frexpl.c
@@ -1,10 +1,10 @@
#include <math_ldbl_opt.h>
#include <libm-alias-ldouble.h>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
# undef libm_alias_ldouble
# define libm_alias_ldouble(from, to)
#endif
#include <sysdeps/ieee754/ldbl-128/s_frexpl.c>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
long_double_symbol (libc, __frexpl, frexpl);
#endif
--
2.34.1
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: [PATCH v3 4/7] math: Fix isnanf128 static build
Date: Tue, 2 Apr 2024 11:06:41 -0300
Message-Id: <20240402140644.2172819-5-adhemerval.zanella@linaro.org>
Some static implementation of float128 routines might call __isnanf128,
which is not provided by the static object.
Checked on x86_64-linux-gnu.
---
sysdeps/ieee754/float128/float128_private.h | 2 +-
sysdeps/ieee754/float128/s_isnanf128.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h
index 38a8bdd0fe..672bf3cccf 100644
--- a/sysdeps/ieee754/float128/float128_private.h
+++ b/sysdeps/ieee754/float128/float128_private.h
@@ -352,7 +352,7 @@
#define frexpl frexpf128
#define getpayloadl getpayloadf128
#define isinfl isinff128_do_not_use
-#define isnanl isnanf128_do_not_use
+#define isnanl isnanf128
#define ldexpl ldexpf128
#define llrintl llrintf128
#define llroundl llroundf128
diff --git a/sysdeps/ieee754/float128/s_isnanf128.c b/sysdeps/ieee754/float128/s_isnanf128.c
index 59f71533ce..b73a4e80d7 100644
--- a/sysdeps/ieee754/float128/s_isnanf128.c
+++ b/sysdeps/ieee754/float128/s_isnanf128.c
@@ -11,7 +11,11 @@
#include "../ldbl-128/s_isnanl.c"
#if !IS_IN (libm)
#include <float128-abi.h>
+#ifdef SHARED
hidden_ver (__isnanf128_impl, __isnanf128)
+#else
+strong_alias (__isnanf128_impl, __isnanf128)
+#endif
_weak_alias (__isnanf128_impl, isnanl)
versioned_symbol (libc, __isnanf128_impl, __isnanf128, GLIBC_2_34);
#if (SHLIB_COMPAT (libc, FLOAT128_VERSION_M, GLIBC_2_34))
--
2.34.1
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: [PATCH v3 7/7] math: Provide modf128 for static libm on alpha, s390,
and sparcv9
Date: Tue, 2 Apr 2024 11:06:44 -0300
Message-Id: <20240402140644.2172819-8-adhemerval.zanella@linaro.org>
Checked with a build for the affected ABIs
---
sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
index 7d7aeae111..ba3d31334a 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c
@@ -1,10 +1,10 @@
#include <math_ldbl_opt.h>
#include <libm-alias-ldouble.h>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
# undef libm_alias_ldouble
# define libm_alias_ldouble(from, to)
#endif
#include <sysdeps/ieee754/ldbl-128/s_modfl.c>
-#if IS_IN (libc)
+#if IS_IN (libc) && defined SHARED
long_double_symbol (libc, __modfl, modfl);
#endif
--
2.34.1
Temporarily remove bits/math-vector.h as it causes a few packages to FTBFS:
- #1070441 cmbc: arm64 FTBFS with glibc 2.38
- #1070443 aspectc++: arm64 FTBFS with glibc 2.38
- #1070444 cxref: arm64 FTBFS with glibc 2.38
- #1070446 rocm-hipamd: arm64 FTBFS with glibc 2.38
See upstream bug https://sourceware.org/bugzilla/show_bug.cgi?id=30909
diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h
deleted file mode 100644
index 7c200599c1..0000000000
--- a/sysdeps/aarch64/fpu/bits/math-vector.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Platform-specific SIMD declarations of math functions.
-
- Copyright (C) 2023 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never include <bits/math-vector.h> directly;\
- include <math.h> instead."
-#endif
-
-/* Get default empty definitions for simd declarations. */
-#include <bits/libm-simd-decl-stubs.h>
-
-#if __GNUC_PREREQ(9, 0)
-# define __ADVSIMD_VEC_MATH_SUPPORTED
-typedef __Float32x4_t __f32x4_t;
-typedef __Float64x2_t __f64x2_t;
-#elif __glibc_clang_prereq(8, 0)
-# define __ADVSIMD_VEC_MATH_SUPPORTED
-typedef __attribute__ ((__neon_vector_type__ (4))) float __f32x4_t;
-typedef __attribute__ ((__neon_vector_type__ (2))) double __f64x2_t;
-#endif
-
-#if __GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0)
-# define __SVE_VEC_MATH_SUPPORTED
-typedef __SVFloat32_t __sv_f32_t;
-typedef __SVFloat64_t __sv_f64_t;
-typedef __SVBool_t __sv_bool_t;
-#endif
-
-/* If vector types and vector PCS are unsupported in the working
- compiler, no choice but to omit vector math declarations. */
-
-#ifdef __ADVSIMD_VEC_MATH_SUPPORTED
-
-# define __vpcs __attribute__ ((__aarch64_vector_pcs__))
-
-__vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t);
-__vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t);
-__vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t);
-__vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t);
-
-__vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t);
-__vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t);
-__vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t);
-__vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t);
-
-# undef __ADVSIMD_VEC_MATH_SUPPORTED
-#endif /* __ADVSIMD_VEC_MATH_SUPPORTED */
-
-#ifdef __SVE_VEC_MATH_SUPPORTED
-
-__sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t);
-__sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t);
-__sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t);
-__sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t);
-
-__sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t);
-__sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t);
-__sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t);
-__sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t);
-
-# undef __SVE_VEC_MATH_SUPPORTED
-#endif /* __SVE_VEC_MATH_SUPPORTED */
This diff is collapsed.
commit ad26c25137086b6e001ce1a7f82b4656724200da
Author: Flavio Cruz <flaviocruz@gmail.com>
Date: Thu Dec 14 01:02:28 2023 -0500
Update code to handle the new ABI for sending inlined port rights.
For i686, this change is no op but for x86_64 it forces all inlined port
rights to be 8 bytes long.
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c
index 24184f827f..9912f4f1f3 100644
--- a/hurd/intr-msg.c
+++ b/hurd/intr-msg.c
@@ -199,6 +199,28 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
__vm_deallocate (__mach_task_self (), (vm_address_t) data, length);
}
+ inline void clean_inlined_ports (mach_port_name_inlined_t *ports)
+ {
+ mach_msg_type_number_t i;
+ switch (name)
+ {
+ case MACH_MSG_TYPE_MOVE_SEND:
+ for (i = 0; i < number; i++)
+ __mach_port_deallocate (__mach_task_self (), ports[i].name);
+ if (ty->msgtl_header.msgt_longform)
+ ty->msgtl_name = MACH_MSG_TYPE_COPY_SEND;
+ else
+ ty->msgtl_header.msgt_name = MACH_MSG_TYPE_COPY_SEND;
+ break;
+ case MACH_MSG_TYPE_COPY_SEND:
+ case MACH_MSG_TYPE_MOVE_RECEIVE:
+ break;
+ default:
+ if (MACH_MSG_TYPE_PORT_ANY (name))
+ assert (! "unexpected port type in interruptible RPC");
+ }
+ }
+
char *data;
if (ty->msgtl_header.msgt_longform)
{
@@ -215,11 +237,11 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
data = (char *) ty + sizeof (mach_msg_type_t);
}
+ /* Calculate length of data in bytes. */
const vm_size_t length = ((number * size) + 7) >> 3;
if (ty->msgtl_header.msgt_inline)
{
- /* Calculate length of data in bytes. */
- clean_ports_and_memory (data, length, 0);
+ clean_inlined_ports ((mach_port_name_inlined_t *) data);
/* Move to the next argument. */
ty = (void *) PTR_ALIGN_UP (data + length, __alignof__ (uintptr_t));
}
diff --git a/mach/msg-destroy.c b/mach/msg-destroy.c
index 19137baa62..8640c965bd 100644
--- a/mach/msg-destroy.c
+++ b/mach/msg-destroy.c
@@ -108,11 +108,17 @@ __mach_msg_destroy (mach_msg_header_t *msg)
addr = is_inline ? saddr : * (vm_offset_t *) saddr;
if (MACH_MSG_TYPE_PORT_ANY(name)) {
- mach_port_t *ports = (mach_port_t *) addr;
mach_msg_type_number_t i;
- for (i = 0; i < number; i++)
- mach_msg_destroy_port(*ports++, name);
+ if (is_inline) {
+ mach_port_name_inlined_t *inlined_ports = (mach_port_name_inlined_t *)addr;
+ for (i = 0; i < number; i++)
+ mach_msg_destroy_port(inlined_ports[i].name, name);
+ } else {
+ mach_port_t *ports = (mach_port_t *) addr;
+ for (i = 0; i < number; i++)
+ mach_msg_destroy_port(ports[i], name);
+ }
}
if (is_inline) {
commit f11a92993c45a91c3237733486ce2b8735af2ba0
Author: Flavio Cruz <flaviocruz@gmail.com>
Date: Sat Nov 18 18:18:44 2023 -0500
_hurd_intr_rpc_mach_msg: handle message iteration correctly.
The `ty` pointer is only set at the end of the loop so that
`msgtl_header.msgt_inline` and `msgtl_header.msgt_deallocate` remain
valid. Also, when deallocating memory, we use the length from the
message directly rather than hard coding mach_port_t since we want to
deallocate any kind of OOL data.
Message-ID: <ZVlGVD6eEN-dXsOr@jupiter.tail36e24.ts.net>
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c
index 98f588f206..737bfe0ffb 100644
--- a/hurd/intr-msg.c
+++ b/hurd/intr-msg.c
@@ -186,12 +186,14 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
mach_msg_type_size_t size;
mach_msg_type_number_t number;
- inline void clean_ports (mach_port_t *ports, int dealloc)
+ inline void clean_ports_and_memory (char *data, const vm_size_t length,
+ int dealloc)
{
mach_msg_type_number_t i;
switch (name)
{
case MACH_MSG_TYPE_MOVE_SEND:
+ mach_port_t *ports = (mach_port_t *) data;
for (i = 0; i < number; i++)
__mach_port_deallocate (__mach_task_self (), *ports++);
if (ty->msgtl_header.msgt_longform)
@@ -207,40 +209,38 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
assert (! "unexpected port type in interruptible RPC");
}
if (dealloc)
- __vm_deallocate (__mach_task_self (),
- (vm_address_t) ports,
- number * sizeof (mach_port_t));
+ __vm_deallocate (__mach_task_self (), (vm_address_t) data, length);
}
+ char *data;
if (ty->msgtl_header.msgt_longform)
{
name = ty->msgtl_name;
size = ty->msgtl_size;
number = ty->msgtl_number;
- ty = (void *) ty + sizeof (mach_msg_type_long_t);
+ data = (char *) ty + sizeof (mach_msg_type_long_t);
}
else
{
name = ty->msgtl_header.msgt_name;
size = ty->msgtl_header.msgt_size;
number = ty->msgtl_header.msgt_number;
- ty = (void *) ty + sizeof (mach_msg_type_t);
+ data = (char *) ty + sizeof (mach_msg_type_t);
}
+ const vm_size_t length = ((number * size) + 7) >> 3;
if (ty->msgtl_header.msgt_inline)
{
/* Calculate length of data in bytes. */
- const vm_size_t length = ((number * size) + 7) >> 3;
- clean_ports ((void *) ty, 0);
+ clean_ports_and_memory (data, length, 0);
/* Move to the next argument. */
- ty = (void *) PTR_ALIGN_UP ((char *) ty + length,
- __alignof__ (uintptr_t));
+ ty = (void *) PTR_ALIGN_UP (data + length, __alignof__ (uintptr_t));
}
else
{
- clean_ports (*(void **) ty,
+ clean_ports_and_memory (*(void **) data, length,
ty->msgtl_header.msgt_deallocate);
- ty = (void *) ty + sizeof (void *);
+ ty = (void *) data + sizeof (void *);
}
}
#else /* Untyped Mach IPC flavor. */
commit dd858522bf36ae16496ea01ff8b65e16b4e5c22b
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Nov 21 00:55:54 2023 +0100
hurd: fix restarting reauth_dtable on signal
While inside the critical section, RPCs would not be restarted, so we
have to handle EINTR errors.
diff --git a/hurd/dtable.c b/hurd/dtable.c
index 41f4d7afef..eaf4734a35 100644
--- a/hurd/dtable.c
+++ b/hurd/dtable.c
@@ -289,6 +289,7 @@ reauth_dtable (void)
{
int i;
+retry:
HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_dtable_lock);
@@ -296,6 +297,7 @@ reauth_dtable (void)
{
struct hurd_fd *const d = _hurd_dtable[i];
mach_port_t new, newctty, ref;
+ error_t err = 0;
if (d == NULL)
/* Nothing to do for an unused descriptor cell. */
@@ -308,23 +310,23 @@ reauth_dtable (void)
/* Reauthenticate the descriptor's port. */
if (d->port.port != MACH_PORT_NULL
- && ! __io_reauthenticate (d->port.port,
- ref, MACH_MSG_TYPE_MAKE_SEND)
- && ! __USEPORT (AUTH, __auth_user_authenticate
- (port,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &new)))
+ && ! (err = __io_reauthenticate (d->port.port,
+ ref, MACH_MSG_TYPE_MAKE_SEND))
+ && ! (err = __USEPORT (AUTH, __auth_user_authenticate
+ (port,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &new))))
{
/* Replace the port in the descriptor cell
with the newly reauthenticated port. */
if (d->ctty.port != MACH_PORT_NULL
- && ! __io_reauthenticate (d->ctty.port,
- ref, MACH_MSG_TYPE_MAKE_SEND)
- && ! __USEPORT (AUTH, __auth_user_authenticate
- (port,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &newctty)))
+ && ! (err = __io_reauthenticate (d->ctty.port,
+ ref, MACH_MSG_TYPE_MAKE_SEND))
+ && ! (err = __USEPORT (AUTH, __auth_user_authenticate
+ (port,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &newctty))))
_hurd_port_set (&d->ctty, newctty);
_hurd_port_locked_set (&d->port, new);
@@ -334,6 +336,15 @@ reauth_dtable (void)
__spin_unlock (&d->port.lock);
__mach_port_destroy (__mach_task_self (), ref);
+
+ if (err == EINTR)
+ {
+ /* Got a signal while inside an RPC of the critical section,
+ retry again */
+ __mutex_unlock (&_hurd_dtable_lock);
+ HURD_CRITICAL_UNLOCK;
+ goto retry;
+ }
}
__mutex_unlock (&_hurd_dtable_lock);
commit e3ae80adbc626c4073a082e0205fdbb83033018a
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Aug 8 16:03:24 2023 +0200
hurd: Make error_t an int in C++
Making error_t defined to enum __error_t_codes conveniently makes the
debugger print symbolic values, but in C++ int is not interoperable with
enum __error_t_codes, leading to C++ application build issues, so let's
revert error_t to int in C++.
diff --git a/sysdeps/mach/hurd/bits/types/error_t.h b/sysdeps/mach/hurd/bits/types/error_t.h
index 380aa434d5..4a7bd452c8 100644
--- a/sysdeps/mach/hurd/bits/types/error_t.h
+++ b/sysdeps/mach/hurd/bits/types/error_t.h
@@ -24,6 +24,12 @@
#ifndef __error_t_defined
# define __error_t_defined 1
+#ifdef __cplusplus
+/* Unfortunately, in C++ int and enum __error_t_codes are not
+ interoperable... */
+typedef int error_t;
+#else
typedef enum __error_t_codes error_t;
+#endif
#endif
commit 49b308a26e2a9e02ef396f67f59c462ad4171ea4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Mon Nov 20 19:19:50 2023 +0100
hurd: Prevent the final file_exec_paths call from signals
Otherwise if the exec server started thrashing the old task,
we won't be able to restart the exec.
This notably fixes building ghc.
diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c
index e358d846c8..317d7ea0ad 100644
--- a/hurd/hurdexec.c
+++ b/hurd/hurdexec.c
@@ -362,6 +362,7 @@ retry:
if (!err)
{
int flags;
+ sigset_t old, new;
if (pdp)
{
@@ -420,6 +421,15 @@ retry:
if (__sigismember (&_hurdsig_traced, SIGKILL))
flags |= EXEC_SIGTRAP;
#endif
+
+ /* Avoid getting interrupted while exec(), notably not after the exec
+ server has committed to the exec and started thrashing us.
+
+ TODO Rather add proper interrupt support to the exec server, that
+ avoids interrupts in that period. */
+ __sigfillset (&new);
+ __sigprocmask (SIG_SETMASK, &new, &old);
+
err = __file_exec_paths (file, task, flags,
path ? path : "",
abspath ? abspath : "",
@@ -440,6 +450,8 @@ retry:
ints, INIT_INT_MAX,
please_dealloc, pdp - please_dealloc,
portnames, nportnames);
+
+ __sigprocmask (SIG_SETMASK, &old, NULL);
}
/* Release references to the standard ports. */
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
index 9516001817..58a89b45f3 100644
--- a/sysdeps/mach/hurd/spawni.c
+++ b/sysdeps/mach/hurd/spawni.c
@@ -812,6 +812,18 @@ retry:
inline error_t exec (file_t file)
{
+ sigset_t old, new;
+
+ /* Avoid getting interrupted while exec(), notably not after the exec
+ server has committed to the exec and started thrashing the task.
+
+ Various issues otherwise show up when building e.g. ghc.
+
+ TODO Rather add proper interrupt support to the exec server, that
+ avoids interrupts in that period. */
+ __sigfillset(&new);
+ __sigprocmask (SIG_SETMASK, &new, &old);
+
error_t err = __file_exec_paths
(file, task,
__sigismember (&_hurdsig_traced, SIGKILL) ? EXEC_SIGTRAP : 0,
@@ -824,7 +836,7 @@ retry:
/* Fallback for backwards compatibility. This can just be removed
when __file_exec goes away. */
if (err == MIG_BAD_ID)
- return __file_exec (file, task,
+ err = __file_exec (file, task,
(__sigismember (&_hurdsig_traced, SIGKILL)
? EXEC_SIGTRAP : 0),
args, argslen, env, envlen,
@@ -833,6 +845,8 @@ retry:
ints, INIT_INT_MAX,
NULL, 0, NULL, 0);
+ __sigprocmask (SIG_SETMASK, &old, NULL);
+
return err;
}
commit 5e4435f960bb681cbea853fb41043fabeeaea1b4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Aug 3 21:15:39 2023 +0200
tst-*glob*: Do not check d_name size
Posix says that d_name is of unspecified size, and sizeof(d_name)
should not be used. It is indeed only 1-byte long in bits/dirent.h. We
can instead explictly provide the actual allocated size to
__strcpy_chk.
diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c
index 937ad77da3..6559954247 100644
--- a/posix/tst-glob_lstat_compat.c
+++ b/posix/tst-glob_lstat_compat.c
@@ -173,7 +173,7 @@ my_readdir (void *gdir)
dir->d.d_type = filesystem[dir->idx].type;
- strcpy (dir->d.d_name, filesystem[dir->idx].name);
+ __strcpy_chk (dir->d.d_name, filesystem[dir->idx].name, NAME_MAX);
++dir->idx;
diff --git a/posix/tst-gnuglob-skeleton.c b/posix/tst-gnuglob-skeleton.c
index 557cfcbd2a..998fc2d94d 100644
--- a/posix/tst-gnuglob-skeleton.c
+++ b/posix/tst-gnuglob-skeleton.c
@@ -222,7 +222,7 @@ my_readdir (void *gdir)
dir->d.d_type = filesystem[dir->idx].type;
- strcpy (dir->d.d_name, filesystem[dir->idx].name);
+ __strcpy_chk (dir->d.d_name, filesystem[dir->idx].name, NAME_MAX);
if (test_verbose > 0)
printf ("info: my_readdir ({ level: %d, idx: %ld })"
commit 04bf7d2d8a79bf8d06ca811518688ccda190b376
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Aug 3 21:16:41 2023 +0200
chk: Add and fix hidden builtin definitions for *_chk
Otherwise on gnu-i686 there are unwanted PLT entries in libc.so when
fortification is enabled.
Tested for i686-gnu, x86_64-gnu, i686-linux-gnu and x86_64-linux-gnu
diff --git a/debug/longjmp_chk.c b/debug/longjmp_chk.c
index 1bc33c5769..c527e22db6 100644
--- a/debug/longjmp_chk.c
+++ b/debug/longjmp_chk.c
@@ -21,3 +21,4 @@
#define __libc_siglongjmp __longjmp_chk
#include <setjmp/longjmp.c>
+libc_hidden_def (__longjmp_chk)
diff --git a/debug/strncpy_chk.c b/debug/strncpy_chk.c
index cb142b820f..966df2739b 100644
--- a/debug/strncpy_chk.c
+++ b/debug/strncpy_chk.c
@@ -27,3 +27,4 @@ __strncpy_chk (char *s1, const char *s2, size_t n, size_t s1len)
return strncpy (s1, s2, n);
}
+libc_hidden_builtin_def (__strncpy_chk)
diff --git a/include/setjmp.h b/include/setjmp.h
index 26c6775d08..d2353be71b 100644
--- a/include/setjmp.h
+++ b/include/setjmp.h
@@ -11,6 +11,14 @@ extern void __longjmp (__jmp_buf __env, int __val)
extern void ____longjmp_chk (__jmp_buf __env, int __val)
__attribute__ ((__noreturn__)) attribute_hidden;
+extern void __longjmp_chk (sigjmp_buf env, int val)
+ __attribute__ ((noreturn)) attribute_hidden;
+/* The redirection in the installed header does not work with
+ libc_hidden_proto. */
+#define longjmp __longjmp_chk
+#define siglongjmp __longjmp_chk
+libc_hidden_proto (__longjmp_chk)
+
/* Internal function to possibly save the current mask of blocked signals
in ENV, and always set the flag saying whether or not it was saved.
This is used by the machine-dependent definition of `__sigsetjmp'.
diff --git a/include/stdlib.h b/include/stdlib.h
index 7deb8193d7..d1d00c0f6f 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -59,6 +59,8 @@ libc_hidden_proto (__isoc23_strtoull_l)
libc_hidden_proto. */
# undef strtol
# define strtol __isoc23_strtol
+# undef atoi
+# define atoi(nptr) __isoc23_strtol(nptr, NULL, 10)
# undef strtoul
# define strtoul __isoc23_strtoul
# undef strtoll
diff --git a/include/string.h b/include/string.h
index 659530d1aa..86d1fa4abe 100644
--- a/include/string.h
+++ b/include/string.h
@@ -214,6 +214,7 @@ libc_hidden_builtin_proto (__memmove_chk)
libc_hidden_builtin_proto (__mempcpy_chk)
libc_hidden_builtin_proto (__memset_chk)
libc_hidden_builtin_proto (__stpcpy_chk)
+libc_hidden_builtin_proto (__strncpy_chk)
#endif
diff --git a/setjmp/longjmp.c b/setjmp/longjmp.c
index 69f540ea22..24795ecbb5 100644
--- a/setjmp/longjmp.c
+++ b/setjmp/longjmp.c
@@ -19,6 +19,8 @@
#include <setjmpP.h>
#include <signal.h>
+#undef longjmp
+#undef siglongjmp
/* Set the signal mask to the one specified in ENV, and jump
to the position specified in ENV, causing the setjmp