pelya / libiconv-libicu-android

Port of libiconv and libicu to Android
The Unlicense
30 stars 44 forks source link

Linking error with NDK r17c #10

Open david-hoze opened 5 years ago

david-hoze commented 5 years ago

Hi, great work! I'm trying to build your repo and getting an error. I'm using NDK r17c (17.2.4988734, you can find it here) I'm on Ubuntu 18.04

*** Warning: Linking the shared library libicu-le-hb.la against the
*** static library /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a is not portable!
libtool: link: /home/david/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -shared -nostdlib crtbegin_so.o  .libs/libicu_le_hb_la-LayoutEngine.o .libs/libicu_le_hb_la-LEFontInstance.o .libs/libicu_le_hb_la-LEGlyphStorage.o .libs/libicu_le_hb_la-LEInsertionList.o .libs/libicu_le_hb_la-loengine.o .libs/libicu_le_hb_la-ScriptAndLanguageTags.o   -L/home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64 -landroid -llog -latomic /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a -L/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/lib /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/harfbuzz-1.4.6/../lib/libharfbuzz.so -L/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/lib/linux/x86_64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/lib/../lib64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/lib -L/home/david/Android/Sdk/ndk-bundle/sysroot/usr/lib -lstdc++ -lm -lc -lgcc -ldl crtend_so.o  --sysroot=/home/david/Android/Sdk/ndk-bundle/sysroot -O2 --sysroot=/home/david/Android/Sdk/ndk-bundle/sysroot -O2 -Wl,--exclude-libs -Wl,libgcc.a -Wl,--exclude-libs -Wl,libatomic.a --sysroot /home/david/Android/Sdk/ndk-bundle/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z -Wl,noexecstack -Wl,-z -Wl,relro -Wl,-z -Wl,now   -o .libs/libicu-le-hb.so.0.0.0
.libs/libicu_le_hb_la-LayoutEngine.o: In function `LayoutEngine':
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:206: undefined reference to `icu_62::UObject::~UObject()'
.libs/libicu_le_hb_la-LayoutEngine.o: In function `icu_62::LayoutEngine::~LayoutEngine()':
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to `icu_62::UObject::~UObject()'
.libs/libicu_le_hb_la-LayoutEngine.o:(.data.rel.ro+0x40): undefined reference to `typeinfo for icu_62::UObject'
.libs/libicu_le_hb_la-LEFontInstance.o: In function `~LEFontInstance':
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEFontInstance.cpp:31: undefined reference to `icu_62::UObject::~UObject()'
.libs/libicu_le_hb_la-LEFontInstance.o:(.data.rel.ro+0x140): undefined reference to `typeinfo for icu_62::UObject'
.libs/libicu_le_hb_la-LEGlyphStorage.o: In function `icu_62::LEGlyphStorage::~LEGlyphStorage()':
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to `icu_62::UObject::~UObject()'
.libs/libicu_le_hb_la-LEGlyphStorage.o:(.data.rel.ro+0xa8): undefined reference to `typeinfo for icu_62::UObject'
.libs/libicu_le_hb_la-LEInsertionList.o: In function `icu_62::LEInsertionList::~LEInsertionList()':
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEInsertionList.cpp:34: undefined reference to `icu_62::UObject::~UObject()'
/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEInsertionList.cpp:34: undefined reference to `icu_62::UObject::~UObject()'
.libs/libicu_le_hb_la-LEInsertionList.o:(.data.rel.ro+0x40): undefined reference to `typeinfo for icu_62::UObject'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:455: recipe for target 'libicu-le-hb.la' failed
make[1]: *** [libicu-le-hb.la] Error 1
make[1]: Leaving directory '/home/david/dev/android/AppAndroid/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src'
Makefile:446: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I'm also getting:

clang++: error: no such file or directory: './.libs/libharfbuzz.so'

Would appreciate your help.

pelya commented 5 years ago

You might wish to check older revision with git log, current master branch was only tested on NDK r18

On Wed, Jan 23, 2019, 14:29 David Hoze <notifications@github.com wrote:

Hi, great work! I'm trying to build your repo and getting an error. I'm using NDK r17c (17.2.4988734, you can find it here https://developer.android.com/ndk/downloads/older_releases) I'm on Ubuntu 18.04

Warning: Linking the shared library libicu-le-hb.la against the static library /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a is not portable! libtool: link: /home/david/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -shared -nostdlib crtbegin_so.o .libs/libicu_le_hb_la-LayoutEngine.o .libs/libicu_le_hb_la-LEFontInstance.o .libs/libicu_le_hb_la-LEGlyphStorage.o .libs/libicu_le_hb_la-LEInsertionList.o .libs/libicu_le_hb_la-loengine.o .libs/libicu_le_hb_la-ScriptAndLanguageTags.o -L/home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64 -landroid -llog -latomic /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a /home/david/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a -L/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/lib /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/harfbuzz-1.4.6/../lib/libharfbuzz.so -L/home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/lib/linux/x86_64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/lib/../lib64 -L/home/david/Android/Sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/lib -L/home/david/Android/Sdk/ndk-bundle/sysroot/usr/lib -lstdc++ -lm -lc -lgcc -ldl crtend_so.o --sysroot=/home/david/Android/Sdk/ndk-bundle/sysroot -O2 --sysroot=/home/david/Android/Sdk/ndk-bundle/sysroot -O2 -Wl,--exclude-libs -Wl,libgcc.a -Wl,--exclude-libs -Wl,libatomic.a --sysroot /home/david/Android/Sdk/ndk-bundle/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z -Wl,noexecstack -Wl,-z -Wl,relro -Wl,-z -Wl,now -o .libs/libicu-le-hb.so.0.0.0 .libs/libicu_le_hb_la-LayoutEngine.o: In function LayoutEngine': /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:206: undefined reference toicu_62::UObject::~UObject()' .libs/libicu_le_hb_la-LayoutEngine.o: In function icu_62::LayoutEngine::~LayoutEngine()': /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference toicu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to icu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference toicu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LayoutEngine.cpp:213: undefined reference to icu_62::UObject::~UObject()' .libs/libicu_le_hb_la-LayoutEngine.o:(.data.rel.ro+0x40): undefined reference totypeinfo for icu_62::UObject' .libs/libicu_le_hb_la-LEFontInstance.o: In function ~LEFontInstance': /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEFontInstance.cpp:31: undefined reference toicu_62::UObject::~UObject()' .libs/libicu_le_hb_la-LEFontInstance.o:(.data.rel.ro+0x140): undefined reference to typeinfo for icu_62::UObject' .libs/libicu_le_hb_la-LEGlyphStorage.o: In functionicu_62::LEGlyphStorage::~LEGlyphStorage()': /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to icu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference toicu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference to icu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEGlyphStorage.cpp:31: undefined reference toicu_62::UObject::~UObject()' .libs/libicu_le_hb_la-LEGlyphStorage.o:(.data.rel.ro+0xa8): undefined reference to typeinfo for icu_62::UObject' .libs/libicu_le_hb_la-LEInsertionList.o: In functionicu_62::LEInsertionList::~LEInsertionList()': /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEInsertionList.cpp:34: undefined reference to icu_62::UObject::~UObject()' /home/david/app/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src/LEInsertionList.cpp:34: undefined reference toicu_62::UObject::~UObject()' .libs/libicu_le_hb_la-LEInsertionList.o:(.data.rel.ro+0x40): undefined reference to `typeinfo for icu_62::UObject' clang++: error: linker command failed with exit code 1 (use -v to see invocation) Makefile:455: recipe for target 'libicu-le-hb.la' failed make[1]: [libicu-le-hb.la] Error 1 make[1]: Leaving directory '/home/david/dev/android/AppAndroid/Boost-for-Android/libiconv-libicu-android/x86_64/icu-le-hb-1.0.3/src' Makefile:446: recipe for target 'all-recursive' failed make: [all-recursive] Error 1

I'm also getting:

clang++: error: no such file or directory: './.libs/libharfbuzz.so'

Would appreciate your help.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/pelya/libiconv-libicu-android/issues/10, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJewNsxXtso4f2QGpnpkB2vR5rj91wRks5vGFXCgaJpZM4aOroS .

david-hoze commented 5 years ago

Hi, I tried all of the repository's revisions both with NDK r17 and NDK r18. None of them worked :(

The last revision with ndk r18 also gives the two errors I listed above (possibly also more, those are the ones I spotted. Exact version is 18.1.5063045.

Will appreciate your help in the matter, our code is heavily dependent on cryptopp.

david-hoze commented 5 years ago

It's solved in https://github.com/dec1/Boost-for-Android/issues/15, thanks a lot.