AOSP 9.0如何构建系统链接可执行文件?

问题描述 投票:0回答:1

使用AOSP 9.0.0_r30源代码,首先使用这些命令在构建期间输出详细的构建日志:

make clean
make showcommands -j8 > ~/BuildAndroid.txt

然后在~/BuildAndroid.txt中搜索“lld”(全字匹配)。我找不到任何东西。 Clang链接器应该有lld关键字。搜索“ld”有50个结果,但它们几乎不是链接命令。但其中一个是“ld.mc”,但它是候选者。

并搜索一些cpp源文件名,如“TextDropShadowCache”。我只得到2个命令,这两个命令都是clang ++编译命令。

libhwui.so的link命令引用了一个文件“libhwui.so.rsp”,似乎可能(只能猜测)包含“TextDropShadowCache.o”:

prebuilts/clang/host/linux-x86/clang-4691093/bin/clang++ /OpenSource/Build/Android/9.0.0_r30/soong/.intermediates/bionic/libc/crtbegin_so/android_x86_64_core/crtbegin_so.o @/OpenSource/Build/Android/9.0.0_r30/soong/.intermediates/frameworks/base/libs/hwui/libhwui/android_x86_64_core_shared/libhwui.so.rsp ......

如果这是真的,那么libhwui.so.rsp是如何产生的?

该命令也引出了这个问题:What does @ mean in this clang command in AOSP build log?

根据上面的问题,@表示从文件读取一个长命令,因此它很可能是一个列出libhwui.so所需的所有obj文件的文件。

所以问题基本上得到解答,但未经验证,因为libhwui.so.rsp似乎在构建后被删除。

AOSP 9.0构建系统如何链接可执行文件?

build android-source
1个回答
0
投票

我找到了pppd的链接命令行,它只是使用了

prebuilts /铛/主机/ Linux的86 /铛-4691093 / bin中/铛++

将所有.o / .a / .so文件作为输入,将pppd作为输出。

但这仍然无法解释为什么没有使用TextDropShadowCache.o作为输入的链接命令,也许他们使用一些脚本来读取多个.o文件?

© www.soinside.com 2019 - 2024. All rights reserved.