[packages/crossmingw32-boost] - updated to 1.59.0 - added windows-decl patch (fixes serialization module issues with gcc) - added

qboosh qboosh at pld-linux.org
Sun Sep 13 16:59:21 CEST 2015


commit 60b3a2030208ab590265be20f691983b0579f890
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Sep 13 17:00:56 2015 +0200

    - updated to 1.59.0
    - added windows-decl patch (fixes serialization module issues with gcc)
    - added context-mingw patch (updates gas/win32 support)

 boost-context-mingw.patch |  36 ++++++
 boost-windows-decl.patch  | 318 ++++++++++++++++++++++++++++++++++++++++++++++
 crossmingw32-boost.spec   |  26 ++--
 3 files changed, 372 insertions(+), 8 deletions(-)
---
diff --git a/crossmingw32-boost.spec b/crossmingw32-boost.spec
index 8e090b1..a379feb 100644
--- a/crossmingw32-boost.spec
+++ b/crossmingw32-boost.spec
@@ -6,13 +6,16 @@
 Summary:	The Boost C++ Libraries - MinGW32 cross version
 Summary(pl.UTF-8):	Biblioteki C++ "Boost" - wersja skrośna dla MinGW32
 Name:		crossmingw32-%{realname}
-Version:	1.55.0
+Version:	1.59.0
 %define	fver	%(echo %{version} | tr . _)
 Release:	1
 License:	Boost Software License and others
 Group:		Development/Libraries
 Source0:	http://downloads.sourceforge.net/boost/%{realname}_%{fver}.tar.bz2
-# Source0-md5:	d6eef4b4cacb2183f2bf265a5a03a354
+# Source0-md5:	6aa9a5c6a4ca1016edd0ed1178e3cb87
+# https://github.com/boostorg/serialization/pull/19.patch
+Patch0:		boost-windows-decl.patch
+Patch1:		boost-context-mingw.patch
 URL:		http://www.boost.org/
 BuildRequires:	crossmingw32-bzip2
 BuildRequires:	crossmingw32-gcc-c++
@@ -46,7 +49,7 @@ BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define		filterout_c	-f[-a-z0-9=]*
 %define		filterout_cxx	-f[-a-z0-9=]*
 
-%define		abi_tag		1_55
+%define		abi_tag		1_59
 
 %description
 The Boost web site provides free peer-reviewed portable C++ source
@@ -94,14 +97,16 @@ Boost - biblioteki DLL dla Windows.
 
 %prep
 %setup -q -n %{realname}_%{fver}
+%patch0 -p1
+%patch1 -p0
 
 echo 'using gcc : : %{target}-g++ : ' \
 	'<cxxflags>"%{rpmcxxflags}"' \
 	'<archiver>%{target}-ar' \
-	'<rc>%{target}-windres ;' >tools/build/v2/user-config.jam
+	'<rc>%{target}-windres ;' >tools/build/src/user-config.jam
 
 # use Windows Message Compiler, not Midnight Commander
-%{__sed} -i -e 's,mc $(MCFLAGS),%{target}-windmc $(MCFLAGS),' tools/build/v2/tools/mc.jam
+%{__sed} -i -e 's,mc $(MCFLAGS),%{target}-windmc $(MCFLAGS),' tools/build/src/tools/mc.jam
 
 %build
 ./bootstrap.sh --prefix=%{_prefix}
@@ -110,9 +115,11 @@ echo 'using gcc : : %{target}-g++ : ' \
 	%{_smp_mflags} \
 	-sBZIP2_BINARY=bzip2 \
 	--layout=versioned \
-	%{!?with_context:--without-context --without-coroutine} \
+	%{!?with_context:--without-context --without-coroutine --without-coroutine2} \
 	--without-python \
 	--without-test \
+	abi=ms \
+	binary-format=pe \
 	debug-symbols=on \
 	inlining=on \
 	link=static,shared \
