qemu: fix build with glibc-2.25
PATCH 1/2 qemu: fix build with glibc-2.25
Signed-off-by Martin Jansa <[email protected]>
--- meta/recipes-devtools/qemu/qemu/glibc-2.25.patch | 88 ++++++++++++++++++++++++ meta/recipes-devtools/qemu/qemu_2.8.0.bb | 1 + 2 files changed, 89 insertions(+) create mode 100644 meta/recipes-devtools/qemu/qemu/glibc-2.25.patch
meta/recipes-devtools/qemu/qemu/glibc-2.25.patch new file +88 -0
@@ -0,0 +1,88 @@ +From: Christopher Covington +Date: Wed, 28 Dec 2016 15:04:33 -0500 +Subject: [Qemu-devel] [PATCH v3] build: include sys/sysmacros.h for major() and minor()a + +The definition of the major() and minor() macros are moving within glibc to +<sys/sysmacros.h>. Include this header when it is available to avoid the +following sorts of build-stopping messages: + +qga/commands-posix.c: In function ‘dev_major_minor’: +qga/commands-posix.c:656:13: error: In the GNU C Library, "major" is defined + by <sys/sysmacros.h>. For historical compatibility, it is + currently defined by <sys/types.h> as well, but we plan to + remove this soon. To use "major", include <sys/sysmacros.h> + directly. If you did not intend to use a system-defined macro + "major", you should undefine it after including <sys/types.h>. [-Werror] + *devmajor = major(st.st_rdev); + ^~~~~~~~~~~~~~~~~~~~~~~~~~ + +qga/commands-posix.c:657:13: error: In the GNU C Library, "minor" is defined + by <sys/sysmacros.h>. For historical compatibility, it is + currently defined by <sys/types.h> as well, but we plan to + remove this soon. To use "minor", include <sys/sysmacros.h> + directly. If you did not intend to use a system-defined macro + "minor", you should undefine it after including <sys/types.h>. [-Werror] + *devminor = minor(st.st_rdev); + ^~~~~~~~~~~~~~~~~~~~~~~~~~ + +The additional include allows the build to complete on Fedora 26 (Rawhide) +with glibc version 2.24.90. + +Signed-off-by: Christopher Covington <address@hidden> +Signed-off-by: Martin Jansa <[email protected]> + +Upstream-Status: Submitted https://lists.gnu.org/archive/html/qemu-devel/2016-12/msg03548.html + +diff -uNr qemu-2.8.0.orig/configure qemu-2.8.0/configure +--- qemu-2.8.0.orig/configure 2017-02-21 19:05:13.180094708 +0100 ++++ qemu-2.8.0/configure 2017-02-21 19:08:53.114087084 +0100 +@@ -4727,6 +4727,20 @@ + then + fi + + ########################################## ++# check for sysmacros.h ++ ++have_sysmacros=no ++cat > $TMPC << EOF ++#include <sys/sysmacros.h> ++int main(void) { ++ return makedev(0, 0); ++} ++EOF ++if compile_prog "" "" ; then ++ have_sysmacros=yes ++fi ++ ++########################################## + # End of CC checks + # After here, no more $cc or $ld runs + +diff -uNr qemu-2.8.0.orig/configure qemu-2.8.0/configure +--- qemu-2.8.0.orig/configure 2017-02-21 19:05:13.180094708 +0100 ++++ qemu-2.8.0/configure 2017-02-21 19:08:53.114087084 +0100 +@@ -5695,6 +5709,10 @@ + echo "CONFIG_AF_VSOCK=y" >> $config_host_mak + fi + ++if test "$have_sysmacros" = "yes" ; then ++ echo "CONFIG_SYSMACROS=y" >> $config_host_mak ++fi ++ + # Hold two types of flag: + # CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on + # a thread we have a handle to +diff -uNr qemu-2.8.0.orig/include/sysemu/os-posix.h qemu-2.8.0/include/sysemu/os-posix.h +--- qemu-2.8.0.orig/include/sysemu/os-posix.h 2016-12-20 21:16:48.000000000 +0100 ++++ qemu-2.8.0/include/sysemu/os-posix.h 2017-02-21 19:07:18.009090381 +0100 +@@ -34,6 +34,10 @@ + #include <netdb.h> + #include <sys/un.h> + ++#ifdef CONFIG_SYSMACROS ++#include <sys/sysmacros.h> ++#endif ++ + void os_set_line_buffering(void); + void os_set_proc_name(const char *s); + void os_setup_signal_handling(void);
meta/recipes-devtools/qemu/qemu_2.8.0.bb +1 -0
@@ -9,6 +9,7 @@ SRC_URI += "file://configure-fix-Darwin-target-detection.patch \ file://pathlimit.patch \ file://qemu-2.5.0-cflags.patch \ file://target-ppc-fix-user-mode.patch \ + file://glibc-2.25.patch \ " SRC_URI =+ "http://wiki.qemu-project.org/download/${BP}.tar.bz2"
Signature · 1 line
2.11.1
PATCH 2/2 e2fsprogs: Fix build with glibc-2.25
Signed-off-by Martin Jansa <[email protected]>
--- .../e2fsprogs/e2fsprogs-1.43-sysmacros.patch | 130 +++++++++++++++++++++ .../recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb | 1 + 2 files changed, 131 insertions(+) create mode 100644 meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-1.43-sysmacros.patch
meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-1.43-sysmacros.patch new file +130 -0
@@ -0,0 +1,130 @@ +From 30ef41f68703b6a16027cc8787118b87f1462dff Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <[email protected]> +Date: Mon, 28 Mar 2016 20:31:33 -0400 +Subject: [PATCH e2fsprogs] include sys/sysmacros.h as needed + +The minor/major/makedev macros are not entirely standard. glibc has had +the definitions in sys/sysmacros.h since the start, and wants to move away +from always defining them implicitly via sys/types.h (as this pollutes the +namespace in violation of POSIX). Other C libraries have already dropped +them. Since the configure script already checks for this header, use that +to pull in the header in files that use these macros. + +Signed-off-by: Mike Frysinger <[email protected]> + +Taken from gentoo portage. + +Upstream-Status: Pending + +--- + debugfs/debugfs.c | 3 +++ + lib/blkid/devname.c | 3 +++ + lib/blkid/devno.c | 3 +++ + lib/ext2fs/finddev.c | 3 +++ + lib/ext2fs/ismounted.c | 3 +++ + misc/create_inode.c | 4 ++++ + misc/mk_hugefiles.c | 3 +++ + 7 files changed, 22 insertions(+) + +diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c +index ba8be40..7d481bc 100644 +--- a/debugfs/debugfs.c ++++ b/debugfs/debugfs.c +@@ -26,6 +26,9 @@ extern char *optarg; + #include <errno.h> + #endif + #include <fcntl.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + + #include "debugfs.h" + #include "uuid/uuid.h" +diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c +index 3e2efa9..671e781 100644 +--- a/lib/blkid/devname.c ++++ b/lib/blkid/devname.c +@@ -36,6 +36,9 @@ + #if HAVE_SYS_MKDEV_H + #include <sys/mkdev.h> + #endif ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + #include <time.h> + + #include "blkidP.h" +diff --git a/lib/blkid/devno.c b/lib/blkid/devno.c +index 479d977..61e6fc7 100644 +--- a/lib/blkid/devno.c ++++ b/lib/blkid/devno.c +@@ -31,6 +31,9 @@ + #if HAVE_SYS_MKDEV_H + #include <sys/mkdev.h> + #endif ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + + #include "blkidP.h" + +diff --git a/lib/ext2fs/finddev.c b/lib/ext2fs/finddev.c +index 311608d..62fa0db 100644 +--- a/lib/ext2fs/finddev.c ++++ b/lib/ext2fs/finddev.c +@@ -31,6 +31,9 @@ + #if HAVE_SYS_MKDEV_H + #include <sys/mkdev.h> + #endif ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + + #include "ext2_fs.h" + #include "ext2fs.h" +diff --git a/lib/ext2fs/ismounted.c b/lib/ext2fs/ismounted.c +index e0f69dd..7404996 100644 +--- a/lib/ext2fs/ismounted.c ++++ b/lib/ext2fs/ismounted.c +@@ -49,6 +49,9 @@ + #if HAVE_SYS_TYPES_H + #include <sys/types.h> + #endif ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + + #include "ext2_fs.h" + #include "ext2fs.h" +diff --git a/misc/create_inode.c b/misc/create_inode.c +index 4dbd8e5..98aeb41 100644 +--- a/misc/create_inode.c ++++ b/misc/create_inode.c +@@ -22,6 +22,10 @@ + #include <attr/xattr.h> + #endif + #include <sys/ioctl.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif ++ + #include <ext2fs/ext2fs.h> + #include <ext2fs/ext2_types.h> + #include <ext2fs/fiemap.h> +diff --git a/misc/mk_hugefiles.c b/misc/mk_hugefiles.c +index 71a15c5..00e95cd 100644 +--- a/misc/mk_hugefiles.c ++++ b/misc/mk_hugefiles.c +@@ -35,6 +35,9 @@ extern int optind; + #include <sys/ioctl.h> + #include <sys/types.h> + #include <sys/stat.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++#include <sys/sysmacros.h> ++#endif + #include <libgen.h> + #include <limits.h> + #include <blkid/blkid.h> +-- +2.8.2 +
meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb +1 -0
@@ -7,6 +7,7 @@ SRC_URI += "file://acinclude.m4 \ file://ptest.patch \ file://mkdir.patch \ file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch \ + file://e2fsprogs-1.43-sysmacros.patch \ " SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch"
Signature · 1 line
2.11.1