gluon/patches/openwrt/0170-tools-m4-fix-compilation-with-glibc-2.28.patch
Linus Lüssing 0a150e97d4 openwrt: update tools to LEDE v17.01.6 to fix compile issues
This updates:

* m4
* bison
* e2fsprogs
* make_ext4fs
* mtd-utils
* findutils
* squashfs
* squashfs4
* grub2

to their version used in LEDE v17.01.6. This fixes various compile
errors appearing on Debian Sid.

A list of the patches picked from upstream:

m4:

$ git log --oneline f7e56763e1..HEAD tools/m4
6e78c5502c tools: m4: fix compilation with glibc 2.28
a91d8dd162 tools/m4: update 1.4.18
f19d47f848 tools: patch various gnu tools for macOS 10.13
720b99215d treewide: clean up download hashes

bison:

$ git log --oneline 877f2972d4..HEAD tools/bison
1e09cbf118 tools/bison: Update to 3.0.5
f19d47f848 tools: patch various gnu tools for macOS 10.13
720b99215d treewide: clean up download hashes
5062cff673 tools/bison: update to 3.0.4

e2fsprogs:

$ git log --oneline f7e56763e1..HEAD tools/e2fsprogs/
8f5c55f63e tools/e2fsprogs: update to 1.44.1
d35a7bf4b4 e2fsprogs: bump to 1.44.0
79ac69d9c9 tools/e2fsprogs: Update to 1.43.7
5d9114c9cb tools/e2fsprogs: Update to 1.43.6
7955fab22a tools/e2fsprogs: Update to 1.43.5
866e5b4956 tools/e2fsprogs: Update to 1.43.4
a964738a5c Revert "tools/e2fsprogs: fix building on a glibc 2.27 host"
58a95f0f8f tools/e2fsprogs: fix building on a glibc 2.27 host
720b99215d treewide: clean up download hashes
b8b807b1a9 tools/e2fsprogs: Update to 1.43.3
d635ef50c5 e2fsprogs: fix build problem with very old libmagic
819cf75c40 tools: e2fsprogs: bump to 1.43.1
2baf90a84e tools/e2fsprogs: remove outdated configure args
b7e946f33e tools/e2fsprogs: update to 1.42.13
52ea491bdf tools/e2fsprogs: add a darwin-compat patch

make-ext4fs:

$ git log --oneline 1170a3de76..HEAD tools/make-ext4fs/
c7c1cf5618 treewide: clean up and unify PKG_VERSION for git based downloads
720b99215d treewide: clean up download hashes
9edfe7dd13 source: Switch to xz for packages and tools where possible
95bad62f2a tools: make_ext4fs: switch to LEDE git mirror
98b960c218 tools: make_ext4fs: support creating empty filesystem images
9ec4ca525c tools: make-ext4fs: fix build regression on mac os x
49ad0c565a tools: fix make_ext4fs build with recent glibc
8af9119ff4 tools: make-ext4fs: explicitely request C collation for sorting
01fb448d56 tools/make-ext4fs: prefer static linking

$ git log --oneline 17ae95bb20..HEAD tools/mtd-utils
96dbf59e5a tools/mtd-utils: include sysmacros.h explicitly
018d80007e kernel: remove ubifs xz decompression support
c7c1cf5618 treewide: clean up and unify PKG_VERSION for git based downloads
720b99215d treewide: clean up download hashes
9edfe7dd13 source: Switch to xz for packages and tools where possible
e27c8bb156 update mtd-utils to 1.5.2

$ git log --oneline dd86bc73fb..HEAD tools/findutils
6449ed1553 tools: findutils: fix compilation with glibc 2.28
d2fd6412a6 tools/findutils: include sysmacros.h explicitly
720b99215d treewide: clean up download hashes
70a5c062f1 tools/findutils: Update to 4.6.0

$ git log --oneline f7e56763e1..HEAD tools/squashfs tools/squashfs4
1aedf2f149 tools/squashfs: use host cflags
8a48a53dcb tools/squashfs4: include sysmacros.h explicitly
8406e50df5 tools/squashfs: include sysmacros.h explicitly
720b99215d treewide: clean up download hashes
f97ad870e1 squashfs4: use upstream xz compression header format
d437c72c21 tools/squashfs4: refresh patches
34124de139 tools/squashfs: refresh patches
fd1c1b4918 tools/squashfs: add argument -fixed-time to set all timestamps