@@ -142,6 +149,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_libdir}/libboost_atomic-mgw*-mt-%{abi_tag}.dll.a
 %{_libdir}/libboost_chrono-mgw*-mt-%{abi_tag}.dll.a
+%{_libdir}/libboost_container-mgw*-mt-%{abi_tag}.dll.a
 %{?with_context:%{_libdir}/libboost_context-mgw*-mt-%{abi_tag}.dll.a}
 %{?with_context:%{_libdir}/libboost_coroutine-mgw*-mt-%{abi_tag}.dll.a}
 %{_libdir}/libboost_date_time-mgw*-mt-%{abi_tag}.dll.a
@@ -175,6 +183,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_libdir}/libboost_atomic-mgw*-mt-%{abi_tag}.a
 %{_libdir}/libboost_chrono-mgw*-mt-%{abi_tag}.a
+%{_libdir}/libboost_container-mgw*-mt-%{abi_tag}.a
 %{?with_context:%{_libdir}/libboost_context-mgw*-mt-%{abi_tag}.a}
 %{?with_context:%{_libdir}/libboost_coroutine-mgw*-mt-%{abi_tag}.a}
 %{_libdir}/libboost_date_time-mgw*-mt-%{abi_tag}.a
@@ -205,8 +214,9 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_dlldir}/libboost_atomic-mgw*-mt-%{abi_tag}.dll
 %{_dlldir}/libboost_chrono-mgw*-mt-%{abi_tag}.dll
-%{?with_context:%{_libdir}/libboost_context-mgw*-mt-%{abi_tag}.dll}
-%{?with_context:%{_libdir}/libboost_coroutine-mgw*-mt-%{abi_tag}.dll}
+%{_dlldir}/libboost_container-mgw*-mt-%{abi_tag}.dll
+%{?with_context:%{_dlldir}/libboost_context-mgw*-mt-%{abi_tag}.dll}
+%{?with_context:%{_dlldir}/libboost_coroutine-mgw*-mt-%{abi_tag}.dll}
 %{_dlldir}/libboost_date_time-mgw*-mt-%{abi_tag}.dll
 %{_dlldir}/libboost_filesystem-mgw*-mt-%{abi_tag}.dll
 %{_dlldir}/libboost_graph-mgw*-mt-%{abi_tag}.dll
