Package: libboost-regex-dev
Version: 1.74.0.3
Severity: normal
X-Debbugs-Cc:
fbor...@gmail.com
Dear Maintainer,
I wanted compile fat dynamic library with all its dependencies linked static and hidden symbols.
Let demonstrate on example:
```CMake
set(Boost_VERBOSE ON)
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED COMPONENTS regex)
# library
add_library(lib_r SHARED lib_r.cc)
target_link_libraries(lib_r PRIVATE Boost::regex)
# executable
add_executable(test_r main_r.cc)
target_link_libraries(test_r PRIVATE lib_r)
```
with `set(Boost_USE_STATIC_LIBS ON)` is find static version of library
```
-- Found boost_regex 1.74.0 at /usr/lib/x86_64-linux-gnu/cmake/boost_regex-1.74.0
-- [ ] libboost_regex.so.1.74.0
-- [x] libboost_regex.a
```
and linking of shared library fails on:
```
[ 50%] Linking CXX shared library liblib_r.so
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_regex.a(regex.o): warning: relocation against `_ZTVN5boost10wrapexceptISt11logic_errorEE' in read-only section `.text.unlikely'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_regex.a(instances.o): relocation R_X86_64_PC32 against symbol `_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
```
full example:
https://github.com/fboranek/boost-static
I think that even static library `libboost_regex.a` should be built with position independent code flag `-PIC`. I try the same for `Boost::thread` with the same result, so it apply probably on whole boost.
I try compile boost directly
```
./bootstrap.sh --with-libraries=regex
./b2 link=static runtime-link=shared
```
and replace `Boost::regex` by `boost/stage/lib/libboost_regex.a` and library and executable is liked witout issue. In light of this it seems the problem with packaging. I clone latest boost repo.
BR,
Frantisek
-- System Information:
Debian Release: 12.1
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 5.10.0-25-amd64 (SMP w/24 CPU threads)
Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to C.UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect
Versions of packages libboost-regex-dev depends on:
ii libboost-regex1.74-dev 1.74.0+ds1-21
libboost-regex-dev recommends no packages.
libboost-regex-dev suggests no packages.
-- no debconf information