aboutsummaryrefslogtreecommitdiff
path: root/devel/boost-libs
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2018-11-07 02:47:38 +0000
committerJan Beich <jbeich@FreeBSD.org>2018-11-07 02:47:38 +0000
commit4fa3854eecbd58e39de81e969576bba5b107bb08 (patch)
tree7cac6552ee4e35c7af71a3ad959a7226bf5312c2 /devel/boost-libs
parent1a2622a1c510994cfd9531a7c80463e86e789a31 (diff)
downloadports-4fa3854eecbd58e39de81e969576bba5b107bb08.tar.gz
ports-4fa3854eecbd58e39de81e969576bba5b107bb08.zip
devel/boost-libs: unbreak some C++14 consumers with GCC after r479222
Boost 1.68 changed System ABI[1] for C++14 but due to a GCC bug it's disabled for C++ >= 17. As our Boost package is built in C++17 consumers cannot use C++14. So, disable the new ABI for the affected GCC versions regardless of C++ standard. [1] https://github.com/boostorg/system/commit/7b6dcf6ac668 PR: 231447 Reported by: Piotr Kubaj
Notes
Notes: svn path=/head/; revision=484377
Diffstat (limited to 'devel/boost-libs')
-rw-r--r--devel/boost-libs/Makefile2
-rw-r--r--devel/boost-libs/files/patch-boost_system_error__code.hpp35
2 files changed, 36 insertions, 1 deletions
diff --git a/devel/boost-libs/Makefile b/devel/boost-libs/Makefile
index 689d47bf2234..4d9193e7900b 100644
--- a/devel/boost-libs/Makefile
+++ b/devel/boost-libs/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= boost-libs
-PORTREVISION= 2
+PORTREVISION= 3
COMMENT= Free portable C++ libraries (without Boost.Python)
diff --git a/devel/boost-libs/files/patch-boost_system_error__code.hpp b/devel/boost-libs/files/patch-boost_system_error__code.hpp
new file mode 100644
index 000000000000..11091c0a62ea
--- /dev/null
+++ b/devel/boost-libs/files/patch-boost_system_error__code.hpp
@@ -0,0 +1,35 @@
+Boost.System built in C++ >= 17 doesn't support C++14 consumers with GCC 7.3
+
+$ cat >a.cc
+#include <boost/system/error_code.hpp>
+
+int main()
+{
+ boost::system::error_code e;
+ e.clear();
+ return 0;
+}
+
+$ g++7 -std=gnu++98 -lboost_system a.cc
+$ g++7 -std=gnu++03 -lboost_system a.cc
+$ g++7 -std=gnu++11 -lboost_system a.cc
+$ g++7 -std=gnu++17 -lboost_system a.cc
+$ g++7 -std=gnu++14 -lboost_system a.cc
+/tmp//cciZnzeq.o: In function `main':
+a.cc:(.text+0x24): undefined reference to `boost::system::detail::system_category_instance'
+/tmp//cciZnzeq.o: In function `boost::system::system_category()':
+a.cc:(.text._ZN5boost6system15system_categoryEv[_ZN5boost6system15system_categoryEv]+0x5): undefined reference to `boost::system::detail::system_category_instance'
+/tmp//cciZnzeq.o: In function `boost::system::generic_category()':
+a.cc:(.text._ZN5boost6system16generic_categoryEv[_ZN5boost6system16generic_categoryEv]+0x5): undefined reference to `boost::system::detail::generic_category_instance'
+
+--- boost/system/error_code.hpp.orig 2018-08-01 20:50:53 UTC
++++ boost/system/error_code.hpp
+@@ -43,7 +43,7 @@
+ # define BOOST_SYSTEM_HAS_CONSTEXPR
+ #endif
+
+-#if defined(__GNUC__) && (__GNUC__ == 7 && __GNUC_MINOR__ < 4) && __cplusplus >= 201700L
++#if defined(__GNUC__) && (__GNUC__ == 7 && __GNUC_MINOR__ < 4)
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83835
+ # undef BOOST_SYSTEM_HAS_CONSTEXPR
+ #endif