ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

构建Android内核时出错:“多个目标模式”

2019-05-27 23:15:06  阅读:435  来源: 互联网

标签:android build android-source kernel


我试图按照谷歌this page的说明为Nexus 5X构建一个新内核

>构建系统:Ubuntu 14.04 x86_64
>目标系统:MTC19T / bullhead(实际上是5X上的任何棉花糖版本)
>工具链:android-6.0.1_r25 / prebuilts / gcc / linux-x86 / aarch64 /

我执行的命令的确切顺序是:

$git clone https://android.googlesource.com/kernel/msm
$export ARCH=arm64
$export CROSS_COMPILE=aarch64-linux-android-
$cd msm
$git checkout -b android-msm-bullhead-3.10-marshmallow-mr1 origin/android-msm-bullhead-3.10-marshmallow-mr1
$make bullhead_defconfig
$make

最后一个命令后,我遇到以下错误:

Makefile:796: *** multiple target patterns.  Stop.

调查:

现在makefile中的第796行是:

vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE

和其他相关的行是:

vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)

export KBUILD_VMLINUX_INIT := $(head-y) $(init-y)
export KBUILD_VMLINUX_MAIN := $(core-y) $(libs-y) $(drivers-y) $(net-y)
export KBUILD_LDS          := arch/$(SRCARCH)/kernel/vmlinux.lds

我发现如果从$(KBUILD_VMLINUX_MAIN)中删除$(libs-y),则此错误消失,并且构建会持续一段时间.我相信我稍后会发现一些或其他问题,所以我决定进一步调试.

免责声明:其余部分对我来说有点灰色

$(libs-y)定义为:

libs-y      := lib/
libs-y1     := $(patsubst %/, %/lib.a, $(libs-y))
libs-y2     := $(patsubst %/, %/built-in.o, $(libs-y))
libs-y      := $(libs-y1) $(libs-y2)

所以我用参数lib / lib.a lib / built-in.o FORCE调用了scripts / link-vmlinux.sh,并且遇到了这个错误:

gps@gps-HP-ProBook-4540s:~/andsrc/kernel/msm$./scripts/link-vmlinux.sh lib/lib.a lib/built-in.o FORCE
trap: SIGHUP: bad trap

由于此输出具有:,这可能解释了原始make错误.

现在,禁用包含陷阱的行没有帮助,我们得到另一个错误:

gps@gps-HP-ProBook-4540s:~/andsrc/kernel/msm$./scripts/link-vmlinux.sh lib/lib.a lib/built-in.o FORCE
  LD      vmlinux.o
./scripts/link-vmlinux.sh: 44: ./scripts/link-vmlinux.sh: -r: not found

我不太确定下一步该尝试什么.任何帮助表示赞赏.

解决方法:

第44和45行看起来像这样:

${LD} ${LDFLAGS} -r -o ${1} ${KBUILD_VMLINUX_INIT}  \
        --start-group ${KBUILD_VMLINUX_MAIN} --end-group

所以发生的事情是$LD和$LDFLAGS是未定义的,这使命令只是-r …,而-r不是你系统上的命令,因此找不到命令.

定义$LD和$LDFLAGS然后它将使用$LDFLAGS运行其他命令的其余部分$LD.

如果您仍有问题,请添加评论,我会进一步研究.

标签:android,build,android-source,kernel
来源: https://codeday.me/bug/20190527/1166772.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有