Override boost_thread-mt.so with a linker script
This commit is contained in:
parent
0c64b73a16
commit
44a7aadaed
15
boost.spec
15
boost.spec
|
@ -25,7 +25,7 @@ Name: boost
|
||||||
Summary: The free peer-reviewed portable C++ source libraries
|
Summary: The free peer-reviewed portable C++ source libraries
|
||||||
Version: 1.50.0
|
Version: 1.50.0
|
||||||
%define version_enc 1_50_0
|
%define version_enc 1_50_0
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
License: Boost and MIT and Python
|
License: Boost and MIT and Python
|
||||||
|
|
||||||
%define toplev_dirname %{name}_%{version_enc}
|
%define toplev_dirname %{name}_%{version_enc}
|
||||||
|
@ -33,6 +33,7 @@ URL: http://www.boost.org
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
Source0: http://downloads.sourceforge.net/%{name}/%{toplev_dirname}.tar.bz2
|
Source0: http://downloads.sourceforge.net/%{name}/%{toplev_dirname}.tar.bz2
|
||||||
Source1: ver.py
|
Source1: ver.py
|
||||||
|
Source2: libboost_thread-mt.so
|
||||||
|
|
||||||
# From the version 13 of Fedora, the Boost libraries are delivered
|
# From the version 13 of Fedora, the Boost libraries are delivered
|
||||||
# with sonames equal to the Boost version (e.g., 1.41.0).
|
# with sonames equal to the Boost version (e.g., 1.41.0).
|
||||||
|
@ -517,7 +518,7 @@ EOF
|
||||||
#
|
#
|
||||||
# The "python=2.*" bit tells jam that we want to _also_ build 2.*, not
|
# The "python=2.*" bit tells jam that we want to _also_ build 2.*, not
|
||||||
# just 3.*. When omitted, it just builds for python 3 twice, once
|
# just 3.*. When omitted, it just builds for python 3 twice, once
|
||||||
# calling the library libbost_python and once libboost_python3. I
|
# calling the library libboost_python and once libboost_python3. I
|
||||||
# assume this is for backward compatibility for apps that are used to
|
# assume this is for backward compatibility for apps that are used to
|
||||||
# linking against -lboost_python, for when 2->3 transition is
|
# linking against -lboost_python, for when 2->3 transition is
|
||||||
# eventually done.
|
# eventually done.
|
||||||
|
@ -610,6 +611,12 @@ echo ============================= install serial ==================
|
||||||
variant=release threading=single,multi debug-symbols=on pch=off \
|
variant=release threading=single,multi debug-symbols=on pch=off \
|
||||||
python=%{python2_version} install
|
python=%{python2_version} install
|
||||||
|
|
||||||
|
# Override DSO symlink with a linker script. See the linker script
|
||||||
|
# itself for details of why we need to do this.
|
||||||
|
[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread-mt.so ] # Must be present
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread-mt.so
|
||||||
|
install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/
|
||||||
|
|
||||||
echo ============================= install Boost.Build ==================
|
echo ============================= install Boost.Build ==================
|
||||||
(cd tools/build/v2
|
(cd tools/build/v2
|
||||||
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
|
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
|
||||||
|
@ -961,6 +968,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
%{_mandir}/man1/bjam.1*
|
%{_mandir}/man1/bjam.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 15 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-4
|
||||||
|
- Override boost_thread-mt.so with a linker script that brings in
|
||||||
|
Boost.System DSO as well.
|
||||||
|
|
||||||
* Wed Aug 8 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-3
|
* Wed Aug 8 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-3
|
||||||
- boost-python3 shouldn't be under the overall boost umbrella
|
- boost-python3 shouldn't be under the overall boost umbrella
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
/* GNU ld script
|
||||||
|
|
||||||
|
Boost.Thread header files pull in enough of Boost.System that
|
||||||
|
symbols from the latter library are referenced by a compiled object
|
||||||
|
that includes Boost.Thread headers. libbost_system-mt.so is among
|
||||||
|
libbost_thread-mt.so's DT_NEEDED, but program linker requires that
|
||||||
|
missing symbols are satisfied by direct dependency, not a
|
||||||
|
transitive one. Hence this linker script, which brings in the
|
||||||
|
Boost.System DSO. */
|
||||||
|
|
||||||
|
INPUT(libboost_thread-mt.so.1.50.0)
|
||||||
|
INPUT(libboost_system-mt.so.1.50.0)
|
Loading…
Reference in New Issue