Details
-
Bug
-
Resolution: Incomplete
-
P3: Somewhat important
-
None
-
5.9.0 Beta 2
-
None
Description
Given the following configure line:
../qt5/configure -opensource -confirm-license -xplatform android-clang -nomake tests -nomake examples -android-ndk /opt/android-ndk-r14b -android-sdk /opt/android-sdk -android-arch armeabi-v7a -no-warnings-are-errors -opengl es2 -opengles3 -android-ndk-platform android-23 -prefix /opt/qt-android
Configure fails with :
ERROR: Feature 'opengles3' was enabled, but the pre-condition 'features.opengles2 && !features.angle && tests.opengles3' failed.
When checking config.log it seems that the configure test uses libGLESv2 instead of libGLESv3:
> /opt/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target armv7-none-linux-androideabi -gcc-toolchain /opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot=/opt/android-ndk-r14b/platforms/android-23/arch-arm/ -fuse-ld=gold -Wl,-soname,libopengles3.so -Wl,--no-undefined -Wl,-z,noexecstack -shared -o libopengles3.so opengles3.o -L/opt/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a -L/opt/android-ndk-r14b/platforms/android-23/arch-arm//usr/lib -L/opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x -lGLESv2 -lgnustl_shared -llog -lz -lm -ldl -lc -lgcc > opengles3.o:/opt/qt5/qtbase/config.tests/unix/opengles3/opengles3.cpp:function main: error: undefined reference to 'glGetStringi' > opengles3.o:/opt/qt5/qtbase/config.tests/unix/opengles3/opengles3.cpp:function main: error: undefined reference to 'glReadBuffer' > opengles3.o:/opt/qt5/qtbase/config.tests/unix/opengles3/opengles3.cpp:function main: error: undefined reference to 'glUniformMatrix2x3fv' > opengles3.o:/opt/qt5/qtbase/config.tests/unix/opengles3/opengles3.cpp:function main: error: undefined reference to 'glMapBufferRange' > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
The mkspec file (mkspecs/common/android-base-tail.conf) only has :
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
It works if replacing with -lGLESv3