-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
no .eh_frame_hdr table will be created #428
Comments
Unfortunately the linker doesn't provide a very helpful error message here. Googling for it turns up this though: https://gcc.gnu.org/ml/gcc-help/2009-04/msg00223.html
Were any components maybe built with an old NDK? It's also possible that maybe the inverse of the problem is happening and the Clang we have is actually too new for our linker... One thing that might explain the difference between 32-bit and 64-bit arm here: 64-bit arm still uses ld.bfd instead of ld.gold. If you add Note that you won't want to use |
Thank you for the swift reply. The library I try to link (gpg.a) is pre-built and provided by Google. I have no control over the compiler. Your analysis was spot on: gold can successfully link.
That said, the resulting app does crash on 64-bit for me.
The 32 bit arm works just fine. |
Oh, Google Play Games, not GNU Privacy Guard :) I'm going to refile this in our other bug tracker so it's easier to loop in the Play Games folks. Does this happen for any trivial link of libgpg, or do you have a specific test case? |
Thanks, I already had an issue filed with the Google Play Games tracker. I will download their samples, and build on 64-bit to see if those can be used as repro case. |
Oh, I didn't realize they were also on GitHub. We'll just use that one then. I'll leave this open until we have a better idea of what the problem is though. |
Closing in favor of the Play Games bug. Will reopen if we have reason to believe this is an NDK issue, but for now we don't. |
Description
when linking for arm64-v8a, it fails on no .eh_frame_hdr table will be created
[176/176] Linking CXX shared library /home/bram/apps/Buggy/AndroidStudio/app/build/intermediates/cmake/debug/obj/arm64-v8a/libbuggy.so
FAILED: : && /home/bram/android-sdk-linux/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android --gcc-toolchain=/home/bram/android-sdk-linux/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 --sysroot=/home/bram/android-sdk-linux/ndk-bundle/sysroot -fPIC -isystem /home/bram/android-sdk-linux/ndk-bundle/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -DANDROID=1 -DPLAY=1 -DUSEES2=1 -DLOGTAG=swaag -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a --sysroot /home/bram/android-sdk-linux/ndk-bundle/platforms/android-21/arch-arm64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libbuggy.so -o /home/bram/apps/Buggy/AndroidStudio/app/build/intermediates/cmake/debug/obj/arm64-v8a/libbuggy.so CMakeFiles/buggy.dir/main.cpp.o CMakeFiles/buggy.dir/android_native_app_glue.c.o CMakeFiles/buggy.dir/StateManager.cpp.o CMakeFiles/buggy.dir/http_lib.c.o CMakeFiles/buggy.dir/leaderboardmanager.cpp.o /home/bram/src/gpg-cpp-sdk/android/lib/gnustl/arm64-v8a/libgpg.a /home/bram/apps/Buggy/AndroidStudio/app/.externalNativeBuild/cmake/PI/outputs/libpi.a /home/bram/apps/GBase/src/output/libgbase.a /home/bram/src/opende/output/libopende.a /home/bram/src/GPGOAP/libgpgoap.a /home/bram/src/ip2ensign/libip2ensign.a -lEGL -lGLESv2 -lOpenSLES -landroid -llog -lz -lm -lm "/home/bram/android-sdk-linux/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a" && :
/home/bram/android-sdk-linux/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: error in /home/bram/src/gpg-cpp-sdk/android/lib/gnustl/arm64-v8a/libgpg.a(.eh_frame); no .eh_frame_hdr table will be created.
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
When linking for 32 bit arm, no such error occurs.
Environment Details
Android Studio 3.0 Canary 4
Build #AI-171.4101728, built on June 14, 2017
JRE: 1.8.0_112-release-b736 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.4.0-78-generic
Latest NDK and SDK.
NDK 15.0.4075724
The text was updated successfully, but these errors were encountered: