Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Nov 2018 02:47:38 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r484377 - in head/devel/boost-libs: . files
Message-ID:  <201811070247.wA72lcZs061511@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Wed Nov  7 02:47:38 2018
New Revision: 484377
URL: https://svnweb.freebsd.org/changeset/ports/484377

Log:
  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

Added:
  head/devel/boost-libs/files/patch-boost_system_error__code.hpp   (contents, props changed)
Modified:
  head/devel/boost-libs/Makefile   (contents, props changed)

Modified: head/devel/boost-libs/Makefile
==============================================================================
--- head/devel/boost-libs/Makefile	Wed Nov  7 01:08:38 2018	(r484376)
+++ head/devel/boost-libs/Makefile	Wed Nov  7 02:47:38 2018	(r484377)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	boost-libs
-PORTREVISION=	2
+PORTREVISION=	3
 
 COMMENT=	Free portable C++ libraries (without Boost.Python)
 

Added: head/devel/boost-libs/files/patch-boost_system_error__code.hpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boost-libs/files/patch-boost_system_error__code.hpp	Wed Nov  7 02:47:38 2018	(r484377)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811070247.wA72lcZs061511>