Fix build with both new and old fdt

This commit is contained in:
Cole Robinson 2013-06-13 14:57:15 -04:00
parent 05409c7381
commit 562b652dea
3 changed files with 85 additions and 56 deletions

View File

@ -1,54 +0,0 @@
From f93b077671cbdabd16fc05bb33d9e49110fb0e63 Mon Sep 17 00:00:00 2001
From: Cole Robinson <crobinso@redhat.com>
Date: Wed, 12 Jun 2013 12:33:48 -0400
Subject: [PATCH] Remove libfdt_env, use system version
Seems to conflict with newer libfdt, see discussion here:
https://bugzilla.redhat.com/show_bug.cgi?id=969955
---
include/libfdt_env.h | 36 ------------------------------------
1 file changed, 36 deletions(-)
delete mode 100644 include/libfdt_env.h
diff --git a/include/libfdt_env.h b/include/libfdt_env.h
deleted file mode 100644
index 3667d4c..0000000
--- a/include/libfdt_env.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright IBM Corp. 2008
- * Authors: Hollis Blanchard <hollisb@us.ibm.com>
- *
- */
-
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
-
-#include "qemu/bswap.h"
-
-#ifdef HOST_WORDS_BIGENDIAN
-#define fdt32_to_cpu(x) (x)
-#define cpu_to_fdt32(x) (x)
-#define fdt64_to_cpu(x) (x)
-#define cpu_to_fdt64(x) (x)
-#else
-#define fdt32_to_cpu(x) bswap32(x)
-#define cpu_to_fdt32(x) bswap32(x)
-#define fdt64_to_cpu(x) bswap64(x)
-#define cpu_to_fdt64(x) bswap64(x)
-#endif
-
-#endif /* _LIBFDT_ENV_H */

View File

@ -0,0 +1,80 @@
From 53800f1a71cdbc9e0deadd00e77d5d60a45ab999 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@linaro.org>
Date: Tue, 7 May 2013 14:36:59 +0200
Subject: [PATCH] fdt: update embedded header file from upstream to fix
compilation
Upstream dtc.git introduced a change in libfdt_env.h, which breaks
compilation with QEMU's version of it:
CC arm-softmmu/device_tree.o
In file included from /usr/include/libfdt.h:55:0,
from /src/qemu.git/device_tree.c:28:
/usr/include/fdt.h:7:2: error: unknown type name 'fdt32_t'
...
The culprit is:
commit feafcd972cb744750a65728440c99526e6199a6d
Author: Kim Phillips <kim.phillips@freescale.com>
Date: Wed Nov 28 17:33:01 2012 -0600
dtc/libfdt: introduce fdt types for annotation by endian checkers
...
Pull the new definitions into QEMU's version of the file. This change
also works with older installed versions of dtc.
The upstream version got a "GPL or BSD" dual license header meanwhile.
I retained the original GPL license header from QEMU, only added
the original copyrights.
Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
---
include/libfdt_env.h | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/include/libfdt_env.h b/include/libfdt_env.h
index 3667d4c..aad54bb 100644
--- a/include/libfdt_env.h
+++ b/include/libfdt_env.h
@@ -1,4 +1,12 @@
+#ifndef _LIBFDT_ENV_H
+#define _LIBFDT_ENV_H
/*
+ * libfdt - Flat Device Tree manipulation
+ * Copyright (C) 2006 David Gibson, IBM Corporation.
+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
+ * Adaptation to QEMU: Copyright IBM Corp. 2008
+ * by Hollis Blanchard <hollisb@us.ibm.com>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2, as
* published by the Free Software Foundation.
@@ -11,16 +19,23 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
- * Copyright IBM Corp. 2008
- * Authors: Hollis Blanchard <hollisb@us.ibm.com>
*
*/
-#ifndef _LIBFDT_ENV_H
-#define _LIBFDT_ENV_H
-
#include "qemu/bswap.h"
+#ifdef __CHECKER__
+#define __force __attribute__((force))
+#define __bitwise __attribute__((bitwise))
+#else
+#define __force
+#define __bitwise
+#endif
+
+typedef uint16_t __bitwise fdt16_t;
+typedef uint32_t __bitwise fdt32_t;
+typedef uint64_t __bitwise fdt64_t;
+
#ifdef HOST_WORDS_BIGENDIAN
#define fdt32_to_cpu(x) (x)
#define cpu_to_fdt32(x) (x)

View File

@ -140,7 +140,7 @@
Summary: QEMU is a FAST! processor emulator
Name: qemu
Version: 1.5.0
Release: 6%{?dist}
Release: 7%{?dist}
Epoch: 2
License: GPLv2+ and LGPLv2+ and BSD
Group: Development/Tools
@ -191,7 +191,7 @@ Patch0005: 0005-qxl-Add-rom_size-compat-property-fix-migration-from-.patch
# Fix rtl8139 + windows 7 + large transfers (bz #970240)
Patch0006: 0006-rtl8139-flush-queued-packets-when-RxBufPtr-is-writte.patch
# Fix build with rawhide libfdt
Patch0007: 0007-Remove-libfdt_env-use-system-version.patch
Patch0007: 0007-fdt-update-embedded-header-file-from-upstream-to-fix.patch
BuildRequires: SDL-devel
BuildRequires: zlib-devel
@ -1372,6 +1372,9 @@ getent passwd qemu >/dev/null || \
%endif
%changelog
* Thu Jun 13 2013 Cole Robinson <crobinso@redhat.com> - 2:1.5.0-7
- Fix build with both new and old fdt
* Wed Jun 12 2013 Cole Robinson <crobinso@redhat.com> - 2:1.5.0-6
- Fix build with rawhide libfdt