问题描述


在pick编译dtbo image的提交后,无法正常完成编译

复现环境

Ubuntu 20.04 + msm-4.19

$ bison --version 
bison (GNU Bison) 3.5.1
由 Robert Corbett 和 Richard Stallman 编写。

版权所有 (C) 2020 Free Software Foundation, Inc.
这是自由软件;请参考源代码的版权声明。本软件不提供任何保证,甚至不会包括
可售性或适用于任何特定目的的保证。

错误日志

make[1]: 进入目录“/home/libxzr/kernels/android_kernel_oneplus_sm8250/out”
  GEN     ./Makefile
#
# configuration written to .config
#
make[1]: 离开目录“/home/libxzr/kernels/android_kernel_oneplus_sm8250/out”
make[1]: 进入目录“/home/libxzr/kernels/android_kernel_oneplus_sm8250/out”
  GEN     ./Makefile
scripts/kconfig/conf  --syncconfig Kconfig
  UPD     include/config/kernel.release
  GEN     ./Makefile
  UPD     include/generated/utsrelease.h
  Using .. as source for kernel
  YACC    scripts/dtc-aosp/dtc/dtc-parser.h
../scripts/dtc-aosp/dtc/dtc-parser.y: 警告: 3 项偏移/归约冲突 [-Wconflicts-sr]
  HOSTCC  scripts/dtc-aosp/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc-aosp/dtc/dtc-parser.tab.o
gcc: error: scripts/dtc-aosp/dtc/dtc-parser.tab.c: 没有那个文件或目录
gcc: fatal error: no input files
compilation terminated.
make[3]: *** [scripts/Makefile.host:107:scripts/dtc-aosp/dtc/dtc-parser.tab.o] 错误 1
make[3]: *** 正在等待未完成的任务....
make[2]: *** [../scripts/Makefile.build:643:scripts/dtc-aosp] 错误 2
make[1]: *** [/home/libxzr/kernels/android_kernel_oneplus_sm8250/Makefile:1174:scripts] 错误 2
make[1]: 离开目录“/home/libxzr/kernels/android_kernel_oneplus_sm8250/out”
make: *** [Makefile:146:sub-make] 错误 2

初步怀疑问题是在bison上,因为那个需要的dtc-parser.tab.c是由它生成的
但是 问题究竟是什么呢?bison版本太高了?

src: https://github.com/xzr467706992/android_kernel_oneplus_sm8250/commits/dtbo

解决方案

已解决
根本原因:内核过于先进
https://github.com/xzr467706992/android_kernel_oneplus_sm8250/commit/9be6de085764e46e237f3d2666fb6d352bcb2f46