<div dir="ltr">I don't have much need / experience  of building with Android, so I'm afraid I can't help.<div><br></div><div>But it just came to my attention that newer NDKs have better(? or at least more direct) support for using CMake:</div><div><br></div><div>   <a href="https://developer.android.com/ndk/guides/cmake.html">https://developer.android.com/ndk/guides/cmake.html</a></div><div><br></div><div>Either way, once you manage to get apitrace building for Android again, if you send me a patch/PR with updated docs/INSTALL.markdown instructions it would be great.</div><div><br></div><div>Jose</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 23, 2017 at 5:40 AM, Tapani Pälli <span dir="ltr"><<a href="mailto:tapani.palli@intel.com" target="_blank">tapani.palli@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 03/22/2017 05:43 AM, Wang, Gary C wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Tapani,<br>
<br>
Could you please help to share your khrplatform.h with me for my testing? I used v17 or v12.0.1 MESA's khrplatform.h but still suffered it.<br>
</blockquote>
<br></span>
OK, I'll send you at complete patch offline and then let's see if we could fix current Android.mk in a shape that would work for everyone.<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks!<br>
<br>
Gary<br>
<br>
-----Original Message-----<br>
From: Palli, Tapani<br>
Sent: Tuesday, March 21, 2017 8:40 PM<br>
To: Wang, Gary C <<a href="mailto:gary.c.wang@intel.com" target="_blank">gary.c.wang@intel.com</a>>; apitrace <<a href="mailto:apitrace@lists.freedesktop.org" target="_blank">apitrace@lists.freedesktop.or<wbr>g</a>><br>
Subject: Re: Build apitrace failed for Android X86_64<br>
<br>
Hi;<br>
<br>
On 03/21/2017 12:22 PM, Wang, Gary C wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Tapani,<br>
<br>
I appreciate you guiding!<br>
<br>
I use NDK 14.0.3770861 with following android.toolchain.cmake, curl -s<br>
-O<br>
<a href="https://raw.githubusercontent.com/taka-no-me/android-cmake/556cc14296c" rel="noreferrer" target="_blank">https://raw.githubusercontent.<wbr>com/taka-no-me/android-cmake/5<wbr>56cc14296c</a><br>
226f753a3778d99d8b60778b7df4f/<wbr>android.toolchain.cmake<br>
<br>
For Android.mk modified according to your guiding, but I have no idea<br>
still saw error 'error: '__NDK_FPABI__' does not name a type',<br>
</blockquote>
<br>
Ah ok now I hit the same failure but have a workaround for it. I replaced khrplatform.h header to be the one from Mesa sources (which is older), then apitrace compiles fine, I haven't tried running/using it on the device yet though.<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
diff --git a/Android.mk b/Android.mk<br>
index ccc1859b6081..1e6cde9b8fe4 100644<br>
--- a/Android.mk<br>
+++ b/Android.mk<br>
@@ -17,13 +17,7 @@ $(shell echo "CMake present but NDK not found at<br>
$(abspath $(NDK)), will not com  else # NDK  $(shell echo "CMake and<br>
NDK ($(abspath $(NDK))) found, will compile apitrace" >&2)<br>
<br>
-ifeq ($(TARGET_ARCH),arm)<br>
-TOOLCHAIN := arm-linux-androideabi-4.4.x -endif<br>
-<br>
-ifeq ($(TARGET_ARCH),x86)<br>
-TOOLCHAIN := i686-android-linux-4.4.3 -endif<br>
+TOOLCHAIN := x86_64-4.9<br>
<br>
 LOCAL_PATH := $(call my-dir)<br>
<br>
@@ -67,8 +61,8 @@ apitrace_private_target: android.toolchain.cmake<br>
                cd $(MY_APITRACE_ROOT) && \<br>
                cmake \<br>
                -DCMAKE_TOOLCHAIN_FILE=android<wbr>.toolchain.cmake \<br>
-               -DANDROID_NDK=../../$(NDK) \<br>
-               -DANDROID_NDK_LAYOUT=LINARO \<br>
+               -DANDROID_NDK=/home/garywang/<wbr>work/android-ndk-linux \<br>
+               -DANDROID_NDK_LAYOUT=RELEASE \<br>
                -DANDROID_TOOLCHAIN_NAME=$(TOO<wbr>LCHAIN) \<br>
                -DANDROID_API_LEVEL=21 \<br>
                -DANDROID_NO_UNDEFINED=OFF \<br>
<br>
<br>
cmake -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$PWD/an<wbr>droid.toolchain.cmake -DANDROID_NDK=/home/garywang/w<wbr>ork/android-ndk-linux -DANDROID_STL=gnustl_shared -DANDROID_SDK=/home/garywang/w<wbr>ork/android-sdk-linux -DANDROID_API_LEVEL=21 -DANDROID_ABI=x86_64 -DENABLE_STATIC_SNAPPY=true --debug-output<br>
<br>
Any missing thing I need to check again? Thanks!<br>
<br>
Gary<br>
<br>
-----Original Message-----<br>
From: Palli, Tapani<br>
Sent: Thursday, March 16, 2017 8:10 PM<br>
To: Wang, Gary C <<a href="mailto:gary.c.wang@intel.com" target="_blank">gary.c.wang@intel.com</a>>; apitrace <<a href="mailto:apitrace@lists.freedesktop.org" target="_blank">apitrace@lists.freedesktop.or<wbr>g</a>><br>
Subject: Re: Build apitrace failed for Android X86_64<br>
<br>
<br>
<br>
On 03/16/2017 12:48 PM, Rob Clark wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+apitrace list.. I've never really built apitrace on android, but<br>
+others have<br>
<br>
On Wed, Mar 15, 2017 at 11:21 PM, Wang, Gary C <<a href="mailto:gary.c.wang@intel.com" target="_blank">gary.c.wang@intel.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Rob,<br>
<br>
<br>
<br>
I use the latest Android-NDK to build apitrace, but suffered error.<br>
Would you mind to give some advice on it? Thanks!<br>
<br>
</blockquote></blockquote>
<br>
I've tried this briefly with fresh NDK but did not get as far as you have. Things I had to do was:<br>
<br>
- modify Android.mk to use ANDROID_NDK_HOME instead of hardcoded NDK path (ANDROID_NDK_HOME points to $HOME/Android/Sdk/ndk-bundle)<br>
- get android.toolchain.cmake manually instead of curling in the script<br>
- modify Android.mk to use 'x86_64-4.9' TOOLCHAIN<br>
<br>
but even then build fails:<br>
<br>
"Could not find any working toolchain in the NDK. Probably your Android NDK is broken."<br>
<br>
Do you have some modifications for Android.mk?<br>
<br>
Thanks;<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
…<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:288:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync<br>
sync);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:289:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync<br>
sync, EGLint flags, EGLTime timeout);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:290:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy,<br>
EGLSync sync, EGLint attribute, EGLAttrib *value);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:291:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy,<br>
EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const<br>
EGLAttrib *attrib_list);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:292:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy,<br>
EGLImage image);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:293:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum<br>
platform, void *native_display, const EGLAttrib *attrib_list);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:294:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface<br>
(EGLDisplay dpy, EGLConfig config, void *native_window, const<br>
EGLAttrib *attrib_list);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:295:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface<br>
(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const<br>
EGLAttrib *attrib_list);<br>
<br>
^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/KHR/<wbr>khrplatform.h:106:67:<br>
error: '__NDK_FPABI__' does not name a type<br>
<br>
#   define KHRONOS_APICALL __attribute__((visibility("def<wbr>ault")))<br>
__NDK_FPABI__<br>
<br>
                                                                   ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/<wbr>eglplatform.h:50:16:<br>
