diff --git a/glibc-rh1670028.patch b/glibc-rh1670028.patch deleted file mode 100644 index d1dbe3f..0000000 --- a/glibc-rh1670028.patch +++ /dev/null @@ -1,100 +0,0 @@ -resolv: Enable full ICMP error reporting for UDP DNS sockets - -The Linux kernel suppresses some ICMP error messages by default for UDP -sockets. This commit enables full ICMP error reporting, hopefully -resulting in faster timeouts. - -diff --git a/resolv/Makefile b/resolv/Makefile -index 8f22e6a154621238..ebe1b733f294a97c 100644 ---- a/resolv/Makefile -+++ b/resolv/Makefile -@@ -105,7 +105,7 @@ libresolv-routines := res_comp res_debug \ - res_data res_mkquery res_query res_send \ - inet_net_ntop inet_net_pton inet_neta base64 \ - ns_parse ns_name ns_netint ns_ttl ns_print \ -- ns_samedomain ns_date \ -+ ns_samedomain ns_date res_enable_icmp \ - compat-hooks compat-gethnamaddr - - libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \ -diff --git a/resolv/res_enable_icmp.c b/resolv/res_enable_icmp.c -new file mode 100644 -index 0000000000000000..bdc9220f08cef71d ---- /dev/null -+++ b/resolv/res_enable_icmp.c -@@ -0,0 +1,37 @@ -+/* Enable full ICMP errors on a socket. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+ -+int -+__res_enable_icmp (int family, int fd) -+{ -+ int one = 1; -+ switch (family) -+ { -+ case AF_INET: -+ return setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one)); -+ case AF_INET6: -+ return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one)); -+ default: -+ __set_errno (EAFNOSUPPORT); -+ return -1; -+ } -+} -diff --git a/resolv/res_send.c b/resolv/res_send.c -index fa040c1198fadce5..0f6ec83a7ba05986 100644 ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -943,6 +943,18 @@ reopen (res_state statp, int *terrno, int ns) - return (-1); - } - -+ /* Enable full ICMP error reporting for this -+ socket. */ -+ if (__res_enable_icmp (nsap->sa_family, -+ EXT (statp).nssocks[ns]) < 0) -+ { -+ int saved_errno = errno; -+ __res_iclose (statp, false); -+ __set_errno (saved_errno); -+ *terrno = saved_errno; -+ return -1; -+ } -+ - /* - * On a 4.3BSD+ machine (client and server, - * actually), sending to a nameserver datagram -diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h -index 6ab8f2af09a7ce0b..1500adc607f2ce3e 100644 ---- a/resolv/resolv-internal.h -+++ b/resolv/resolv-internal.h -@@ -100,4 +100,10 @@ libc_hidden_proto (__inet_pton_length) - /* Called as part of the thread shutdown sequence. */ - void __res_thread_freeres (void) attribute_hidden; - -+/* The Linux kernel does not enable all ICMP messages on a UDP socket -+ by default. A call this function enables full error reporting for -+ the socket FD. FAMILY must be AF_INET or AF_INET6. Returns 0 on -+ success, -1 on failure. */ -+int __res_enable_icmp (int family, int fd) attribute_hidden; -+ - #endif /* _RESOLV_INTERNAL_H */ diff --git a/glibc.spec b/glibc.spec index 0cbeb52..bfaf8d8 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,4 +1,4 @@ -%define glibcsrcdir glibc-2.29.9000-114-g0ddb7ea842 +%define glibcsrcdir glibc-2.29.9000-124-g38b52865d4 %define glibcversion 2.29.9000 # Pre-release tarballs are pulled in from git using a command that is # effectively: @@ -87,7 +87,7 @@ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 4%{?dist} +Release: 5%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -157,7 +157,6 @@ Patch17: glibc-cs-path.patch Patch18: glibc-c-utf8-locale.patch Patch23: glibc-python3.patch Patch28: glibc-rh1615608.patch -Patch29: glibc-rh1670028.patch Patch30: glibc-warning-fix.patch ############################################################################## @@ -1892,6 +1891,21 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared %changelog +* Wed Mar 13 2019 Florian Weimer - 2.29.9000-5 +- Drop glibc-rh1670028.patch, applied upstream +- Auto-sync with upstream branch master, + commit 38b52865d4ccfee3647f27e969e539a4396a73b1: +- elf: Add DF_1_KMOD, DF_1_WEAKFILTER, DF_1_NOCOMMON to +- resolv: Enable full ICMP errors for UDP DNS sockets [BZ #24047] +- C-SKY: add elf header definition for elfutils +- C-SKY: mark lr as undefined to stop unwinding +- C-SKY: remove user_regs definition +- C-SKY: fix sigcontext miss match +- Bug 24307: Update to Unicode 12.0.0 +- Break lines before not after operators, batch 4. +- check-wrapper-headers test: Adjust Fortran include file directory +- Fix location where math-vector-fortran.h is installed. + * Wed Mar 06 2019 DJ Delorie - 2.29.9000-4 - Auto-sync with upstream branch master, commit 0ddb7ea842abf63516b74d4b057c052afc6ba863.