[Buildroot] failure to build kernel: error: redefinition of ‘fdt16_to_cpu’

Niall Parker stuff at npengineering.ca
Fri Oct 26 23:29:55 UTC 2018


Hello,

I'm trying to build an updated kernel for a board based of the 
beaglebone and while tag 4.9.56-ti-r70 builds OK, any of the newer tags 
is failing. The tag I am focusing on is 4.14.71-ti-r80 (used by the 
Debian distro for BBB).

As shown in log below, the compile fails with a redefinition and sounded 
like an earlier conflict between host dtc tools but I am running the 
latest BR (master) and the fixes appear to be in place.

Any suggestions or pointers appreciated, thanks.

      ... Niall


8<----

/usr/bin/make -j1 O=/opt/buildroot/output HOSTCC="/usr/bin/gcc" 
HOSTCXX="/usr/bin/g++" silentoldconfig
 >>> linux 4.14.71-ti-r80 Building
cp -f 
/home/niall/work/NPES/AML/br2-external/board/motherBoard/dts/am33xx-AMLmb.dtsi 
/opt/buildroot/output/build/linux-4.14.71-ti-r80/arch/arm/boot/dts/
cp -f 
/home/niall/work/NPES/AML/br2-external/board/motherBoard/dts/am335x-common-AMLmb.dtsi 
/opt/buildroot/output/build/linux-4.14.71-ti-r80/arch/arm/boot/dts/
cp -f 
/home/niall/work/NPES/AML/br2-external/board/motherBoard/dts/am335x-boneblack-wl1835-AMLmb.dtsi 
/opt/buildroot/output/build/linux-4.14.71-ti-r80/arch/arm/boot/dts/
cp -f 
/home/niall/work/NPES/AML/br2-external/board/motherBoard/dts/am335x-AMLmb.dts 
/opt/buildroot/output/build/linux-4.14.71-ti-r80/arch/arm/boot/dts/
PATH="/opt/buildroot/output/host/bin:/opt/buildroot/output/host/sbin:/home/niall/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin" 
BR_BINARIES_DIR=/opt/buildroot/output/images /usr/bin/make -j5 
HOSTCC="/opt/buildroot/output/host/bin/ccache /usr/bin/gcc -O2 
-I/opt/buildroot/output/host/include -L/opt/buildroot/output/host/lib 
-Wl,-rpath,/opt/buildroot/output/host/lib" ARCH=arm 
INSTALL_MOD_PATH=/opt/buildroot/output/target 
CROSS_COMPILE="/opt/buildroot/output/host/bin/arm-linux-gnueabihf-" 
DEPMOD=/opt/buildroot/output/host/sbin/depmod INSTALL_MOD_STRIP=1 -C 
/opt/buildroot/output/build/linux-4.14.71-ti-r80 zImage
   CHK     include/config/kernel.release
   CHK     include/generated/uapi/linux/version.h
   CHK     include/generated/utsrelease.h
   CHK     scripts/mod/devicetable-offsets.h
   HOSTCC  scripts/dtc/dtc-lexer.lex.o
   HOSTCC  scripts/dtc/dtc-parser.tab.o
   HOSTCC  scripts/dtc/libfdt/fdt_rw.o
   HOSTCC  scripts/dtc/libfdt/fdt.o
   HOSTCC  scripts/dtc/libfdt/fdt_sw.o
   HOSTCC  scripts/dtc/libfdt/fdt_empty_tree.o
   HOSTCC  scripts/dtc/libfdt/fdt_overlay.o
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:82:24: error: 
redefinition of ‘fdt16_to_cpu’
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of 
‘fdt16_to_cpu’ was here
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:86:23: error: 
redefinition of ‘cpu_to_fdt16’
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:85:23: note: previous definition of 
‘cpu_to_fdt16’ was here
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:91:24: error: 
redefinition of ‘fdt32_to_cpu’
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:90:24: note: previous definition of 
‘fdt32_to_cpu’ was here
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:95:23: error: 
redefinition of ‘cpu_to_fdt32’
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:94:23: note: previous definition of 
‘cpu_to_fdt32’ was here
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:100:24: error: 
redefinition of ‘fdt64_to_cpu’
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:99:24: note: previous definition of 
‘fdt64_to_cpu’ was here
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:104:23: error: 
redefinition of ‘cpu_to_fdt64’
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:103:23: note: previous definition of 
‘cpu_to_fdt64’ was here
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
scripts/Makefile.host:119: recipe for target 'scripts/dtc/libfdt/fdt.o' 
failed
make[4]: *** [scripts/dtc/libfdt/fdt.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:82:24: error: 
redefinition of ‘fdt16_to_cpu’
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of 
‘fdt16_to_cpu’ was here
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:86:23: error: 
redefinition of ‘cpu_to_fdt16’
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:85:23: note: previous definition of 
‘cpu_to_fdt16’ was here
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:91:24: error: 
redefinition of ‘fdt32_to_cpu’
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:90:24: note: previous definition of 
‘fdt32_to_cpu’ was here
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:95:23: error: 
redefinition of ‘cpu_to_fdt32’
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:94:23: note: previous definition of 
‘cpu_to_fdt32’ was here
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:100:24: error: 
redefinition of ‘fdt64_to_cpu’
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:99:24: note: previous definition of 
‘fdt64_to_cpu’ was here
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_rw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:104:23: error: 
redefinition of ‘cpu_to_fdt64’
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_rw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:103:23: note: previous definition of 
‘cpu_to_fdt64’ was here
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
scripts/Makefile.host:119: recipe for target 
'scripts/dtc/libfdt/fdt_rw.o' failed
make[4]: *** [scripts/dtc/libfdt/fdt_rw.o] Error 1
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:82:24: error: 
redefinition of ‘fdt16_to_cpu’
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of 
‘fdt16_to_cpu’ was here
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:86:23: error: 
redefinition of ‘cpu_to_fdt16’
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:85:23: note: previous definition of 
‘cpu_to_fdt16’ was here
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:91:24: error: 
redefinition of ‘fdt32_to_cpu’
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:90:24: note: previous definition of 
‘fdt32_to_cpu’ was here
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:95:23: error: 
redefinition of ‘cpu_to_fdt32’
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:94:23: note: previous definition of 
‘cpu_to_fdt32’ was here
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:100:24: error: 
redefinition of ‘fdt64_to_cpu’
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:99:24: note: previous definition of 
‘fdt64_to_cpu’ was here
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_empty_tree.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:104:23: error: 
redefinition of ‘cpu_to_fdt64’
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_empty_tree.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:103:23: note: previous definition of 
‘cpu_to_fdt64’ was here
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:82:24: error: 
redefinition of ‘fdt16_to_cpu’
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of 
‘fdt16_to_cpu’ was here
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:86:23: error: 
redefinition of ‘cpu_to_fdt16’
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:85:23: note: previous definition of 
‘cpu_to_fdt16’ was here
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:91:24: error: 
redefinition of ‘fdt32_to_cpu’
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:90:24: note: previous definition of 
‘fdt32_to_cpu’ was here
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:95:23: error: 
redefinition of ‘cpu_to_fdt32’
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:94:23: note: previous definition of 
‘cpu_to_fdt32’ was here
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:100:24: error: 
redefinition of ‘fdt64_to_cpu’
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:99:24: note: previous definition of 
‘fdt64_to_cpu’ was here
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_sw.c:54:
/opt/buildroot/output/host/include/libfdt_env.h:104:23: error: 
redefinition of ‘cpu_to_fdt64’
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_sw.c:51:0:
scripts/dtc/libfdt/libfdt_env.h:103:23: note: previous definition of 
‘cpu_to_fdt64’ was here
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
scripts/Makefile.host:119: recipe for target 
'scripts/dtc/libfdt/fdt_empty_tree.o' failed
make[4]: *** [scripts/dtc/libfdt/fdt_empty_tree.o] Error 1
scripts/Makefile.host:119: recipe for target 
'scripts/dtc/libfdt/fdt_sw.o' failed
make[4]: *** [scripts/dtc/libfdt/fdt_sw.o] Error 1
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:82:24: error: 
redefinition of ‘fdt16_to_cpu’
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of 
‘fdt16_to_cpu’ was here
  static inline uint16_t fdt16_to_cpu(fdt16_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:86:23: error: 
redefinition of ‘cpu_to_fdt16’
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:85:23: note: previous definition of 
‘cpu_to_fdt16’ was here
  static inline fdt16_t cpu_to_fdt16(uint16_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:91:24: error: 
redefinition of ‘fdt32_to_cpu’
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:90:24: note: previous definition of 
‘fdt32_to_cpu’ was here
  static inline uint32_t fdt32_to_cpu(fdt32_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:95:23: error: 
redefinition of ‘cpu_to_fdt32’
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:94:23: note: previous definition of 
‘cpu_to_fdt32’ was here
  static inline fdt32_t cpu_to_fdt32(uint32_t x)
                        ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:100:24: error: 
redefinition of ‘fdt64_to_cpu’
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:99:24: note: previous definition of 
‘fdt64_to_cpu’ was here
  static inline uint64_t fdt64_to_cpu(fdt64_t x)
                         ^
In file included from /opt/buildroot/output/host/include/libfdt.h:54:0,
                  from scripts/dtc/libfdt/fdt_overlay.c:4:
/opt/buildroot/output/host/include/libfdt_env.h:104:23: error: 
redefinition of ‘cpu_to_fdt64’
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
In file included from scripts/dtc/libfdt/fdt_overlay.c:1:0:
scripts/dtc/libfdt/libfdt_env.h:103:23: note: previous definition of 
‘cpu_to_fdt64’ was here
  static inline fdt64_t cpu_to_fdt64(uint64_t x)
                        ^
scripts/Makefile.host:119: recipe for target 
'scripts/dtc/libfdt/fdt_overlay.o' failed
make[4]: *** [scripts/dtc/libfdt/fdt_overlay.o] Error 1
scripts/Makefile.build:587: recipe for target 'scripts/dtc' failed
make[3]: *** [scripts/dtc] Error 2
Makefile:568: recipe for target 'scripts' failed
make[2]: *** [scripts] Error 2
package/pkg-generic.mk:229: recipe for target 
'/opt/buildroot/output/build/linux-4.14.71-ti-r80/.stamp_built' failed
make[1]: *** 
[/opt/buildroot/output/build/linux-4.14.71-ti-r80/.stamp_built] Error 2
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2
niall at preston:/opt/buildroot$



More information about the buildroot mailing list