note: in expansion of macro 'KHRONOS_APICALL'<br>
<br>
#define EGLAPI KHRONOS_APICALL<br>
<br>
                ^<br>
<br>
/home/garywang/3t_work/apitrac<wbr>e/thirdparty/khronos/EGL/egl.<wbr>h:296:1:<br>
note: in expansion of macro 'EGLAPI'<br>
<br>
EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync<br>
sync, EGLint flags);<br>
<br>
^<br>
<br>
make[2]: *** [dispatch/CMakeFiles/glproc.di<wbr>r/glproc.cpp.o] Error 1<br>
<br>
make[2]: Leaving directory `/media/garywang/MyHD3T/mywork<wbr>/apitrace/build'<br>
<br>
make[1]: *** [dispatch/CMakeFiles/glproc.di<wbr>r/all] Error 2<br>
<br>
make[1]: Leaving directory `/media/garywang/MyHD3T/mywork<wbr>/apitrace/build'<br>
<br>
make: *** [all] Error 2<br>
<br>
make: Leaving directory `/media/garywang/MyHD3T/mywork<wbr>/apitrace/build'<br>
<br>
…<br>
<br>
<br>
<br>
Gary<br>
</blockquote>
______________________________<wbr>_________________<br>
apitrace mailing list<br>
<a href="mailto:apitrace@lists.freedesktop.org" target="_blank">apitrace@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/apitrace" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/apitrace</a><br>
<br>
</blockquote></blockquote></blockquote>
______________________________<wbr>_________________<br>
apitrace mailing list<br>
<a href="mailto:apitrace@lists.freedesktop.org" target="_blank">apitrace@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/apitrace" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/apitrace</a><br>
</div></div></blockquote></div><br></div>