$ git log --oneline fcc6f801ca..HEAD package/boot/grub2/
2252731af4 grub2: rebase patches
6aae528cc3 grub2: Fix CVE-2015-8370
6e1e2e7b96 package/grub2: update to 2.02
10182cb2c6 grub2: update to 2.02~rc2
f0e8470aa9 grub2: update to 2.02~rc1
806d3cc2c3 packages: mark packages depending on a target as nonshared
65c8f2890c grub2: upgrade to 2.02-beta3 (3 years newer than previous)
77812cdfec grub2: disable 'check-macro-version' build rule in 'po' build
2b54fa4dff grub2: do not generate mkfonts at build time
b33845b2da grub2: add PKG_FIXUP:=autoreconf
720b99215d treewide: clean up download hashes
3c52cbfa53 Revert "grub2: add PKG_FIXUP:=autoreconf"
a0ea22ac43 grub2: add PKG_FIXUP:=autoreconf
f2752f4735 grub2: add missing SECTION variable and remove non breaking space
d140648622 grub2: move to Boot Loaders category
59e3a4714a grub2: switch back to installing to STAGING_DIR_HOST
9b01282515 grub2: disable stack-protector
25eddec9cb grub2: fix build against musl

$ git log --oneline 81a2f9d6f86
81a2f9d6f8 target/linux/x86/image: add explicit prefix to grub-mkimage command

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-04-20 06:04:16 +02:00

134 lines
5.6 KiB
Diff

From: Luis Araneda <luaraneda@gmail.com>
Date: Wed, 8 Aug 2018 22:32:45 -0400
Subject: tools: m4: fix compilation with glibc 2.28
Add a temporary workaround to compile with glibc 2.28
as some constants were removed and others made private
Signed-off-by: Luis Araneda <luaraneda@gmail.com>
diff --git a/tools/m4/patches/010-glibc-change-work-around.patch b/tools/m4/patches/010-glibc-change-work-around.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0ef6216965c4ea91043b75fdcfd278794d130c99
--- /dev/null
+++ b/tools/m4/patches/010-glibc-change-work-around.patch
@@ -0,0 +1,118 @@
+Subject: Workaround change in glibc
+
+Temporary workaround to compile with glibc 2.28, which
+deprecated some constants
+
+Taken from the rpms/m4 Fedora repository, commit 814d5921
+(Work around change in glibc)
+
+Original filename: m4-1.4.18-glibc-change-work-around.patch
+
+--- a/lib/stdio-impl.h
++++ b/lib/stdio-impl.h
+@@ -18,6 +18,12 @@
+ the same implementation of stdio extension API, except that some fields
+ have different naming conventions, or their access requires some casts. */
+
++/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
++ problem by defining it ourselves. FIXME: Do not rely on glibc
++ internals. */
++#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
++# define _IO_IN_BACKUP 0x100
++#endif
+
+ /* BSD stdio derived implementations. */
+
+--- a/lib/fflush.c
++++ b/lib/fflush.c
+@@ -33,7 +33,7 @@
+ #undef fflush
+
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+
+ /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
+ static void
+@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
+
+ #endif
+
+-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
++#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
+
+ # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
+ if (stream == NULL || ! freading (stream))
+ return fflush (stream);
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+
+ clear_ungetc_buffer_preserving_position (stream);
+
+--- a/lib/fpending.c
++++ b/lib/fpending.c
+@@ -32,7 +32,7 @@ __fpending (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ return fp->_IO_write_ptr - fp->_IO_write_base;
+ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+--- a/lib/fpurge.c
++++ b/lib/fpurge.c
+@@ -62,7 +62,7 @@ fpurge (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_IO_read_end = fp->_IO_read_ptr;
+ fp->_IO_write_ptr = fp->_IO_write_base;
+ /* Avoid memory leak when there is an active ungetc buffer. */
+--- a/lib/freadahead.c
++++ b/lib/freadahead.c
+@@ -25,7 +25,7 @@
+ size_t
+ freadahead (FILE *fp)
+ {
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ if (fp->_IO_write_ptr > fp->_IO_write_base)
+ return 0;
+ return (fp->_IO_read_end - fp->_IO_read_ptr)
+--- a/lib/freading.c
++++ b/lib/freading.c
+@@ -31,7 +31,7 @@ freading (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ return ((fp->_flags & _IO_NO_WRITES) != 0
+ || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
+ && fp->_IO_read_base != NULL));
+--- a/lib/fseeko.c
++++ b/lib/fseeko.c
+@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when
+ #endif
+
+ /* These tests are based on fpurge.c. */
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ if (fp->_IO_read_end == fp->_IO_read_ptr
+ && fp->_IO_write_ptr == fp->_IO_write_base
+ && fp->_IO_save_base == NULL)
+@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when
+ return -1;
+ }
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_flags &= ~_IO_EOF_SEEN;
+ fp->_offset = pos;
+ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__