首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用错误未识别的仿真模式构建Android内核ld vdso32 : armelf_linux_eabi

使用错误未识别的仿真模式构建Android内核ld vdso32 : armelf_linux_eabi
EN

Stack Overflow用户
提问于 2022-08-26 06:24:23
回答 1查看 108关注 0票数 0

我尝试从google正式文档构建android内核,从头开始使用官方build.sh,但是得到了如下错误消息:

代码语言:javascript
复制
  VDSOSYM include/generated/vdso-offsets.h
  LDS     arch/arm64/kernel/vdso32/vdso.lds
  VDSOC32   arch/arm64/kernel/vdso32/vgettimeofday.o
  VDSOA32   arch/arm64/kernel/vdso32/sigreturn.o
  HOSTCC  arch/arm64/kernel/vdso32/../../../arm/vdso/vdsomunge
clang-5.0: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
  VDSOL32   arch/arm64/kernel/vdso32/vdso.so.raw
/..//bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386pep i386pe elf64bpf
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [/home/tonki/aosp/newkernel/private/msm-google/arch/arm64/kernel/vdso32/Makefile:138: arch/arm64/kernel/vdso32/vdso.so.raw] Error 1
make[2]: *** [arch/arm64/Makefile:242: vdso_prepare] Error 2
make[1]: *** [Makefile:152: sub-make] Error 2
make: *** [Makefile:24: __sub-make] Error 2

我看了一下arch/arm64/kernel/vdso32/Makefile文件,找到了这行CC_ARM32 := $(CC) $(CLANG_TARGET_ARM32),它使用clang --target=arm-linux-androideabi链接vdso32.生图像,但使用/usr/bin/ld链接。

我的操作系统是Arch发行版,没有像Ubuntu的apt工具那样可以用pacman安装的gcc-arm-linux-androideabi官方软件包。

分支: AOSP内核/android跨界-4.9-饼-qpr2。

设备:像素3 3XL。

内核-配置:正式的b1c1_defconfig(arch/arm64/configs/b1c1_defconfig).

问:我如何解决这个问题?我不知道here.Thanks!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-02 14:58:02

我试图找出错误的细节。

我打开,把详细的信息输出。

代码语言:javascript
复制
  clang --target=arm-linux-androideabi  -Wp,-MD,arch/arm64/kernel/vdso32/.vdso.so.raw.d -nostdinc -isystem /home/tonki/aosp/newkernel/prebuilts-master/clang/host/linux-x86/clang-4393122/lib64/clang/5.0.1/include -I/home/tonki/aosp/newkernel/private/msm-google/arch/arm64/include -I./arch/arm64/include/generated/uapi -I./arch/arm64/include/generated  -I/home/tonki/aosp/newkernel/private/msm-google/include -I./include -I/home/tonki/aosp/newkernel/private/msm-google/arch/arm64/include/uapi -I/home/tonki/aosp/newkernel/private/msm-google/include/uapi -I./include/generated/uapi -include /home/tonki/aosp/newkernel/private/msm-google/include/linux/kconfig.h -D__KERNEL__ -Qunused-arguments -mlittle-endian   -Wl,-Bsymbolic -Wl,--no-undefined -Wl,-soname=linux-vdso.so.1 -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 -nostdlib -shared -mfloat-abi=soft -Wl,-T arch/arm64/kernel/vdso32/vdso.lds arch/arm64/kernel/vdso32/vgettimeofday.o arch/arm64/kernel/vdso32/sigreturn.o -o arch/arm64/kernel/vdso32/vdso.so.raw

我认为clang =arm androideabi是使用system‘’ld链接vdso.so.raw的,所以我找到了这个link,最后我在arch/arm64/kernel/vdso32/Makefile:8中这样修改。

代码语言:javascript
复制
CC_ARM32 := $(CC) $(CLANG_TARGET_ARM32) -gcc-toolchain /home/tonki/aosp/newkernel/prebuilts/ndk-r23/toolchains/llvm/prebuilt/linux-x86_64

终于起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73496847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档