Daniel Shahaf <d...@daniel.shahaf.name> 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

Reply via email to