diff --git a/boost-context-mingw.patch b/boost-context-mingw.patch
new file mode 100644
index 0000000..895d438
--- /dev/null
+++ b/boost-context-mingw.patch
@@ -0,0 +1,36 @@
+--- libs/context/src/asm/jump_i386_ms_pe_gas.asm.mingw	2015-09-02 16:03:06.406321632 +0200
++++ libs/context/src/asm/jump_i386_ms_pe_gas.asm	2015-09-02 16:04:17.632915315 +0200
+@@ -138,3 +138,6 @@
+ 
+     /* indirect jump to context */
+     jmp  *%edx
++
++.section .drectve
++.ascii " -export:\"jump_fcontext\""
+--- libs/context/src/asm/jump_x86_64_ms_pe_gas.asm.mingw	2015-09-02 16:03:13.495380721 +0200
++++ libs/context/src/asm/jump_x86_64_ms_pe_gas.asm	2015-09-02 16:04:12.488872439 +0200
+@@ -223,3 +223,6 @@
+     /* indirect jump to context */
+     jmp  *%r10
+ .seh_endproc
++
++.section .drectve
++.ascii " -export:\"jump_fcontext\""
+--- libs/context/src/asm/make_i386_ms_pe_gas.asm.mingw	2015-09-02 16:03:22.486455662 +0200
++++ libs/context/src/asm/make_i386_ms_pe_gas.asm	2015-09-02 16:04:32.409038476 +0200
+@@ -122,3 +122,6 @@
+     hlt
+ 
+ .def	__exit;	.scl	2;	.type	32;	.endef  /* standard C library function */
++
++.section .drectve
++.ascii " -export:\"make_fcontext\""
+--- libs/context/src/asm/make_x86_64_ms_pe_gas.asm.mingw	2015-09-02 16:03:30.631523552 +0200
++++ libs/context/src/asm/make_x86_64_ms_pe_gas.asm	2015-09-02 16:04:27.433997008 +0200
+@@ -149,3 +149,6 @@
+ .seh_endproc
+ 
+ .def	_exit;	.scl	2;	.type	32;	.endef  /* standard C library function */
++
++.section .drectve
++.ascii " -export:\"make_fcontext\""
diff --git a/boost-windows-decl.patch b/boost-windows-decl.patch
new file mode 100644
index 0000000..e6d7947
--- /dev/null
+++ b/boost-windows-decl.patch
@@ -0,0 +1,318 @@
+From d635772bc306b69ec6ad22313d673d0333f863a1 Mon Sep 17 00:00:00 2001
+From: Edward Diener <eldiener at tropicsoft.com>
+Date: Mon, 20 Jul 2015 23:35:19 -0400
+Subject: [PATCH 1/5] Added missing decl attribute
+
+---
+ src/archive_exception.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/archive_exception.cpp b/src/archive_exception.cpp
+index b850f89..38c6c9c 100644
+--- a/libs/serialization/src/archive_exception.cpp
++++ b/libs/serialization/src/archive_exception.cpp
+@@ -21,6 +21,7 @@
+ namespace boost {
+ namespace archive {
+ 
++BOOST_ARCHIVE_DECL
+ unsigned int
+ archive_exception::append(unsigned int l, const char * a){
+     while(l < (sizeof(m_buffer) - 1)){
+
+From 0386df9cba448c6256d18fc542b8f21cec626dee Mon Sep 17 00:00:00 2001
+From: Edward Diener <eldiener at tropicsoft.com>
+Date: Mon, 20 Jul 2015 23:36:46 -0400
+Subject: [PATCH 2/5] Move inline function out of line since it is being
+ exported/imported. This fixes a problem with gcc.
+
+---
+ include/boost/archive/detail/basic_oarchive.hpp | 4 +---
+ src/basic_oarchive.cpp                          | 5 +++++
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/include/boost/archive/detail/basic_oarchive.hpp b/include/boost/archive/detail/basic_oarchive.hpp
+index 702c560..03ad17b 100644
+--- a/boost/archive/detail/basic_oarchive.hpp
++++ b/boost/archive/detail/basic_oarchive.hpp
+@@ -61,9 +61,7 @@ class BOOST_SYMBOL_VISIBLE basic_oarchive :
+ protected:
+     BOOST_ARCHIVE_DECL basic_oarchive(unsigned int flags = 0);
+     BOOST_ARCHIVE_DECL boost::archive::detail::helper_collection &
+-    get_helper_collection(){
+-        return *this;
+-    }
++    get_helper_collection();
+     // account for bogus gcc warning
+     #if defined(__GNUC__)
+     virtual
+diff --git a/src/basic_oarchive.cpp b/src/basic_oarchive.cpp
+index c99baeb..18522af 100644
+--- a/libs/serialization/src/basic_oarchive.cpp
++++ b/libs/serialization/src/basic_oarchive.cpp
+@@ -454,6 +454,11 @@ BOOST_ARCHIVE_DECL void
+ basic_oarchive::end_preamble(){
+ }
+ 
++BOOST_ARCHIVE_DECL helper_collection &
++basic_oarchive::get_helper_collection(){
++	return *this;
++}
++
+ } // namespace detail
+ } // namespace archive
+ } // namespace boost
+
+From 6b906b43618eea9d783128ec0f4524df89c1dcc8 Mon Sep 17 00:00:00 2001
+From: Edward Diener <eldiener at tropicsoft.com>
+Date: Mon, 27 Jul 2015 17:47:21 -0400
+Subject: [PATCH 3/5] Add copy constructor
+
+---
+ include/boost/archive/archive_exception.hpp |  1 +
+ src/archive_exception.cpp                   | 12 +++++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/include/boost/archive/archive_exception.hpp b/include/boost/archive/archive_exception.hpp
+index 1159d27..fabcdb5 100644
+--- a/boost/archive/archive_exception.hpp
++++ b/boost/archive/archive_exception.hpp
+@@ -87,6 +87,7 @@ class BOOST_SYMBOL_VISIBLE archive_exception :
+         const char * e1 = NULL,
+         const char * e2 = NULL
+     ) BOOST_NOEXCEPT;
++    BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT ;
+     virtual BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ;
+     virtual BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ;
+ };
+diff --git a/src/archive_exception.cpp b/src/archive_exception.cpp
+index 38c6c9c..94aae50 100644
+--- a/libs/serialization/src/archive_exception.cpp
++++ b/libs/serialization/src/archive_exception.cpp
+@@ -14,6 +14,7 @@
+ 
+ #include <exception>
+ #include <string>
++#include <cstring>
+ 
+ #define BOOST_ARCHIVE_SOURCE
+ #include <boost/archive/archive_exception.hpp>
+@@ -110,13 +111,22 @@ archive_exception::archive_exception(
+         break;
+     }
+ }
++
++BOOST_ARCHIVE_DECL
++archive_exception::archive_exception(archive_exception const & oth) BOOST_NOEXCEPT :
++	code(oth.code)
++{
++	std::memcpy(m_buffer,oth.m_buffer,sizeof m_buffer);
++}
++
+ BOOST_ARCHIVE_DECL
+ archive_exception::~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {}
+ 
+ BOOST_ARCHIVE_DECL const char *
+-archive_exception::what( ) const BOOST_NOEXCEPT_OR_NOTHROW {
++archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW {
+     return m_buffer;
+ }
++
+ BOOST_ARCHIVE_DECL
+ archive_exception::archive_exception() BOOST_NOEXCEPT :
+     code(no_exception)
+
+From 643fff144cee5b518cd7b07d8a619564c0b8b1d1 Mon Sep 17 00:00:00 2001
+From: Edward Diener <eldiener at tropicsoft.com>
+Date: Fri, 31 Jul 2015 06:46:14 -0400
+Subject: [PATCH 4/5] Changes for wide character serialization
+
+---
+ include/boost/archive/detail/interface_oarchive.hpp |  2 +-
+ include/boost/archive/polymorphic_iarchive.hpp      |  4 ++--
+ include/boost/archive/polymorphic_oarchive.hpp      |  4 ++--
+ include/boost/archive/xml_archive_exception.hpp     |  2 ++
+ src/archive_exception.cpp                           |  1 +
+ src/xml_archive_exception.cpp                       | 12 ++++++++++++
+ 6 files changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/include/boost/archive/detail/interface_oarchive.hpp b/include/boost/archive/detail/interface_oarchive.hpp
+index 187013b..ad067f8 100644
+--- a/boost/archive/detail/interface_oarchive.hpp
++++ b/boost/archive/detail/interface_oarchive.hpp
+@@ -29,7 +29,7 @@ namespace boost {
+ namespace archive {
+ namespace detail {
+ 
+-class BOOST_ARCHIVE_OR_WARCHIVE_DECL basic_pointer_oserializer;
++class BOOST_SYMBOL_VISIBLE basic_pointer_oserializer;
+ 
+ template<class Archive>
+ class interface_oarchive 
+diff --git a/include/boost/archive/polymorphic_iarchive.hpp b/include/boost/archive/polymorphic_iarchive.hpp
+index 7f19410..57fda71 100644
+--- a/boost/archive/polymorphic_iarchive.hpp
++++ b/boost/archive/polymorphic_iarchive.hpp
+@@ -43,8 +43,8 @@ namespace serialization {
+ } // namespace serialization
+ namespace archive {
+ namespace detail {
+-    class BOOST_ARCHIVE_DECL basic_iarchive;
+-    class BOOST_ARCHIVE_DECL basic_iarchive;
++    class BOOST_SYMBOL_VISIBLE basic_iarchive;
++    class BOOST_SYMBOL_VISIBLE basic_iserializer;
+ }
+ 
+ class polymorphic_iarchive;
+diff --git a/include/boost/archive/polymorphic_oarchive.hpp b/include/boost/archive/polymorphic_oarchive.hpp
+index aa30b2a..bf543b0 100644
+--- a/boost/archive/polymorphic_oarchive.hpp
++++ b/boost/archive/polymorphic_oarchive.hpp
+@@ -42,8 +42,8 @@ namespace serialization {
+ } // namespace serialization
+ namespace archive {
+ namespace detail {
+-    class BOOST_ARCHIVE_DECL basic_oarchive;
+-    class BOOST_ARCHIVE_DECL basic_oserializer;
++    class BOOST_SYMBOL_VISIBLE basic_oarchive;
++    class BOOST_SYMBOL_VISIBLE basic_oserializer;
+ }
+ 
+ class polymorphic_oarchive;
+diff --git a/include/boost/archive/xml_archive_exception.hpp b/include/boost/archive/xml_archive_exception.hpp
+index b07f9a0..45e4731 100644
+--- a/boost/archive/xml_archive_exception.hpp
++++ b/boost/archive/xml_archive_exception.hpp
+@@ -45,6 +45,8 @@ class BOOST_SYMBOL_VISIBLE xml_archive_exception :
+         const char * e1 = NULL,
+         const char * e2 = NULL
+     );
++    BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &) ;
++    BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ;
+ };
+ 
+ }// namespace archive
+diff --git a/src/archive_exception.cpp b/src/archive_exception.cpp
+index 94aae50..5ff4b5f 100644
+--- a/libs/serialization/src/archive_exception.cpp
++++ b/libs/serialization/src/archive_exception.cpp
+@@ -114,6 +114,7 @@ archive_exception::archive_exception(
+ 
+ BOOST_ARCHIVE_DECL
+ archive_exception::archive_exception(archive_exception const & oth) BOOST_NOEXCEPT :
++	std::exception(oth),
+ 	code(oth.code)
+ {
+ 	std::memcpy(m_buffer,oth.m_buffer,sizeof m_buffer);
+diff --git a/src/xml_archive_exception.cpp b/src/xml_archive_exception.cpp
+index c1431e2..37144d3 100644
+--- a/libs/serialization/src/xml_archive_exception.cpp
++++ b/libs/serialization/src/xml_archive_exception.cpp
+@@ -51,6 +51,18 @@ xml_archive_exception::xml_archive_exception(
+             break;
+         }
+     }
++    
++BOOST_ARCHIVE_DECL
++xml_archive_exception::xml_archive_exception(xml_archive_exception const & oth) :
++ 	archive_exception(oth)
++	{
++	}
++	
++BOOST_ARCHIVE_DECL const char * 
++xml_archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW
++	{
++	return archive_exception::what();
++	}
+ 
+ } // archive
+ } // boost
+
+From 1f769b8cd914fceb981fe6a15309e1e5e5b67958 Mon Sep 17 00:00:00 2001
+From: Edward Diener <eldiener at tropicsoft.com>
+Date: Sun, 2 Aug 2015 17:48:11 -0400
+Subject: [PATCH 5/5] Backed out some unnecessary changes for the build. The
+ main change is the exporting/importing of the destructor, which does nothing,
+ for xml_archive_exception.
+
+---
+ include/boost/archive/detail/interface_oarchive.hpp | 2 +-
+ include/boost/archive/polymorphic_iarchive.hpp      | 4 ++--
+ include/boost/archive/polymorphic_oarchive.hpp      | 4 ++--
+ include/boost/archive/xml_archive_exception.hpp     | 2 +-
+ src/xml_archive_exception.cpp                       | 6 +-----
+ 5 files changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/include/boost/archive/detail/interface_oarchive.hpp b/include/boost/archive/detail/interface_oarchive.hpp
+index ad067f8..187013b 100644
+--- a/boost/archive/detail/interface_oarchive.hpp
++++ b/boost/archive/detail/interface_oarchive.hpp
+@@ -29,7 +29,7 @@ namespace boost {
+ namespace archive {
+ namespace detail {
+ 
+-class BOOST_SYMBOL_VISIBLE basic_pointer_oserializer;
++class BOOST_ARCHIVE_OR_WARCHIVE_DECL basic_pointer_oserializer;
+ 
+ template<class Archive>
+ class interface_oarchive 
+diff --git a/include/boost/archive/polymorphic_iarchive.hpp b/include/boost/archive/polymorphic_iarchive.hpp
+index 57fda71..b465bb1 100644
+--- a/boost/archive/polymorphic_iarchive.hpp
++++ b/boost/archive/polymorphic_iarchive.hpp
+@@ -43,8 +43,8 @@ namespace serialization {
+ } // namespace serialization
+ namespace archive {
+ namespace detail {
+-    class BOOST_SYMBOL_VISIBLE basic_iarchive;
+-    class BOOST_SYMBOL_VISIBLE basic_iserializer;
++    class BOOST_ARCHIVE_DECL basic_iarchive;
++    class BOOST_ARCHIVE_DECL basic_iserializer;
+ }
+ 
+ class polymorphic_iarchive;
+diff --git a/include/boost/archive/polymorphic_oarchive.hpp b/include/boost/archive/polymorphic_oarchive.hpp
+index bf543b0..aa30b2a 100644
+--- a/boost/archive/polymorphic_oarchive.hpp
++++ b/boost/archive/polymorphic_oarchive.hpp
+@@ -42,8 +42,8 @@ namespace serialization {
+ } // namespace serialization
+ namespace archive {
+ namespace detail {
+-    class BOOST_SYMBOL_VISIBLE basic_oarchive;
+-    class BOOST_SYMBOL_VISIBLE basic_oserializer;
++    class BOOST_ARCHIVE_DECL basic_oarchive;
++    class BOOST_ARCHIVE_DECL basic_oserializer;
+ }
+ 
+ class polymorphic_oarchive;
+diff --git a/include/boost/archive/xml_archive_exception.hpp b/include/boost/archive/xml_archive_exception.hpp
+index 45e4731..82c53ef 100644
+--- a/boost/archive/xml_archive_exception.hpp
++++ b/boost/archive/xml_archive_exception.hpp
+@@ -46,7 +46,7 @@ class BOOST_SYMBOL_VISIBLE xml_archive_exception :
+         const char * e2 = NULL
+     );
+     BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &) ;
+-    BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ;
++    virtual BOOST_ARCHIVE_DECL ~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ;
+ };
+ 
+ }// namespace archive
+diff --git a/src/xml_archive_exception.cpp b/src/xml_archive_exception.cpp
+index 37144d3..f4bf896 100644
+--- a/libs/serialization/src/xml_archive_exception.cpp
++++ b/libs/serialization/src/xml_archive_exception.cpp
+@@ -58,11 +58,7 @@ xml_archive_exception::xml_archive_exception(xml_archive_exception const & oth)
+ 	{
+ 	}
+ 	
+-BOOST_ARCHIVE_DECL const char * 
+-xml_archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW
+-	{
+-	return archive_exception::what();
+-	}
++BOOST_ARCHIVE_DECL xml_archive_exception::~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {}
+ 
+ } // archive
+ } // boost
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/crossmingw32-boost.git/commitdiff/60b3a2030208ab590265be20f691983b0579f890



More information about the pld-cvs-commit mailing list