Skip to content
Commits on Source (48)
glibc (2.28-11) UNRELEASED; urgency=medium
glibc (2.29-0experimental2) UNRELEASED; urgency=medium
 
[ Aurelien Jarno ]
* debian/patches/git-updates.diff: update from upstream stable branch:
- Fix math tests on alpha.
* debian/sysdeps/alpha.mk, debian/control.in/main: do not force build with
gcc-8.
* debian/testsuite-xfail-debian.mk: XFAIL narrowing add/sub tests, they
have always failed since they have been introduced.
* debian/control.in/libc: add a Breaks: iraf-fitsutil (<< 2018.07.06-4) to
libc0.1/0.3/6/6.1. See bug#939523.
* debian/testsuite-xfail-debian.mk: drop XFAILs related to the wrong value
of (MIN)SIGSTKSZ for 32-bit processes on arm64, now that (old-)stable
kernels are fixed.
[ Samuel Thibault ]
* debian/patches/hurd-i386/submitted-anon-mmap-shared.diff: Enable, now that
hurd 2017 is behind.
* control: Break old version of hurd package accordingly.
* debian/patches/hurd-i386/local-exec_filename.diff: Fix glibc 2.26
_hurd_exec_paths symbol visibility.
 
-- Samuel Thibault <sthibault@debian.org> Fri, 30 Aug 2019 01:30:00 +0200
-- Aurelien Jarno <aurel32@debian.org> Tue, 03 Sep 2019 21:49:38 +0200
glibc (2.29-0experimental1) experimental; urgency=medium
[ Aurelien Jarno ]
* debian/patches/hurd-i386/submitted-net.diff: rebase.
* debian/patches/hurd-i386/local-fix-nss.diff: rebase.
* debian/patches/git-updates.diff: update from upstream stable branch:
- Fix math tests on hppa.
* debian/testsuite-xfail-debian.mk: XFAIL two new tests on HPPA that are
due to a bug in the testsuite, reported upstream.
* debian/sysdeps/sparc64.mk: disable PIE on sparc64 as it produces broken
binaries, causing issues in the testsuite.
* debian/sysdeps/alpha.mk, debian/control.in/main: build with gcc-8 on alpha
as gcc-9 introduces math errors in the testsuite.
-- Aurelien Jarno <aurel32@debian.org> Wed, 21 Aug 2019 11:13:51 +0200
glibc (2.29-0experimental0) experimental; urgency=medium
[ Adam Conrad ]
* New upstream release 2.29, with git updates up to 2019-02-20:
- Add PF_XDP, AF_XDP and SOL_XDP to bits/socket.h. Closes: #933800.
- debian/symbols.wildcard: Add 2.29, and debian/control: Regenrate.
- debian/patches/localedata/locales_CH.diff: Applied upstream.
- debian/patches/localedata/submitted-it_IT-thousands_sep.diff: Upstreamed.
- debian/patches/localedata/git-en_US-date_fmt.diff: Applied upstream.
- debian/patches/hurd-i386/git-magic-pid.diff: Applied upstream.
- debian/patches/hurd-i386/git-interrupt_timeout_EIO.diff: Upstreamed.
- debian/patches/hurd-i386/git-interrupt_timeout.diff: Applied upstream.
- debian/patches/hurd-i386/git-intr-msg.diff: Applied upstream.
- debian/patches/hurd-i386/git-pci.diff: Applied upstream.
- debian/patches/hurd-i386/git-msync.diff: Applied upstream.
- debian/patches/hurd-i386/git-spawn-open.diff: Applied upstream.
- debian/patches/hurd-i386/git-tst-preadvwritev2-common.c.diff: Upstreamed.
- debian/patches/hurd-i386/git-fcntl64.diff: Applied upstream.
- debian/patches/hurd-i386/git-lockf-0.diff: Applied upstream.
- debian/patches/hurd-i386/git-libpthread_setpshared.diff: Upstreamed.
- debian/patches/hurd-i386/git-AT_EMPTY_PATH.diff: Applied upstream.
- debian/patches/hurd-i386/git-altstack.diff: Applied upstream.
- debian/patches/riscv64/git-thread-debugging.diff: Applied upstream.
- debian/patches/sparc/submitted-sparc64-socketcall.diff: Applied upstream.
- debian/patches/any/local-tst-mktime2.diff: Applied upstream.
- debian/patches/all/local-remove-manual.diff: Rebased.
- debian/patches/alpha/local-string-functions.diff: Rebased.
- debian/patches/any/git-libio-stdout-putc.diff: Rebased.
- debian/patches/hurd-i386/local-exec_filename.diff: Rebased.
- debian/patches/hurd-i386/local-hurdsig-globaldisp-version.diff: Rebased.
- debian/patches/hurd-i386/submitted-anon-mmap-shared.diff: Rebased.
- debian/patches/hurd-i386/tg-EGREGIOUS-fr.diff: Rebased.
- debian/patches/hurd-i386/tg-EIEIO-fr.diff: Rebased.
- debian/patches/hurd-i386/tg-hurdsig-global-dispositions.diff: Rebased.
- debian/patches/hurd-i386/tg-io_select_timeout.diff: Rebased.
- debian/patches/kfreebsd/submitted-auxv.diff: Rebased.
* debian/rules.d/build.mk: Switch to new localedata/install-locale-files:
- debian/patches/localedata/local-all-no-archive.diff: Dropped for above.
* debian/testsuite-xfail-debian.mk: XFAIL tst-thread-exit-clobber, and
tst-minsigstksz*, and tst-xsigstack on armhf, which fail on aarch64 hosts.
[ Samuel Thibault ]
* debian/patches/hurd-i386/submitted-net.diff: Rebased.
* debian/patches/hurd-i386/tg-bits_atomic.h_multiple_threads.diff: Rebased.
* debian/patches/hurd-i386/local-fix-nss.diff: Fix tst-nss-test3 test.
* debian/testsuite-xfail-debian.mk: Clean out test build failures, they are
now handled upstream. Clean out now-fixed tests.
[ Aurelien Jarno ]
* debian/patches/git-updates.diff: update from upstream stable branch:
- Fix build on alpha with recent kernel headers. Closes: #934823.
- debian/patches/any/git-libio-stdout-putc.diff: rebased.
* debian/control.in/main, debian/rules: drop the multiarch-support package.
Closes: #910669.
* debian/glibc-source.filelist, debian/libc6.symbols.powerpcspe,
debian/rules.d/control.mk, debian/sysdeps/powerpcspe.mk,
debian/testsuite-xfail-debian.mk: Drop the powerpcspe architecture, it is
not supported anymore by GCC 9 and will be removed in GLIBC 2.30.
* debian/rules: do not export SHELL, it is already set through configparms.
* debian/patches/git-pexpect-pretty-printers.diff: backport pretty printer
fix to support recent versions of GDB with color output.
* debian/testsuite-xfail-debian.mk: drop XFAILs that were due to kernel bugs
which are now fixed in both oldstable and stable kernels.
* debian/rules: drop -no-pie -fno-PIE options. This is now fully supported
by the GNU libc.
* debian/testsuite-xfail-debian.mk: drop XFAILs that have been fixed for
quite some time.
* debian/control.in/main, debian/rules: build with GCC 9.
* debian/sysdeps/mips*.mk: drop -mno-plt, but keep -mno-pie.
* debian/patches/any/git-socket-constants.diff: backport upstream change to
use in-tree copy of SO_ constants for !__USE_MISC to fix compatibility
with recent kernel headers.
* debian/shlibs-add-udebs: remove the udeb entries automatically added by
dh_makeshlibs before proceeding to workaround debhelper bugs#934889 and
#934891.
[ YunQiang Su ]
* Fix ld.so link on mips{64,n32}r6{,el}. Closes: #933513.
[ Sven Mueller ]
* debian/rules: honor noudeb build profile.
[ Josh Triplett ]
* debian/patches/any/submitted-ld.so-cache-new-format.diff: default to the
new format for ld.so.cache. Closes: #908946.
-- Aurelien Jarno <aurel32@debian.org> Fri, 16 Aug 2019 12:42:42 +0200
 
