On 19 June 2017 at 08:06, Lubomir I. Ivanov <[email protected]> wrote:
> On 17 June 2017 at 06:54, Rick Walsh <[email protected]> wrote: > > Hi, > > It turns out I might actually have a little bit of time to dedicate to > > Subsurface over the next couple of weeks, and I thought I'd start by > > reviving my Android build chain. Running packaging/android/build.sh, I > get > > stuck with this error. Does anyone smarter than me know what's going on? > > I'm on Fedora 25, with android-ndk-r13b and Qt5.9. > > > > $ sh packaging/android/build.sh > > <snip> > > > /home/rick/src/subsurface/libgit2-0.24.1/src/cache.c:117: error: > undefined > > reference to 'rand' > > sounds like it isn't linking against the platform libc.a. i doubt that > rand() is missing in the standard library implementation...maybe > wrapping another function but not missing. > > you can try: > $ build.sh VERBOSE=1 > > to see what the linker is doing. > > i haven't tried the Subsurface Android build script, but i get > something like the bellow from the "ndk-build" script when building a > generic test library: > > c:/bin/android_ndk/build//../toolchains/llvm/prebuilt/ > windows-x86_64/bin/clang++ > .exe -Wl,-soname,libtesttest.so -shared > --sysroot=c:/bin/android_ndk/build//../pl > atforms/android-19/arch-arm testtest.o -lgcc -gcc-toolchain c:/bin/ > android_ndk/build//../toolchains/arm-linux-androideabi-4.9/prebuilt/ > windows-x86_ > 64 -no-canonical-prefixes -target armv7-none-linux-androideabi > -Wl,--fix-cortex- > a8 -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro > -Wl,-z,now > -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc -lm -o > libtesttest.so > > it tells me that it sets the platform location correctly (--sysroot) > and it links against -lc (rand()) should be part libc.a and libc.so). > it also sets the toolchain correctly (-gcc-toolchain) and -lgcc is > located in there. > > Thanks for the tip. Adding VERBOSE=1 to the command line didn't work as expected - it just silenced the output, but I added it to the make line within build.sh, and that provides some more useful output. I can't find any reference to -lc, -gcc-toolchain, or -lgcc. [ 76%] Building CXX object CMakeFiles/subsurface-mobile.dir/qrc_kirigami.cpp.o /home/rick/src/subsurface/ndk-arm/bin/arm-linux-androideabi-g++ -DANDROID -DBT_SUPPORT -DKIRIGAMI_BUILD_TYPE_STATIC -DQT_ANDROIDEXTRAS_LIB -DQT_BLUETOOTH_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_QML_LIB -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DSERIAL_FTDI -DSUBSURFACE_MOBILE -DSUBSURFACE_SOURCE=\"/home/rick/src/subsurface\" -Dsubsurface_mobile_EXPORTS -I/home/rick/src/subsurface/subsurface-mobile-build-arm/subsurface-mobile_autogen/include -isystem /home/rick/src/subsurface/ndk-arm/sysroot/usr/include -isystem /home/rick/src/subsurface/ndk-arm/arm-linux-androideabi/include/c++/4.9 -isystem /home/rick/src/subsurface/ndk-arm/arm-linux-androideabi/include/c++/4.9/arm-linux-androideabi -I/home/rick/src/subsurface/ndk-arm/sysroot/usr/include/libusb-1.0 -I/home/rick/src/subsurface/ndk-arm/sysroot/usr/include/libftdi1 -I/home/rick/src/subsurface/ndk-arm/sysroot/usr/include/libxml2 -I/home/rick/src/subsurface/ndk-arm/sysroot/usr/lib/libzip/include -I/home/rick/src/subsurface/. -I/home/rick/src/subsurface/subsurface-mobile-build-arm -I/home/rick/src/subsurface/subsurface-mobile-build-arm/desktop-widgets -isystem /home/rick/src/Qt/5.9/android_armv7/include -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtCore -isystem /home/rick/src/Qt/5.9/android_armv7/./mkspecs/android-g++ -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtConcurrent -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtWidgets -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtGui -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtNetwork -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtSvg -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtPositioning -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtQuick -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtQml -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtQuickControls2 -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtAndroidExtras -isystem /home/rick/src/Qt/5.9/android_armv7/include/QtBluetooth -Wno-psabi --sysroot=/home/rick/src/subsurface/ndk-arm/sysroot -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -std=c++11 -Wfloat-conversion -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG -fPIC -fPIC -o CMakeFiles/subsurface-mobile.dir/qrc_kirigami.cpp.o -c /home/rick/src/subsurface/subsurface-mobile-build-arm/qrc_kirigami.cpp Successfully remade target file `CMakeFiles/subsurface-mobile.dir/qrc_kirigami.cpp.o'. Must remake target `libsubsurface-mobile.so'. [ 77%] Linking CXX shared library libsubsurface-mobile.so /usr/bin/cmake -E cmake_link_script CMakeFiles/subsurface-mobile.dir/link.txt --verbose=1 /home/rick/src/subsurface/ndk-arm/bin/arm-linux-androideabi-gcc -fPIC -Wno-psabi --sysroot=/home/rick/src/subsurface/ndk-arm/sysroot -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -std=c++11 -Wfloat-conversion -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libsubsurface-mobile.so -o libsubsurface-mobile.so CMakeFiles/subsurface-mobile.dir/mobile-widgets/qmlmanager.cpp.o CMakeFiles/subsurface-mobile.dir/mobile-widgets/qmlprofile.cpp.o CMakeFiles/subsurface-mobile.dir/mobile-widgets/qml/kirigami/src/kirigamiplugin.cpp.o CMakeFiles/subsurface-mobile.dir/mobile-widgets/qml/kirigami/src/settings.cpp.o CMakeFiles/subsurface-mobile.dir/mobile-widgets/qml/kirigami/src/enums.cpp.o CMakeFiles/subsurface-mobile.dir/subsurface-mobile-main.cpp.o CMakeFiles/subsurface-mobile.dir/subsurface-mobile-helper.cpp.o CMakeFiles/subsurface-mobile.dir/qrc_subsurface.cpp.o CMakeFiles/subsurface-mobile.dir/qrc_mobile-resources.cpp.o CMakeFiles/subsurface-mobile.dir/qrc_kirigami.cpp.o CMakeFiles/subsurface-mobile.dir/subsurface-mobile_autogen/moc_compilation.cpp.o -L/home/rick/src/subsurface/ndk-arm/user/libs/armeabi-v7a -L/home/rick/src/subsurface/ndk-arm/sysroot/usr/lib profile-widget/libsubsurface_profile.a qt-models/libsubsurface_models.a core/libsubsurface_corelib.a -lgit2 -ldivecomputer -lftdi1 -lusb-1.0 -lftdi1 -lusb-1.0 -lxml2 -lsqlite3 -lxslt -lxml2 -lz -lm -lxml2 -lzip -lz -lusb-1.0 -llog ../ndk-arm/sysroot/usr/lib/libssl.a ../ndk-arm/sysroot/usr/lib/libcrypto.a -lusb-1.0 /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Concurrent.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Svg.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Widgets.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Positioning.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5QuickControls2.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Quick.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Qml.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Network.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Gui.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5AndroidExtras.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Bluetooth.so /home/rick/src/Qt/5.9/android_armv7/lib/libQt5Core.so -lftdi1 -lxml2 -lsqlite3 -lxslt -lz -lm -lzip -llog ../ndk-arm/sysroot/usr/lib/libssl.a ../ndk-arm/sysroot/usr/lib/libcrypto.a -Wl,-rpath-link,/home/rick/src/subsurface/ndk-arm/sysroot/usr/lib "/home/rick/src/subsurface/ndk-arm/arm-linux-androideabi/lib/armv7-a/libstdc++.a" "/home/rick/src/subsurface/ndk-arm/arm-linux-androideabi/lib/armv7-a/libsupc++.a" -lm /home/rick/src/subsurface/libgit2-0.24.1/src/cache.c:117: error: undefined reference to 'rand' collect2: error: ld returned 1 exit status make[2]: *** [libsubsurface-mobile.so] Error 1 make[2]: Leaving directory `/home/rick/src/subsurface/subsurface-mobile-build-arm' make[1]: *** [CMakeFiles/subsurface-mobile.dir/all] Error 2 make[1]: Leaving directory `/home/rick/src/subsurface/subsurface-mobile-build-arm' make: *** [all] Error 2
_______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
