2

问题:这个警告的含义是什么?如果没有现实生活中的后果,我可以忍受一段时间......但我担心如果我们的程序被加载到一个有故障的芯片上会发生什么。

背景:使用 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):

  1. 从ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2下载 x264-snapshot-20121203-2245

  2. ./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

  3. ~/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 说明手动添加映射符号,但这没有效果。dct-a.S

4

1 回答 1

2

我从安德鲁那里得到了答案:http ://code.google.com/p/android/issues/detail?id=40794#c4

tl;nr: h264 makefile 强制剥离映射符号。我已经仔细检查过:这不是我--enable-strip./configure原因。

最快的解决方法是运行

make STRIP=
于 2012-12-07T08:01:51.880 回答