【发布时间】:2012-12-07 00:10:15
【问题描述】:
问题:这个警告是什么意思?如果没有现实生活中的后果,我可以忍受一段时间......但我担心如果我们的程序加载到有故障的芯片之一会发生什么。
背景:使用 NDK r8c,X264 编码器的链接会发出警告:
cannot scan executable section 1 of libx264.a(dct-a.o) for Cortex-A8 erratum because it has no mapping symbols
...对 libx264 中的所有程序集文件发出相同的警告。
libx264.a 本身是在同一台机器上使用从 NDK 获取的相同 4.6 工具链进行交叉编译的。
以下是轻松重现问题的说明(Ubuntu 或 MacOS):
从ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2下载x264-snapshot-20121203-2245
运行
./configure --enable-pic --enable-strip --enable-static --cross-prefix=~/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi- --sysroot=~/android-ndk-r8c/platforms/android-14/arch-arm --host=arm-linux运行
~/android-ndk-r8c/prebuilt/linux-x86/bin/make
它将构建静态库,然后在链接 x265 可执行文件时显示 Cortex-A8 警告。我不担心编译器警告,因为构建 libx264.a 是离线完成的,它不是我们官方日常构建的一部分。
我已将此报告为http://code.google.com/p/android/issues/detail?id=40794。
我尝试在ARM.com instructions 之后手动将mapping symbols 添加到dct-a.S,但这没有效果。
【问题讨论】:
-
那个配置对我不起作用。我得到“找不到工作的 C 编译器”。我在正确的地方有 NDK。我只是想知道您是否有跨工具链的路径问题。
-
@auselen:不,我不知道你的编译器路径有什么问题。你的平台是什么?恐怕在 Windows 上没有简单的配置方法。也许你必须按照 NDK 的说明准备你的独立工具链,这在我的 Ubuntu 机器上不是必需的。 无论如何,请继续关注:我有答案!
-
@auselen:在 Mac OS 上,我发现 ~ 有所作为(以及 coreect 路径)。我最终得到了
./configure --enable-pic --enable-strip --enable-static --cross-prefix=/Users/AlexCohn/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi- --sysroot=/Users/AlexCohn/android-ndk-r8c/platforms/android-14/arch-arm --host=arm-linux -
在 ubuntu 上对我来说也是〜。
标签: assembly android-ndk arm x264 cortex-a8