Le 16/03/2018 à 22:54, Mark Greer a écrit :
When building a uImage or zImage using ppc6xx_defconfig and some other
defconfigs, the following error occurs:

   BOOTCC  arch/powerpc/boot/fdt.o
   In file included from arch/powerpc/boot/fdt.c:51:0:
   ../arch/powerpc/boot/libfdt_env.h:10:13: error: redefinition of typedef 
'uint32_t'
   ../arch/powerpc/boot/types.h:21:13: note: previous declaration of 'uint32_t' 
was here
   ../arch/powerpc/boot/libfdt_env.h:11:13: error: redefinition of typedef 
'uint64_t'
   ../arch/powerpc/boot/types.h:22:13: note: previous declaration of 'uint64_t' 
was here
   ../arch/powerpc/boot/Makefile:210: recipe for target 
'arch/powerpc/boot/fdt.o' failed
   make[2]: *** [arch/powerpc/boot/fdt.o] Error 1

The problem is that commit 656ad58ef19e (powerpc/boot: Add OPAL console
to epapr wrappers) adds typedefs for uint32_t and uint64_t to type.h but
doesn't remove the pre-existing (and now duplicate) typedefs from
libfdt_env.h.  Fix the error by removing the duplicat typedefs from
libfdt_env.h

CC: David Gibson <da...@gibson.dropbear.id.au>
CC: Oliver O'Halloran <ooh...@gmail.com>
Signed-off-by: Mark Greer <mgr...@animalcreek.com>
---
Having said all of that, commit 656ad58ef19e (powerpc/boot: Add OPAL
console to epapr wrappers) went into mainline back in 2016 so, AFAICT,
this has been broken since then.  That seems unlikely so I must be
missing something...  Any ideas what that is?

I just compiled uImage for ppc6xx_defconfig, and I don't get such error.
I looked at what gcc -E outputs, u32 is defined twice but it doesn't seems to bother GCC.

What version of GCC do you use ?
I tried with 5.4.0 and 4.6.3, both seems to work.

Christophe


I built all of the defconfigs that I had toolchains handy for (really
just old-fashioned ppc32, non-booke) so I didn't test everything.
Compile tested only as I no longer have any relevant hardware.

Based on git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux fixes
currently at e4b79900222b (powerpc/64s: Fix NULL AT_BASE_PLATFORM when
using DT CPU features).

  arch/powerpc/boot/libfdt_env.h | 2 --
  1 file changed, 2 deletions(-)

diff --git a/arch/powerpc/boot/libfdt_env.h b/arch/powerpc/boot/libfdt_env.h
index f52c31b1f48f..2a0c8b1bf147 100644
--- a/arch/powerpc/boot/libfdt_env.h
+++ b/arch/powerpc/boot/libfdt_env.h
@@ -7,8 +7,6 @@
#include "of.h" -typedef u32 uint32_t;
-typedef u64 uint64_t;
  typedef unsigned long uintptr_t;
typedef __be16 fdt16_t;

Reply via email to