Daniel Shahaf <[email protected]> writes:
> Please get the tarballs from
> https://dist.apache.org/repos/dist/dev/subversion
> and add your signatures there.
By default we build both shared and static libraries. When building
against KDE5 the static build of kwallet.cpp fails with the less than
obvious error:
Makefile:776: recipe for target 'subversion/libsvn_auth_kwallet/kwallet.lo'
failed
The underlying error (which the build hides by redirecting static build
errors to /dev/null) is:
In file included from
/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:43:0,
from
/usr/include/x86_64-linux-gnu/qt5/QtCore/QCoreApplication:1,
from subversion/libsvn_auth_kwallet/kwallet.cpp:38:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1113:4: error: #error "You
must build your code with position independent code if Qt was built with
-reduce-relocations. " "Compile your code with -fPIC (-fPIE is not enough)."
# error "You must build your code with position independent code if Qt was
built with -reduce-relocations. "\
^~~~~
For now the user can resolve the build error by configuring with
--disable-static, or by replacing the KDE5 build environment with KDE4,
or by configuring with --without-kwallet.
What is the long-term solution? The static auth provider libraries are
a bit pointless. Our own libraries only ever dynamically loads the
shared libraries, and the configure script explicitly requires shared
library support to enable the auth providers.
I suppose we could pass -fPIC to the static kwallet auth provider build
but perhaps some Makefile magic to disable all the static auth provider
builds would be better.
--
Philip