2

I need to add to android project atom processor support. Config and build libvpx library under x86 with parameters:

./configure --disable-examples --sdk-path = '/ Android / ndk' --enable-vp8 --target = x86-android-gcc --disable-postproc
make

build success and I get a static library libvpx.a Add library to project:

include $ (CLEAR_VARS)
LOCAL_MODULE: = vpx
LOCAL_SRC_FILES: = thirdparty / webm / libvpx / $ (TARGET_ARCH_ABI) / libvpx.a
include $ (PREBUILT_STATIC_LIBRARY)

LOCAL_STATIC_LIBRARIES: = stdc++ jpeg png vorbis vorbisfile vorbisenc theora theoradec libwebp vpx

but during the assembly of the project was getting errors :

jni/thirdparty/webm/libvpx/x86/libvpx.a (vp8_dx_iface.co) (. text +0 x568): error: undefined reference to '__vsnprintf_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (vp8_dx_iface.co) (. text +0 x596): error: undefined reference to '__longjmp_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (onyxd_if.co) (. text +0 x158): error: undefined reference to '__vsnprintf_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (onyxd_if.co) (. text +0 x186): error: undefined reference to '__longjmp_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (onyxd_if.co) (. text.unlikely +0 x23): error: undefined reference to '__assert_fail'
jni/thirdparty/webm/libvpx/x86/libvpx.a (yv12extend.co): function vp8_yv12_extend_frame_borders_c: error: undefined reference to '__assert_fail'
jni/thirdparty/webm/libvpx/x86/libvpx.a (yv12extend.co): function vp8_yv12_extend_frame_borders_c: error: undefined reference to '__assert_fail'
jni/thirdparty/webm/libvpx/x86/libvpx.a (yv12extend.co): function vp8_yv12_extend_frame_borders_c: error: undefined reference to '__assert_fail'
jni/thirdparty/webm/libvpx/x86/libvpx.a (decodframe.co) (. text +0 x198): error: undefined reference to '__vsnprintf_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (decodframe.co) (. text +0 x1c6): error: undefined reference to '__longjmp_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (boolhuff.co) (. text +0 x55): error: undefined reference to '__longjmp_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (onyx_if.co) (. text +0 xa08): error: undefined reference to '__vsnprintf_chk'

Does anyone know how to fix it? Build project under armeabi is successfully. Trying to add flags APP_CPPFLAGS +=-std=gnu++11 and change the version of ndk

NDK_TOOLCHAIN_VERSION: = 4.8

other flags of the project:

APP_STL: = gnustl_static
APP_CPPFLAGS + =-frtti-fexceptions
APP_CFLAGS + =-Wno-error = format-security
APP_ABI: = armeabi x86

used in the construction of ndk android-ndk-r9d-linux-x86 (I tried to use android-ndk-r9d-linux-x86_64 - the same result), Ubuntu 13.10 x86_64, Eclipse 3.8.1

Michel_T.
  • 2,741
  • 5
  • 21
  • 31

1 Answers1

3

For me adding --extra-cflags="-U_FORTIFY_SOURCE" covered __longjmk_chk and __vsnprintf_chk

And I wrote empty __assert_fail function : extern "C" { void __assert_fail() {} }

Wojciech
  • 330
  • 2
  • 13