Skip to content
Commits on Source (8)
......@@ -2,6 +2,7 @@ glibc (2.29-0experimental0) UNRELEASED; 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.
......@@ -47,6 +48,7 @@ glibc (2.29-0experimental0) UNRELEASED; urgency=medium
 
[ 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.
......@@ -61,10 +63,24 @@ glibc (2.29-0experimental0) UNRELEASED; urgency=medium
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.
[ 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.
-- Adam Conrad <adconrad@0c3.net> Wed, 20 Feb 2019 01:22:52 -0700
 
glibc (2.28-10) unstable; urgency=medium
......
......@@ -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 (>= 2.29) <cross>
......
......@@ -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>
......
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()
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 }
};
GIT update of https://sourceware.org/git/glibc.git/release/2.29/master from glibc-2.29
diff --git a/ChangeLog b/ChangeLog
index 59dab18463..026f1d6b9e 100644
index 59dab18463..9ef062f6c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,282 @@
@@ -1,3 +1,289 @@
+2019-08-15 Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__NR_shmat):
+ Do not redefine.
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_osf_shmat):
+ Do not redefine.
+
+2019-07-15 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #24699]
......@@ -291,10 +298,11 @@ diff --git a/NEWS b/NEWS
index 912a9bdc0f..21520414d7 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,50 @@ See the end for copying conditions.
@@ -4,6 +4,50 @@ See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
+
+Version 2.29.1
+
+Major new features:
......@@ -338,10 +346,9 @@ index 912a9bdc0f..21520414d7 100644
+ via proceed_next_node in posix/regexec.c leads to heap-based buffer
+ over-read. Reported by Hongxu Chen.
+
+
Version 2.29
Major new features:
diff --git a/Rules b/Rules
index 1562f2ce6d..16afa6acaa 100644
--- a/Rules
......@@ -4920,10 +4927,23 @@ index 282b8c5117..64ee267fc7 100644
_dl_printf ("AT_HWCAP: ");
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index 0b0a94af2c..46178c5636 100644
index 0b0a94af2c..fc8407c8ab 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -45,7 +45,6 @@
@@ -26,8 +26,10 @@
#undef __ASSUME_STATFS64
#define __ASSUME_STATFS64 0
-/* Alpha defines SysV ipc shmat syscall with a different name. */
-#define __NR_shmat __NR_osf_shmat
+/* Alpha used to define SysV ipc shmat syscall with a different name. */
+#ifndef __NR_shmat
+# define __NR_shmat __NR_osf_shmat
+#endif
#define __ASSUME_RECV_SYSCALL 1
#define __ASSUME_SEND_SYSCALL 1
@@ -45,7 +47,6 @@
/* Support for copy_file_range, statx was added in kernel 4.13. */
#if __LINUX_KERNEL_VERSION < 0x040D00
# undef __ASSUME_MLOCK2
......@@ -4931,6 +4951,21 @@ index 0b0a94af2c..46178c5636 100644
# undef __ASSUME_STATX
#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
index dcf2d1e3d7..d61d4df550 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -51,7 +51,9 @@
* Some syscalls no Linux program should know about:
*/
#define __NR_osf_sigprocmask 48
-#define __NR_osf_shmat 209
+#ifndef __NR_osf_shmat
+# define __NR_osf_shmat 209
+#endif
#define __NR_osf_getsysinfo 256
#define __NR_osf_setsysinfo 257
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
index 66c00297b7..05c62c8687 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
......
......@@ -139,3 +139,5 @@ any/submitted-resolv-unaligned.diff
any/local-cudacc-float128.diff
any/git-libio-stdout-putc.diff
any/git-pexpect-pretty-printers.diff
any/git-socket-constants.diff
any/submitted-ld.so-cache-new-format.diff
......@@ -94,7 +94,7 @@ mvec = no
BASE_CC = gcc
BASE_CXX = g++
BASE_MIG = mig
DEB_GCC_VERSION ?= -8
DEB_GCC_VERSION ?= -9
RUN_TESTSUITE = yes
TIMEOUTFACTOR = 25
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# multilib flavours
ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES)))
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib64
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib64
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib64
......@@ -60,7 +60,7 @@ endef
# create a symlink for the 32 bit dynamic linker in /lib
define libc6-mips32_extra_pkg_install
mkdir -p debian/libc6-mips32/lib
ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib
ln -sf /libo32/ld-linux-mipsn8.so.1 debian/libc6-mips32/lib
endef
endif # multilib
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib64
......@@ -60,7 +60,7 @@ endef
# create a symlink for the 32 bit dynamic linker in /lib
define libc6-mips32_extra_pkg_install
mkdir -p debian/libc6-mips32/lib
ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib
ln -sf /libo32/ld-linux-mipsn8.so.1 debian/libc6-mips32/lib
endef
endif # multilib
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# multilib flavours
ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES)))
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib32
......@@ -12,7 +12,6 @@ GLIBC_PASSES += mips64
DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64
libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver))
mips64_configure_target = mips64-linux-gnuabi64
mips64_extra_cflags = -mno-plt
mips64_CC = $(CC) -mabi=64
mips64_CXX = $(CXX) -mabi=64
mips64_rtlddir = /lib64
......@@ -24,7 +23,6 @@ GLIBC_PASSES += mips32
DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32
libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
mips32_configure_target = mips-linux-gnu
mips32_extra_cflags = -mno-plt
mips32_CC = $(CC) -mabi=32
mips32_CXX = $(CXX) -mabi=32
mips32_rtlddir = /lib
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib32
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib32
......@@ -12,7 +12,6 @@ GLIBC_PASSES += mips64
DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64
libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver))
mips64_configure_target = mipsisa64r6-linux-gnuabi64
mips64_extra_cflags = -mno-plt
mips64_CC = $(CC) -mabi=64
mips64_CXX = $(CXX) -mabi=64
mips64_rtlddir = /lib64
......@@ -24,7 +23,6 @@ GLIBC_PASSES += mips32
DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32
libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
mips32_configure_target = mipsisa32r6-linux-gnu
mips32_extra_cflags = -mno-plt
mips32_CC = $(CC) -mabi=32
mips32_CXX = $(CXX) -mabi=32
mips32_rtlddir = /lib
......@@ -62,7 +60,7 @@ endef
# create a symlink for the 32 bit dynamic linker in /lib
define libc6-mips32_extra_pkg_install
mkdir -p debian/libc6-mips32/lib
ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib
ln -sf /libo32/ld-linux-mipsn8.so.1 debian/libc6-mips32/lib
endef
endif # multilib
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# main library
libc_rtlddir = /lib32
......@@ -60,7 +60,7 @@ endef
# create a symlink for the 32 bit dynamic linker in /lib
define libc6-mips32_extra_pkg_install
mkdir -p debian/libc6-mips32/lib
ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib
ln -sf /libo32/ld-linux-mipsn8.so.1 debian/libc6-mips32/lib
endef
endif # multilib
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# multilib flavours
ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES)))
......
# configuration options for all flavours
extra_cflags = -mno-plt
CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie
# multilib flavours
ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES)))
......