[x264-devel] NDK r8c linker warnings for asm files from libx264
Alex Cohn
alexcohn at netvision.net.il
Sun Dec 9 10:58:58 CET 2012
With NDK r8c, linking of X264 encoder issues warnings:
> cannot scan executable section 1 of libx264.a(dct-a.o) for Cortex-A8 erratum because it has no mapping symbols
... same warning for all assembly files in libx264.
It is very easy to reproduce. The following instructions are for
MacOS, but exactly same scenario is reproduced on Linux.
1. Install Android NDK r8c from
http://dl.google.com/android/ndk/android-ndk-r8c-darwin-x86.zip.
2. In x264 root directory, run ./configure --enable-pic
--enable-static
--cross-prefix=/Users/me/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-
--sysroot=/Users/me/android-ndk-r8c/platforms/android-14/arch-arm
--host=arm-linux
3. Run ~/android-ndk-r8c/prebuilt/darwin-x86/bin/make
It will build the static library, and after that display the Cortex-A8
warning while linking the x265 executable.
The answer has been published here:
http://code.google.com/p/android/issues/detail?id=40794#c4.
TL;NR: h264 makefile forcefully strips the mapping symbols.
The easiest workaround is to run
~/android-ndk-r8c/prebuilt/linux-x86/bin/make STRIP=
A better patch is to replace lines 182, 186 of the Makefile with
-@ $(if $(STRIP), $(STRIP) -x -K \$$a -K \$$t -K \$$d $@) #delete
local/anonymous symbols, so they don't show up in oprofile, except the
mapping symbols
Best regards,
Alex Cohn
More information about the x264-devel
mailing list