glibc (2.28-10) unstable; urgency=medium
 
......
......@@ -10,10 +10,10 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file,
hurd-dev (>= 1:0.9.git20181030-1) [hurd-i386] <!stage1> | libihash-dev [hurd-i386] <!stage1>,
kfreebsd-kernel-headers [kfreebsd-any],
binutils (>= 2.29),
g++-8, g++-8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
g++-9, g++-9-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
python3:native <!nocheck>,
libidn2-0 (>= 2.0.5~) <!nocheck>,
libc-bin (>= 2.28) <cross>
libc-bin (>= 2.29) <cross>
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>, Samuel Thibault <sthibault@debian.org>
......@@ -99,7 +99,7 @@ Package: locales
Architecture: all
Section: localization
Priority: standard
Depends: libc-bin (>> 2.28), libc-l10n (>> 2.28), ${misc:Depends}, debconf | debconf-2.0
Depends: libc-bin (>> 2.29), libc-l10n (>> 2.29), ${misc:Depends}, debconf | debconf-2.0
Replaces: manpages-fr-extra (<< 20141022)
Build-Profiles: <!stage1>
Description: GNU C Library: National Language (locale) data [support]
......@@ -117,7 +117,7 @@ Architecture: any
Section: localization
Priority: optional
Multi-Arch: foreign
Depends: libc-l10n (>> 2.28), ${misc:Depends}
Depends: libc-l10n (>> 2.29), ${misc:Depends}
Breaks: locales (<< 2.13-17)
Build-Profiles: <!stage1>
Description: GNU C Library: Precompiled locale data
......@@ -139,27 +139,8 @@ Description: GNU C Library: Name Service Cache Daemon
query. You should install this package only if you use
slow services like LDAP, NIS or NIS+.
Package: multiarch-support
Architecture: any
Section: oldlibs
Multi-Arch: foreign
Depends: ${misc:Depends},
libc6 (>= 2.3.6-2) [!any-i386 !alpha !armhf !hurd-any !ia64 !kfreebsd-any],
libc6.1 (>= 2.3.6-2) [alpha ia64],
libc0.3 (>= 2.3.6-2) [!linux-any !kfreebsd-any !hurd-i386],
libc0.1 (>= 2.3.6-2) [!linux-any !hurd-any !kfreebsd-i386],
libc6 (>= 2.13-5) [armhf i386],
libc0.3 (>= 2.13-5) [hurd-i386],
libc0.1 (>= 2.13-5) [kfreebsd-i386],
Priority: optional
Build-Profiles: <!stage1>
Description: Transitional package to ensure multiarch compatibility
This is a transitional package used to ensure multiarch support is present
in ld.so before unpacking libraries to the multiarch directories. It can
be removed once nothing on the system depends on it.
Package: libc6
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc powerpcspe ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Section: libs
Priority: optional
Multi-Arch: same
......@@ -168,7 +149,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386]
Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~)
Breaks: nscd (<< 2.28), locales (<< 2.28), locales-all (<< 2.28), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~)
Breaks: nscd (<< 2.29), locales (<< 2.29), locales-all (<< 2.29), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.1-i686 [kfreebsd-i386],
......@@ -191,7 +172,7 @@ Description: GNU C Library: Shared libraries
and the standard math library, as well as many others.
Package: libc6-dev
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc powerpcspe ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Section: libdevel
Priority: optional
Multi-Arch: same
......@@ -206,7 +187,7 @@ Description: GNU C Library: Development Libraries and Header Files
and link programs which use the standard C library.
Package: libc6-dbg
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc powerpcspe ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Section: debug
Priority: optional
Multi-Arch: same
......@@ -218,7 +199,7 @@ Description: GNU C Library: detached debugging symbols
library.
Package: libc6-pic
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc powerpcspe ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Section: libdevel
Priority: optional
Multi-Arch: same
......@@ -234,7 +215,7 @@ Description: GNU C Library: PIC archive library
Package: libc6-udeb
Package-Type: udeb
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc powerpcspe ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Architecture: amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el nios2 powerpc ppc64 ppc64el riscv64 sparc sparc64 s390x sh3 sh4 x32
Section: debian-installer
Priority: optional
Provides: libc6, libc-udeb, libnss-dns-udeb, libnss-files-udeb, ${locale-compat:Depends}
......@@ -257,7 +238,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386]
Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~)
Breaks: nscd (<< 2.28), locales (<< 2.28), locales-all (<< 2.28), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~)
Breaks: nscd (<< 2.29), locales (<< 2.29), locales-all (<< 2.29), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.1-i686 [kfreebsd-i386],
......@@ -346,7 +327,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386]
Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~)
Breaks: nscd (<< 2.28), locales (<< 2.28), locales-all (<< 2.28), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~)
Breaks: nscd (<< 2.29), locales (<< 2.29), locales-all (<< 2.29), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.1-i686 [kfreebsd-i386],
......@@ -435,7 +416,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386]
Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~)
Breaks: nscd (<< 2.28), locales (<< 2.28), locales-all (<< 2.28), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~)
Breaks: nscd (<< 2.29), locales (<< 2.29), locales-all (<< 2.29), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.1-i686 [kfreebsd-i386],
......
......@@ -8,7 +8,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386]
Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~)
Breaks: nscd (<< @GLIBC_VERSION@), locales (<< @GLIBC_VERSION@), locales-all (<< @GLIBC_VERSION@), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~)
Breaks: nscd (<< @GLIBC_VERSION@), locales (<< @GLIBC_VERSION@), locales-all (<< @GLIBC_VERSION@), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.1-i686 [kfreebsd-i386],
......
......@@ -10,7 +10,7 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file,
hurd-dev (>= 1:0.9.git20181030-1) [hurd-i386] <!stage1> | libihash-dev [hurd-i386] <!stage1>,
kfreebsd-kernel-headers [kfreebsd-any],
binutils (>= 2.29),
g++-8, g++-8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
g++-9, g++-9-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
python3:native <!nocheck>,
libidn2-0 (>= 2.0.5~) <!nocheck>,
libc-bin (>= @GLIBC_VERSION@) <cross>
......@@ -139,22 +139,3 @@ Description: GNU C Library: Name Service Cache Daemon
query. You should install this package only if you use
slow services like LDAP, NIS or NIS+.
Package: multiarch-support
Architecture: any
Section: oldlibs
Multi-Arch: foreign
Depends: ${misc:Depends},
libc6 (>= 2.3.6-2) [!any-i386 !alpha !armhf !hurd-any !ia64 !kfreebsd-any],
libc6.1 (>= 2.3.6-2) [alpha ia64],
libc0.3 (>= 2.3.6-2) [!linux-any !kfreebsd-any !hurd-i386],
libc0.1 (>= 2.3.6-2) [!linux-any !hurd-any !kfreebsd-i386],
libc6 (>= 2.13-5) [armhf i386],
libc0.3 (>= 2.13-5) [hurd-i386],
libc0.1 (>= 2.13-5) [kfreebsd-i386],
Priority: optional
Build-Profiles: <!stage1>
Description: Transitional package to ensure multiarch compatibility
This is a transitional package used to ensure multiarch support is present
in ld.so before unpacking libraries to the multiarch directories. It can
be removed once nothing on the system depends on it.
......@@ -67,7 +67,6 @@ debian/libc6.symbols.mipsn32r6el
debian/libc6.symbols.mipsr6
debian/libc6.symbols.mipsr6el
debian/libc6.symbols.powerpc
debian/libc6.symbols.powerpcspe
debian/libc6.symbols.ppc64
debian/libc6.symbols.ppc64el
debian/libc6.symbols.s390x
......
#include "libc6.symbols.common"
ld.so.1 #PACKAGE# #MINVER#
#include "symbols.wildcards"
### TLS support enabled in Debian upload 2.3.5
__tls_get_addr@GLIBC_2.3 2.3.5
libc.so.6 #PACKAGE# #MINVER#
#include "symbols.wildcards"
###
### Override headers already defined in libc6.symbols.common
###
libpthread.so.0 #PACKAGE# (>= 2.3.5), #PACKAGE# #MINVER#
#include "symbols.wildcards"
......@@ -221,4 +221,4 @@ Index: b/sysdeps/mach/hurd/Makefile
+$(hurd)/bits/errno-disabled.h: $(common-objpfx)stamp-errnos ;
$(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
$(mach-errnos-deps) $(common-objpfx)errnos.d
$(AWK) -f $^ > $(hurd)/bits/errno.h-tmp
mkdir -p $(hurd-objpfx)bits
......@@ -15,7 +15,7 @@ This patch removes them.
--- a/sysdeps/alpha/strncat.S
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
-/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson <rth@tamu.edu>, 1996.
-
......@@ -112,7 +112,7 @@ This patch removes them.
--- a/sysdeps/alpha/strncpy.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
-/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
- Contributed by Richard Henderson (rth@tamu.edu)
- This file is part of the GNU C Library.
-
......@@ -202,7 +202,7 @@ This patch removes them.
--- a/sysdeps/alpha/alphaev67/strncat.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
-/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
- Contributed by Richard Henderson <rth@tamu.edu>, 1996.
- EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
- This file is part of the GNU C Library.
......@@ -292,7 +292,7 @@ This patch removes them.
--- a/sysdeps/alpha/stpncpy.S
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
-/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@tamu.edu)
-
......@@ -401,7 +401,7 @@ This patch removes them.
--- a/sysdeps/alpha/alphaev67/stpncpy.S
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
-/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
- Contributed by Richard Henderson (rth@redhat.com)
- This file is part of the GNU C Library.
-
......@@ -519,7 +519,7 @@ This patch removes them.
--- a/sysdeps/alpha/strcmp.S
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
-/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
- Contributed by Richard Henderson (rth@tamu.edu)
- This file is part of the GNU C Library.
-
......@@ -716,7 +716,7 @@ This patch removes them.
--- a/sysdeps/alpha/strncmp.S
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
-/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
- Contributed by Richard Henderson (rth@tamu.edu)
- This file is part of the GNU C Library.
-
......
......@@ -13,13 +13,12 @@
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -64,7 +64,8 @@
bug-memstream1 bug-wmemstream1 \
@@ -65,7 +65,7 @@
tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \
tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \
- tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof
+ tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof \
+ tst-bz24051
tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof \
- tst-sprintf-ub tst-sprintf-chk-ub tst-wfile-sync
+ tst-sprintf-ub tst-sprintf-chk-ub tst-wfile-sync tst-bz24051
tests-internal = tst-vtables tst-vtables-interposed tst-readline
......
2019-02-14 Jan Kratochvil <jan.kratochvil@redhat.com>
* scripts/test_printers_common.py: Set TERM to a known harmless
value.
--- a/scripts/test_printers_common.py
+++ b/scripts/test_printers_common.py
@@ -60,6 +60,10 @@ TIMEOUTFACTOR = os.environ.get('TIMEOUTFACTOR')
if TIMEOUTFACTOR:
timeout = int(TIMEOUTFACTOR)
+# Otherwise GDB is run in interactive mode and readline may send escape
+# sequences confusing output for pexpect.
+os.environ["TERM"]="dumb"
+
try:
# Check the gdb version.
version_cmd = '{0} --version'.format(gdb_invocation, timeout=timeout)
2019-07-24 Florian Weimer <fweimer@redhat.com>
[BZ #24532]
Linux: Use in-tree copy of SO_ constants for !__USE_MISC.
* sysdeps/unix/sysv/linux/Makefile [$(subdir) == socket]
(sysdep_headers): Add bits/socket-constants.h.
(tests-special): Add tst-socket-consts.out.
(tst-socket-consts.out): New target.
* sysdeps/unix/sysv/linux/bits/socket.h: Remove macro tracking
around <asm/unistd.h>.
[__USE_MISC]: Include <bits/types/time_t.h> before <asm/socket.h>.
[!__USE_MISC]: Include <sys/socket-constants.h> instead of
<asm/socket.h>.
* sysdeps/unix/sysv/linux/bits/tst-socket-consts.py: New file.
* sysdeps/unix/sysv/linux/bits/socket-constants.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/socket-constants.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h:
Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h: Likewise.
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -146,11 +146,21 @@ endif
ifeq ($(subdir),socket)
sysdep_headers += net/if_ppp.h net/ppp-comp.h \
net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
- net/if_slip.h net/if_packet.h net/if_shaper.h
+ net/if_slip.h net/if_packet.h net/if_shaper.h \
+ bits/socket-constants.h
sysdep_routines += cmsg_nxthdr
CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
-endif
+
+tests-special += $(objpfx)tst-socket-consts.out
+$(objpfx)tst-socket-consts.out: ../sysdeps/unix/sysv/linux/tst-socket-consts.py
+ PYTHONPATH=../scripts \
+ $(PYTHON) ../sysdeps/unix/sysv/linux/tst-socket-consts.py \
+ --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
+ -DMODULE_NAME=testsuite, \
+ $(CPPFLAGS)) -D_ISOMAC" \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+endif # $(subdir) == socket
ifeq ($(subdir),sunrpc)
sysdep_headers += nfs/nfs.h
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for alpha.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 4116
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4112
+#define SO_RCVTIMEO 4114
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4113
+#define SO_SNDTIMEO 4115
+#define SO_TYPE 4104
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 1
+#define SO_ACCEPTCONN 30
+#define SO_BROADCAST 6
+#define SO_DONTROUTE 5
+#define SO_ERROR 4
+#define SO_KEEPALIVE 9
+#define SO_LINGER 13
+#define SO_OOBINLINE 10
+#define SO_RCVBUF 8
+#define SO_RCVLOWAT 18
+#define SO_RCVTIMEO 20
+#define SO_REUSEADDR 2
+#define SO_SNDBUF 7
+#define SO_SNDLOWAT 19
+#define SO_SNDTIMEO 21
+#define SO_TYPE 3
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -349,98 +349,12 @@ struct ucred
};
#endif
-/* Ugly workaround for unclean kernel headers. */
-#ifndef __USE_MISC
-# ifndef FIOGETOWN
-# define __SYS_SOCKET_H_undef_FIOGETOWN
-# endif
-# ifndef FIOSETOWN
-# define __SYS_SOCKET_H_undef_FIOSETOWN
-# endif
-# ifndef SIOCATMARK
-# define __SYS_SOCKET_H_undef_SIOCATMARK
-# endif
-# ifndef SIOCGPGRP
-# define __SYS_SOCKET_H_undef_SIOCGPGRP
-# endif
-# ifndef SIOCGSTAMP
-# define __SYS_SOCKET_H_undef_SIOCGSTAMP
-# endif
-# ifndef SIOCGSTAMPNS
-# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# endif
-# ifndef SIOCSPGRP
-# define __SYS_SOCKET_H_undef_SIOCSPGRP
-# endif
-#endif
-#ifndef IOCSIZE_MASK
-# define __SYS_SOCKET_H_undef_IOCSIZE_MASK
-#endif
-#ifndef IOCSIZE_SHIFT
-# define __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-#endif
-#ifndef IOC_IN
-# define __SYS_SOCKET_H_undef_IOC_IN
-#endif
-#ifndef IOC_INOUT
-# define __SYS_SOCKET_H_undef_IOC_INOUT
-#endif
-#ifndef IOC_OUT
-# define __SYS_SOCKET_H_undef_IOC_OUT
-#endif
-
-/* Get socket manipulation related informations from kernel headers. */
-#include <asm/socket.h>
-
-#ifndef __USE_MISC
-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
-# undef __SYS_SOCKET_H_undef_FIOGETOWN
-# undef FIOGETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
-# undef __SYS_SOCKET_H_undef_FIOSETOWN
-# undef FIOSETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
-# undef __SYS_SOCKET_H_undef_SIOCATMARK
-# undef SIOCATMARK
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
-# undef __SYS_SOCKET_H_undef_SIOCGPGRP
-# undef SIOCGPGRP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
-# undef __SYS_SOCKET_H_undef_SIOCGSTAMP
-# undef SIOCGSTAMP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# undef SIOCGSTAMPNS
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
-# undef __SYS_SOCKET_H_undef_SIOCSPGRP
-# undef SIOCSPGRP
-# endif
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef IOCSIZE_MASK
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef IOCSIZE_SHIFT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_IN
-# undef __SYS_SOCKET_H_undef_IOC_IN
-# undef IOC_IN
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef IOC_INOUT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_OUT
-# undef __SYS_SOCKET_H_undef_IOC_OUT
-# undef IOC_OUT
+#ifdef __USE_MISC
+# include <bits/types/time_t.h>
+# include <asm/socket.h>
+#else
+# define SO_DEBUG 1
+# include <bits/socket-constants.h>
#endif
/* Structure used to manipulate the SO_LINGER option. */
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for hppa.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 16412
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4100
+#define SO_RCVTIMEO 4102
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4099
+#define SO_SNDTIMEO 4101
+#define SO_TYPE 4104
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for MIPS.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 4105
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4100
+#define SO_RCVTIMEO 4102
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4099
+#define SO_SNDTIMEO 4101
+#define SO_TYPE 4104
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for POWER.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 1
+#define SO_ACCEPTCONN 30
+#define SO_BROADCAST 6
+#define SO_DONTROUTE 5
+#define SO_ERROR 4
+#define SO_KEEPALIVE 9
+#define SO_LINGER 13
+#define SO_OOBINLINE 10
+#define SO_RCVBUF 8
+#define SO_RCVLOWAT 16
+#define SO_RCVTIMEO 18
+#define SO_REUSEADDR 2
+#define SO_SNDBUF 7
+#define SO_SNDLOWAT 17
+#define SO_SNDTIMEO 19
+#define SO_TYPE 3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for SPARC.
+ Copyright (C) 2019 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 32768
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 2048
+#define SO_RCVTIMEO 8192
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4096
+#define SO_SNDTIMEO 16384
+#define SO_TYPE 4104
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-socket-consts.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python3
+# Test that glibc's sys/socket.h SO_* constants match the kernel's.
+# Copyright (C) 2018-2019 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
+# <http://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's sys/socket.h constants "
+ "match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+
+ def check(define):
+ return glibcextract.compare_macro_consts(
+ source_1=define + '#include <sys/socket.h>\n',
+ # Some constants in <asm/socket.h> may depend on the size
+ # of pid_t or time_t.
+ source_2='#include <sys/types.h>\n'
+ '#include <asm/socket.h>\n',
+ cc=args.cc,
+ # We cannot compare all macros because some macros cannot
+ # be expanded as constants, and glibcextract currently is
+ # not able to isolate errors.
+ macro_re='SOL?_.*',
+ # <sys/socket.h> and <asm/socket.h> are not a good match.
+ # Most socket-related constants are not defined in any
+ # UAPI header. Check only the intersection of the macros
+ # in both headers. Regular tests ensure that expected
+ # macros for _GNU_SOURCE are present, and the conformance
+ # tests cover most of the other modes.
+ allow_extra_1=True,
+ allow_extra_2=True)
+ # _GNU_SOURCE is defined by include/libc-symbols.h, which is
+ # included by the --cc command. Defining _ISOMAC does not prevent
+ # that.
+ status = max(
+ check(''),
+ check('#undef _GNU_SOURCE\n'),
+ check('#undef _GNU_SOURCE\n'
+ '#define _POSIX_SOURCE 1\n'))
+ sys.exit(status)
+
+if __name__ == '__main__':
+ main()
---
time/tst-mktime2.c | 1 +
1 file changed, 1 insertion(+)
--- a/time/tst-mktime2.c
+++ b/time/tst-mktime2.c
@@ -4,6 +4,7 @@
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
+#include <limits.h>
/* True if the arithmetic type T is signed. */
#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
2018-09-16 Josh Triplett <josh@joshtriplett.org>
* elf/ldconfig.c: Default to the new format for ld.so.cache. glibc has
supported this format for 18+ years.
* elf/dl-cache.c (_dl_load_cache_lookup): Reorder conditionals to look
for the new format first.
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -203,7 +203,14 @@ _dl_load_cache_lookup (const char *name)
- the old format with the new format in it
- only the new format
The following checks if the cache contains any of these formats. */
- if (file != MAP_FAILED && cachesize > sizeof *cache
+ if (file != MAP_FAILED && cachesize > sizeof *cache_new
+ && memcmp (file, CACHEMAGIC_VERSION_NEW,
+ sizeof CACHEMAGIC_VERSION_NEW - 1) == 0)
+ {
+ cache_new = file;
+ cache = file;
+ }
+ else if (file != MAP_FAILED && cachesize > sizeof *cache
&& memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0
/* Check for corruption, avoiding overflow. */
&& ((cachesize - sizeof *cache) / sizeof (struct file_entry)
@@ -223,13 +230,6 @@ _dl_load_cache_lookup (const char *name)
sizeof CACHEMAGIC_VERSION_NEW - 1) != 0)
cache_new = (void *) -1;
}
- else if (file != MAP_FAILED && cachesize > sizeof *cache_new
- && memcmp (file, CACHEMAGIC_VERSION_NEW,
- sizeof CACHEMAGIC_VERSION_NEW - 1) == 0)
- {
- cache_new = file;
- cache = file;
- }
else
{
if (file != MAP_FAILED)
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -95,7 +95,7 @@ int opt_verbose;
/* Format to support. */
/* 0: only libc5/glibc2; 1: both; 2: only glibc 2.2. */
-int opt_format = 1;
+int opt_format = 2;
/* Build cache. */
static int opt_build_cache = 1;
@@ -148,7 +148,7 @@ static const struct argp_option options[] =
{ NULL, 'f', N_("CONF"), 0, N_("Use CONF as configuration file"), 0},
{ NULL, 'n', NULL, 0, N_("Only process directories specified on the command line. Don't build cache."), 0},
{ NULL, 'l', NULL, 0, N_("Manually link individual libraries."), 0},
- { "format", 'c', N_("FORMAT"), 0, N_("Format to use: new, old or compat (default)"), 0},
+ { "format", 'c', N_("FORMAT"), 0, N_("Format to use: new (default), old, or compat"), 0},
{ "ignore-aux-cache", 'i', NULL, 0, N_("Ignore auxiliary cache file"), 0},
{ NULL, 0, NULL, 0, NULL, 0 }
};
This diff is collapsed.
commit ee4d79026da2c21c75cccd5795cb4357643f4f5c
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Jan 22 23:38:36 2019 +0100
hurd: Support AT_EMPTY_PATH
* hurd/lookup-at.c (__file_name_lookup_at): When at_flags contains
AT_EMPTY_PATH, call __dir_lookup and __hurd_file_name_lookup_retry
directly instead of __hurd_file_name_lookup.
diff --git a/hurd/lookup-at.c b/hurd/lookup-at.c
index 813ebee8e5..3e6980f949 100644
--- a/hurd/lookup-at.c
+++ b/hurd/lookup-at.c
@@ -28,6 +28,9 @@ __file_name_lookup_at (int fd, int at_flags,
{
error_t err;
file_t result;
+ int empty = at_flags & AT_EMPTY_PATH;
+
+ at_flags &= ~AT_EMPTY_PATH;
err = __hurd_at_flags (&at_flags, &flags);
if (err)
@@ -36,6 +39,23 @@ __file_name_lookup_at (int fd, int at_flags,
if (fd == AT_FDCWD || file_name[0] == '/')
return __file_name_lookup (file_name, flags, mode);
+ if (empty != 0 && file_name[0] == '\0')
+ {
+ enum retry_type doretry;
+ char retryname[1024]; /* XXX string_t LOSES! */
+
+ err = HURD_DPORT_USE (fd, __dir_lookup (port, "", flags, mode,
+ &doretry, retryname,
+ &result));
+
+ if (! err)
+ err = __hurd_file_name_lookup_retry (&_hurd_ports_use, &__getdport,
+ NULL, doretry, retryname,
+ flags, mode, &result);
+
+ return err ? (__hurd_dfail (fd, err), MACH_PORT_NULL) : result;
+ }
+
file_t startdir;
error_t use_init_port (int which, error_t (*operate) (mach_port_t))
{
commit a0bb5abd09e3d0f66c3dccf70bf74c8b2d7cc1c2
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Jan 24 19:27:00 2019 +0100
hurd: Fix initial sigaltstack state
* hurd/hurdsig.c (_hurd_thread_sigstate): Set SS_DISABLE in
sigaltstack.ss_flags.
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 1d9516a2f7..1e4b3466ce 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -92,6 +92,7 @@ _hurd_thread_sigstate (thread_t thread)
__sigemptyset (&ss->blocked);
__sigemptyset (&ss->pending);
memset (&ss->sigaltstack, 0, sizeof (ss->sigaltstack));
+ ss->sigaltstack.ss_flags |= SS_DISABLE;
ss->preemptors = NULL;
ss->suspended = MACH_PORT_NULL;
ss->intr_port = MACH_PORT_NULL;
commit 346ef23f197a0c8ba807c344bd39101b711050ee
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Nov 15 00:52:36 2018 +0100
hurd: Fix F_*LK* fcntl with __USE_FILE_OFFSET64
struct flock64 uses 64bit values. This introduces other values for F_GETLK,
F_SETLK, F_SETLKW to distinguish between both.
* sysdeps/mach/hurd/bits/fcntl.h (F_GETLK64, F_SETLK64, F_SETLKW64): New
macros
[__USE_FILE_OFFSET64] (F_GETLK, F_SETLK, F_SETLKW): Define to F_GETLK64,
F_SETLK64, F_SETLKW64, respectively.
* sysdeps/mach/hurd/f_setlk.c: New file.
* sysdeps/mach/hurd/f_setlk.h: New file.
* sysdeps/mach/hurd/Makefile [$(subdir) = io] (sysdeps_routines): Add
f_setlk.
* sysdeps/mach/hurd/fcntl.c: Include "f_setlk.h".h".
(__libc_fcntl): Move non-flock operations to...
* sysdeps/mach/hurd/vfcntl.c (__libc_vfcntl): ... New file.
Index: glibc-2.28/sysdeps/mach/hurd/Makefile
===================================================================
--- glibc-2.28.orig/sysdeps/mach/hurd/Makefile
+++ glibc-2.28/sysdeps/mach/hurd/Makefile
@@ -194,6 +194,10 @@ ifeq (hurd, $(subdir))
sysdep_routines += cthreads
endif
+ifeq (io, $(subdir))
+sysdep_routines += f_setlk
+endif
+
ifeq ($(subdir),sunrpc)
sysdep_headers += nfs/nfs.h
endif
Index: glibc-2.28/sysdeps/mach/hurd/bits/fcntl.h
===================================================================
--- glibc-2.28.orig/sysdeps/mach/hurd/bits/fcntl.h
+++ glibc-2.28/sysdeps/mach/hurd/bits/fcntl.h
@@ -163,9 +163,18 @@
# define F_GETOWN 5 /* Get owner (receiver of SIGIO). */
# define F_SETOWN 6 /* Set owner (receiver of SIGIO). */
#endif
-#define F_GETLK 7 /* Get record locking info. */
-#define F_SETLK 8 /* Set record locking info (non-blocking). */
-#define F_SETLKW 9 /* Set record locking info (blocking). */
+#ifdef __USE_FILE_OFFSET64
+# define F_GETLK F_GETLK64
+# define F_SETLK F_SETLK64
+# define F_SETLKW F_SETLKW64
+#else
+# define F_GETLK 7 /* Get record locking info. */
+# define F_SETLK 8 /* Set record locking info (non-blocking). */
+# define F_SETLKW 9 /* Set record locking info (blocking). */
+#endif
+#define F_GETLK64 10 /* Get record locking info. */
+#define F_SETLK64 11 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 12 /* Set record locking info (blocking). */
#ifdef __USE_XOPEN2K8
# define F_DUPFD_CLOEXEC 1030 /* Duplicate, set FD_CLOEXEC on new one. */
Index: glibc-2.28/sysdeps/mach/hurd/f_setlk.c
===================================================================
--- /dev/null
+++ glibc-2.28/sysdeps/mach/hurd/f_setlk.c
@@ -0,0 +1,69 @@
+/* f_setlk -- locking part of fcntl
+ Copyright (C) 2014-2015 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
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <errno.h>
+
+/* XXX
+ We need new RPCs to support POSIX.1 fcntl file locking!!
+ For the time being we support the whole-file case only,
+ with all kinds of WRONG WRONG WRONG semantics,
+ by using flock. This is definitely the Wrong Thing,
+ but it might be better than nothing (?). */
+int
+__f_setlk (int fd, int type, int whence, __off64_t start, __off64_t len, int wait)
+{
+ int cmd = 0;
+
+ switch (type)
+ {
+ case F_RDLCK: cmd = LOCK_SH; break;
+ case F_WRLCK: cmd = LOCK_EX; break;
+ case F_UNLCK: cmd = LOCK_UN; break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (cmd != LOCK_UN && wait == 0)
+ cmd |= LOCK_NB;
+
+ switch (whence)
+ {
+ case SEEK_SET:
+ if (start == 0 && len == 0) /* Whole file request. */
+ break;
+ /* It seems to be common for applications to lock the first
+ byte of the file when they are really doing whole-file locking.
+ So, since it's so wrong already, might as well do that too. */
+ if (start == 0 && len == 1)
+ break;
+ /* FALLTHROUGH */
+ case SEEK_CUR:
+ case SEEK_END:
+ errno = ENOTSUP;
+ return -1;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ return __flock (fd, cmd);
+}
Index: glibc-2.28/sysdeps/mach/hurd/f_setlk.h
===================================================================
--- /dev/null
+++ glibc-2.28/sysdeps/mach/hurd/f_setlk.h
@@ -0,0 +1,23 @@
+/* Copyright (C) 2014-2015 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _F_SETLK_H
+#define _F_SETLK_H 1
+
+extern int __f_setlk (int fd, int type, int whence, __off64_t start, __off64_t len, int wait);
+
+#endif /* f_setlk.h */
Index: glibc-2.28/sysdeps/mach/hurd/fcntl.c
===================================================================
--- glibc-2.28.orig/sysdeps/mach/hurd/fcntl.c
+++ glibc-2.28/sysdeps/mach/hurd/fcntl.c
@@ -21,6 +21,7 @@
#include <hurd/fd.h>
#include <stdarg.h>
#include <sys/file.h> /* XXX for LOCK_* */
+#include "f_setlk.h"
/* Perform file control operations on FD. */
int
@@ -128,56 +129,50 @@ __libc_fcntl (int fd, int cmd, ...)
case F_SETLK:
case F_SETLKW:
{
- /* XXX
- We need new RPCs to support POSIX.1 fcntl file locking!!
- For the time being we support the whole-file case only,
- with all kinds of WRONG WRONG WRONG semantics,
- by using flock. This is definitely the Wrong Thing,
- but it might be better than nothing (?). */
struct flock *fl = va_arg (ap, struct flock *);
+ int wait = 0;
va_end (ap);
switch (cmd)
{
case F_GETLK:
errno = ENOSYS;
return -1;
+ case F_SETLKW:
+ wait = 1;
+ /* FALLTHROUGH */
case F_SETLK:
- cmd = LOCK_NB;
- break;
- default:
- cmd = 0;
+ return __f_setlk (fd, fl->l_type, fl->l_whence,
+ fl->l_start, fl->l_len, wait);
break;
- }
- switch (fl->l_type)
- {
- case F_RDLCK: cmd |= LOCK_SH; break;
- case F_WRLCK: cmd |= LOCK_EX; break;
- case F_UNLCK: cmd |= LOCK_UN; break;
default:
errno = EINVAL;
return -1;
}
- switch (fl->l_whence)
+ }
+
+ case F_GETLK64:
+ case F_SETLK64:
+ case F_SETLKW64:
+ {
+ struct flock64 *fl = va_arg (ap, struct flock64 *);
+ int wait = 0;
+ va_end (ap);
+ switch (cmd)
{
- case SEEK_SET:
- if (fl->l_start == 0 && fl->l_len == 0) /* Whole file request. */
- break;
- /* It seems to be common for applications to lock the first
- byte of the file when they are really doing whole-file locking.
- So, since it's so wrong already, might as well do that too. */
- if (fl->l_start == 0 && fl->l_len == 1)
- break;
- /* FALLTHROUGH */
- case SEEK_CUR:
- case SEEK_END:
- errno = ENOTSUP;
+ case F_GETLK64:
+ errno = ENOSYS;
return -1;
+ case F_SETLKW64:
+ wait = 1;
+ /* FALLTHROUGH */
+ case F_SETLK64:
+ return __f_setlk (fd, fl->l_type, fl->l_whence,
+ fl->l_start, fl->l_len, wait);
+ break;
default:
errno = EINVAL;
return -1;
}
-
- return __flock (fd, cmd);
}
case F_GETFL: /* Get per-open flags. */
@@ -215,3 +210,4 @@ strong_alias (__libc_fcntl, __libc_fcntl
libc_hidden_def (__libc_fcntl64)
weak_alias (__libc_fcntl64, __fcntl64)
libc_hidden_weak (__fcntl64)
+weak_alias (__fcntl64, fcntl64)
Index: glibc-2.28/sysdeps/mach/hurd/fcntl64.c
===================================================================
--- /dev/null
+++ glibc-2.28/sysdeps/mach/hurd/fcntl64.c
@@ -0,0 +1 @@
+/* fcntl64 is defined in fcntl.c as an alias. */
commit 6849ff19657e8f7e6a83e9aaae07eb45269dc7d4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Oct 9 22:27:59 2018 +0200
hurd: set interrupt timeout to 1 minute
Seeing a server not able to get interrupted for 3s is not so surprising when
e.g. a lot of writes are happening. 1 minute allows to actually notice the
issue and be able to debug it.
* hurd/hurdsig.c (_hurd_interrupted_rpc_timeout): Set to 60000.
---
hurd/hurdsig.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -56,7 +56,7 @@ struct hurd_sigstate *_hurd_sigstates;
struct hurd_sigstate *_hurd_global_sigstate;
/* Timeout for RPC's after interrupt_operation. */
-mach_msg_timeout_t _hurd_interrupted_rpc_timeout = 3000;
+mach_msg_timeout_t _hurd_interrupted_rpc_timeout = 60000;
static void
default_sigaction (struct sigaction actions[NSIG])
commit 16d61b858ec0e802008d721e150e48d6083d3921
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Oct 9 22:25:19 2018 +0200
hurd: Return EIEIO on non-responding interrupted servers
since we do not actually know whether the RPC was completed or not,
which makes a huge difference for e.g. write(), so better really error
out than letting caller think that the RPC did not happen.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): When the server does not
answer to interrupt_operation, return EIEIO instead of EINTR.
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c
index 2f83ac6ce7..1f7724ee8b 100644
--- a/hurd/intr-msg.c
+++ b/hurd/intr-msg.c
@@ -141,7 +141,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
else
/* The operation was supposedly interrupted, but still has
not returned. Declare it interrupted. */
- goto interrupted;
+ goto dead;
case MACH_SEND_INTERRUPTED: /* RPC didn't get out. */
if (!(option & MACH_SEND_MSG))
@@ -324,17 +324,21 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
timeout = user_timeout;
goto message;
}
- /* FALLTHROUGH */
+ err = EINTR;
+
+ /* The EINTR return indicates cancellation, so clear the flag. */
+ ss->cancel = 0;
+ break;
case MACH_RCV_PORT_DIED:
/* Server didn't respond to interrupt_operation,
so the signal thread destroyed the reply port. */
/* FALLTHROUGH */
- interrupted:
- err = EINTR;
+ dead:
+ err = EIEIO;
- /* The EINTR return indicates cancellation, so clear the flag. */
+ /* The EIEIO return indicates cancellation, so clear the flag. */
ss->cancel = 0;
break;
commit 32ad5b3328e0ce53ca27e185a89ca44c1d0acd0c
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue Oct 9 23:40:09 2018 +0200
hurd: Fix race between calling RPC and handling a signal
* sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Make
_hurd_intr_rpc_msg_about_to global point to start of controlled
assembly snippet. Make it check canceled flag again.
* hurd/hurdsig.c (_hurdsig_abort_rpcs): Only mutate thread if it passed the
_hurd_intr_rpc_msg_about_to point.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Remove comment on mutation
issue.
---
hurd/hurdsig.c | 4 +++-
hurd/intr-msg.c | 17 ++---------------
sysdeps/mach/hurd/i386/intr-msg.h | 23 ++++++++++++++++-------
3 files changed, 21 insertions(+), 23 deletions(-)
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -439,6 +439,7 @@ _hurdsig_abort_rpcs (struct hurd_sigstat
struct machine_thread_all_state *state, int *state_change,
void (*reply) (void))
{
+ extern const void _hurd_intr_rpc_msg_about_to;
extern const void _hurd_intr_rpc_msg_in_trap;
mach_port_t rcv_port = MACH_PORT_NULL;
mach_port_t intr_port;
@@ -454,7 +455,8 @@ _hurdsig_abort_rpcs (struct hurd_sigstat
receive completes immediately or aborts. */
abort_thread (ss, state, reply);
- if (state->basic.PC < (natural_t) &_hurd_intr_rpc_msg_in_trap)
+ if (state->basic.PC >= (natural_t) &_hurd_intr_rpc_msg_about_to &&
+ state->basic.PC < (natural_t) &_hurd_intr_rpc_msg_in_trap)
{
/* The thread is about to do the RPC, but hasn't yet entered
mach_msg. Mutate the thread's state so it knows not to try
--- a/hurd/intr-msg.c
+++ b/hurd/intr-msg.c
@@ -114,23 +114,10 @@ _hurd_intr_rpc_mach_msg (mach_msg_header
message:
- /* XXX
- At all points here (once SS->intr_port is set), the signal thread
- thinks we are "about to enter the syscall", and might mutate our
- return-value register. This is bogus.
- */
-
- if (ss->cancel)
- {
- /* We have been cancelled. Don't do an RPC at all. */
- ss->intr_port = MACH_PORT_NULL;
- ss->cancel = 0;
- return EINTR;
- }
-
/* Note that the signal trampoline code might modify our OPTION! */
err = INTR_MSG_TRAP (msg, option, send_size,
- rcv_size, rcv_name, timeout, notify);
+ rcv_size, rcv_name, timeout, notify,
+ &ss->cancel, &ss->intr_port);
switch (err)
{
--- a/sysdeps/mach/hurd/i386/intr-msg.h
+++ b/sysdeps/mach/hurd/i386/intr-msg.h
@@ -20,21 +20,30 @@
/* Note that we must mark OPTION and TIMEOUT as outputs of this operation,
to indicate that the signal thread might mutate them as part
of sending us to a signal handler. */
-#define INTR_MSG_TRAP(msg, option, send_size, rcv_size, rcv_name, timeout, notify) \
+
+/* After _hurd_intr_rpc_msg_about_to we need to make a last check of cancel, in
+ case we got interrupted right before _hurd_intr_rpc_msg_about_to. */
+#define INTR_MSG_TRAP(msg, option, send_size, rcv_size, rcv_name, timeout, notify, cancel_p, intr_port_p) \
({ \
error_t err; \
- asm (".globl _hurd_intr_rpc_msg_do_trap\n" \
- ".globl _hurd_intr_rpc_msg_in_trap\n" \
+ asm (".globl _hurd_intr_rpc_msg_about_to\n" \
".globl _hurd_intr_rpc_msg_cx_sp\n" \
+ ".globl _hurd_intr_rpc_msg_do_trap\n" \
+ ".globl _hurd_intr_rpc_msg_in_trap\n" \
".globl _hurd_intr_rpc_msg_sp_restored\n" \
- " movl %%esp, %%ecx\n" \
- " leal %3, %%esp\n" \
+ "_hurd_intr_rpc_msg_about_to: cmpl $0, %5\n" \
+ " jz _hurd_intr_rpc_msg_do\n" \
+ " movl $0, %3\n" \
+ " movl %6, %%eax\n" \
+ " jmp _hurd_intr_rpc_msg_sp_restored\n" \
+ "_hurd_intr_rpc_msg_do: movl %%esp, %%ecx\n" \
+ " leal %4, %%esp\n" \
"_hurd_intr_rpc_msg_cx_sp: movl $-25, %%eax\n" \
"_hurd_intr_rpc_msg_do_trap: lcall $7, $0 # status in %0\n" \
"_hurd_intr_rpc_msg_in_trap: movl %%ecx, %%esp\n" \
"_hurd_intr_rpc_msg_sp_restored:" \
- : "=a" (err), "+m" (option), "+m" (timeout) \
- : "m" ((&msg)[-1]) \
+ : "=a" (err), "+m" (option), "+m" (timeout), "=m" (*intr_port_p) \
+ : "m" ((&msg)[-1]), "m" (*cancel_p), "i" (EINTR) \
: "ecx"); \
err; \
})