[pkg-boost-devel] Bug#841947: Bug#841947: libboost-*1.61-dev: Please build static libs with -fPIC

Steve M. Robbins steve at sumost.ca
Mon Oct 24 18:28:26 UTC 2016


My understanding is that you have to first build boost with the
pie-enabled compiler chain, then build your package with the new
boost.

c.f. https://wiki.ubuntu.com/SecurityTeam/PIE


Note that using -fPIC on static libs is against current Debian Policy.

-Steve


On Mon, Oct 24, 2016 at 08:19:13PM +0200, Gilles Filippini wrote:
> Source: boost1.61
> Version: 1.61.0+dfsg-3
> Severity: serious
> Justification: make other packages FTBFS
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Hi,
> 
> When rebuilding the psi4 package on amd6', it FTBFS with:
> 
> [100%] Linking CXX executable ../../../bin/psi4
> cd /<<PKGBUILDDIR>>/builddir/src/bin/psi4 && /usr/bin/cmake -E cmake_link_script CMakeFiles/psi4.dir/link.txt --verbose=1
> /usr/bin/c++   -DRESTRICT=__restrict__ -Xlinker -export-dynamic -fPIC -std=c++11 -fopenmp -O2 -g -DNDEBUG   CMakeFiles/psi4_objlib.dir/export_psio.cc.o CMakeFiles/psi4_objlib.dir/export_mints.cc.o CMakeFiles/psi4_objlib.dir/psi_stop.cc.o CMakeFiles/psi4_objlib.dir/export_functional.cc.o CMakeFiles/psi4_objlib.dir/export_oeprop.cc.o CMakeFiles/psi4_objlib.dir/export_plugins.cc.o CMakeFiles/psi4_objlib.dir/export_blas_lapack.cc.o CMakeFiles/psi4_objlib.dir/export_benchmarks.cc.o CMakeFiles/psi4_objlib.dir/export_efp.cc.o CMakeFiles/psi4_objlib.dir/export_cubeprop.cc.o CMakeFiles/psi4_objlib.dir/clean.cc.o CMakeFiles/psi4_objlib.dir/create_new_plugin.cc.o CMakeFiles/psi4_objlib.dir/script.cc.o CMakeFiles/psi4_objlib.dir/set_memory.cc.o CMakeFiles/psi4_objlib.dir/read_options.cc.o CMakeFiles/psi4_objlib.dir/export_libparallel.cc.o CMakeFiles/versioned_code.dir/version.cc.o CMakeFiles/versioned_code.dir/python.cc.o CMakeFiles/versioned_code.dir/psi_start.cc.o CMakeFiles/versioned_code.dir
>  /psi4.cc.o  -o ../../../bin/psi4 -rdynamic -lutil -lm -lrt -ldl -lpython2.7 -Wl,--whole-archive ../../../lib/libadc.a ../../../lib/libccdensity.a ../../../lib/libccenergy.a ../../../lib/libcceom.a ../../../lib/libcchbar.a ../../../lib/libcclambda.a ../../../lib/libccresponse.a ../../../lib/libccsort.a ../../../lib/libcctransort.a ../../../lib/libcctriples.a ../../../lib/libdcft.a ../../../lib/libdetci.a ../../../lib/libdfmp2.a ../../../lib/libdfocc.a ../../../lib/libefp.a ../../../lib/libfindif.a ../../../lib/libfisapt.a ../../../lib/libfnocc.a ../../../lib/libmcscf.a ../../../lib/libmints_wrapper.a ../../../lib/libmrcc.a ../../../lib/libocc.a ../../../lib/liboptking.a ../../../lib/libpsimrcc.a ../../../lib/libsapt.a ../../../lib/libscf.a ../../../lib/libscfgrad.a ../../../lib/libthermo.a ../../../lib/libtransqt2.a ../../../lib/libdmrg.a ../../../lib/lib3index.a ../../../lib/libciomr.a ../../../lib/libdiis.a ../../../lib/libdisp.a ../../../lib/libdpd.a ../../../lib/libefp_solver.a .
>  ./../../lib/libfock.a ../../../lib/libfunctional.a -Wl,--whole-archive ../../../lib/libiwl.a -Wl,--no-whole-archive ../../../lib/libmints.a ../../../lib/libmoinfo.a ../../../lib/liboptions.a ../../../lib/libparallel.a ../../../lib/libparallel2.a ../../../lib/libplugin.a ../../../lib/libsapt_solver.a ../../../lib/libscf_solver.a ../../../lib/libthce.a ../../../lib/libtrans.a ../../../lib/libpsi4util.a ../../../lib/libpsio.a ../../../lib/libPsiUtil.a ../../../lib/libqt.a ../../../lib/libcubeprop.a ../../../lib/libinterface_libefp.a -Wl,--no-whole-archive -Wl,-Bstatic -lboost_filesystem -lboost_python -lboost_regex -lboost_serialization -lboost_system -lboost_timer -lboost_chrono -lboost_thread -lboost_date_time -lboost_atomic -Wl,-Bdynamic -lpthread -llapack -lblas -lpython2.7 -lblas -llapack -lint -lderiv -lutil -ldl -lrt -lm /usr/lib/x86_64-linux-gnu/libchemps2.so -lchemps2 /usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so -lsz -lz -lpthread -lm -lpython2.7 -ldl -Wl,-rpath,/usr/l
>  ib/x86_64-linux-gnu/hdf5/serial/lib 
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_filesystem.a(operations.o): relocation R_X86_64_32S against symbol `_ZN5boost6detail15sp_counted_base7destroyEv' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_filesystem.a(path.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(list.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(dict.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(tuple.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(str.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(from_python.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(registry.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(type_id.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(enum.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(class.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(function.o): relocation R_X86_64_32 against symbol `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(inheritance.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(life_support.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(pickle_support.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(errors.o): relocation R_X86_64_32 against symbol `_ZN5boost6python17error_already_setD1Ev' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(module.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(builtin_converters.o): relocation R_X86_64_32 against symbol `PyInt_Type' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(iterator.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(stl_iterator.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(object_protocol.o): relocation R_X86_64_32 against hidden symbol `__dso_handle' can not be used when making a shared object
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(object_operators.o): relocation R_X86_64_32 against hidden symbol `__dso_handle' can not be used when making a shared object
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(import.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(exec.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_python.a(function_doc_signature.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_regex.a(instances.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_regex.a(regex.o): relocation R_X86_64_32S against symbol `_ZTVN5boost11regex_errorE' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_regex.a(regex_traits_defaults.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_regex.a(cpp_regex_traits.o): relocation R_X86_64_32 against symbol `_ZZN5boost16cpp_regex_traitsIcE14get_mutex_instEvE7s_mutex' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_system.a(error_code.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_thread.a(thread.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_thread.a(once.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: final link failed: Nonrepresentable section on output
> collect2: error: ld returned 1 exit status
> 
> This is related to enabling PIE and bindnow for amd64 (and some other architectures).
> 
> For more information about the changes to sid's dpkg and GCC please
> visit:
>  https://wiki.debian.org/Hardening/PIEByDefaultTransition
> 
> Thanks,
> 
> _g.
> 
> - -- System Information:
> Debian Release: stretch/sid
>   APT prefers testing
>   APT policy: (500, 'testing')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
> 
> Kernel: Linux 4.6.0-1-amd64 (SMP w/2 CPU cores)
> Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> 
> -----BEGIN PGP SIGNATURE-----
> 
> iQEcBAEBCAAGBQJYDlCYAAoJEO/obGx//s+D/jsH+wbKXMjl7jZSK+yFa9bH1jd4
> ysMoJKW+suKCmWsI43hbZV/61s/k+Jg5jiZeWXV+aWopWL/x0oSVHhk04LVZ9xIM
> mQmF35Ck6/ZQ1GgSKeh9Tkm3+yiMAAqwStr70ICbQKcrnlDWqElyhpQJL2fTMl+Y
> dHYztMcbFR9MoL1alk0eRa6EscdR8T5zpGxTzluFfbaoWLJUSJoHCBckQBwcHBaV
> TaoTZ2VbN1XycZ+3qYTPabqD38dr8syD7q5xlTkIWDsiapC/3bI1GMFNXMfoowE6
> Fwu3BFc8Dsv7DDdpG1836zDOHqCotSd/8bw7YEuNVAz+dMauJ1DjpWR6sdd6aNg=
> =g3aG
> -----END PGP SIGNATURE-----
> 
> _______________________________________________
> pkg-boost-devel mailing list
> pkg-boost-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-boost-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-boost-devel/attachments/20161024/dd5a8bf8/attachment-0001.sig>


More information about the pkg-boost-devel mailing list