在setSdclangVars()上进行soong-cc-config测试时,构建Android msm-3.18内核失败

3
我正在尝试为msm8996(Android 8.0.0)构建msm-3.18内核。在尝试从Android源代码顶级目录进行构建时,测试运行失败。
以下是跟踪信息:
FAILED: out/soong/.bootstrap/soong-cc-config/test/test.passed
out/soong/.bootstrap/bin/gotestrunner -p ./build/soong/cc/config -f out/soong/.bootstrap/soong-cc-config/test/test.passed -- \ out/soong/.bootstrap/soong-cc-config/test/test -test.short
panic: read /home/vagrant/android-msm: is a directory

goroutine 1 [running]:
android/soong/cc/config.setSdclangVars()
    /home/vagrant/android-msm/build/soong/cc/config/global.go:197 +0x20d4
android/soong/cc/config.init.2()
    /home/vagrant/android-msm/build/soong/cc/config/global.go:169 +0xcc9
android/soong/cc/config.init()
    /home/vagrant/android-msm/build/soong/cc/config/tidy_test.go:42 +0x3969
main.init()
    /home/vagrant/android-msm/out/soong/.bootstrap/soong-cc-
config/test/test.go:34 +0x4e
ninja: build stopped: subcommand failed.
15:22:17 soong bootstrap failed with: exit status 1
make: *** [run_soong_ui] Error 1
make: Leaving directory `/home/vagrant/android-msm'

我猜这与$SDCLANG_PATH有关,但我需要帮助。

似乎出现了错误,因为android-msm/build/soong/cc/config/global.go文件中的$SDCLANG_AE_CONFIG为空。 - Jaewon Min
1个回答

3

您需要在高通开发者网络上注册并下载他们的专有编译器。

根据他们论坛上的说明:

  1. Download the Qualcomm LLVM Compiler here: https://developer.qualcomm.com/download/sdllvm/snapdragon-llvm-compiler-android-linux64.tar.gz

  2. Extract Snapdragon-llvm-3.8.4-toolchain.tar.gz

  3. Move toolchains\llvm-Snapdragon_LLVM_for_Android_3.8\prebuilt\linux-x86_64 to prebuilts/clang/host/linux-x86/sdclang-3.8 within your Android build environment.

  4. Add the following lines to your device's BoardConfig:

    ifneq ($(HOST_OS),darwin)
    SDCLANG := true
    SDCLANG_PATH := prebuilts/clang/host/linux-x86/sdclang-3.8/bin
    SDCLANG_LTO_DEFS := device/qcom/common/sdllvm-lto-defs.mk
    endif
    
  5. Compile Android.

这是他们论坛的说明:https://developer.qualcomm.com/forum/qdn-forums/software/snapdragon-llvm-compiler-android/33437

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接