git: 86e7abbbf467 - main - lang/gcc12: Expose non-default -stdlib=libc++ support

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Thu, 25 Aug 2022 21:35:52 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=86e7abbbf467e97ffa58363ca3327d08395931ee

commit 86e7abbbf467e97ffa58363ca3327d08395931ee
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2022-08-20 16:06:02 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-08-25 21:35:37 +0000

    lang/gcc12: Expose non-default -stdlib=libc++ support
    
    Fix -stdlib=libc++ option which produced "error: unrecognized
    command-line option '-stdlib=libc++'".
    
    PR:             265962
    Approved by:    salvadore (maintainer)
    Exp-run by:     antoine (via bug 265964)
---
 lang/gcc12/Makefile             |  2 ++
 lang/gcc12/files/patch-libcxxrt | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/lang/gcc12/Makefile b/lang/gcc12/Makefile
index 0eacf66f3ee3..674e6524e43b 100644
--- a/lang/gcc12/Makefile
+++ b/lang/gcc12/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	gcc
 PORTVERSION=	12.2.0
+PORTREVISION=	1
 CATEGORIES=	lang
 MASTER_SITES=	GCC
 PKGNAMESUFFIX=	${SUFFIX}
@@ -96,6 +97,7 @@ CONFIGURE_ARGS+=--disable-nls \
 		--with-as=${LOCALBASE}/bin/as \
 		--with-gmp=${LOCALBASE} \
 		--with-gxx-include-dir=${TARGLIB}/include/c++/ \
+		--with-gxx-libcxx-include-dir=/usr/include/c++/v1 \
 		--with-ld=${LOCALBASE}/bin/ld \
 		${ICONV_CONFIGURE_ARG} \
 		--with-pkgversion="FreeBSD Ports Collection" \
diff --git a/lang/gcc12/files/patch-libcxxrt b/lang/gcc12/files/patch-libcxxrt
new file mode 100644
index 000000000000..beb02cbcc480
--- /dev/null
+++ b/lang/gcc12/files/patch-libcxxrt
@@ -0,0 +1,18 @@
+libc++ on FreeBSD always uses PathScale libcxxrt and cannot change to
+LLVM libc++abi without breaking backward compatibility. Besides, mixing
+different C++ ABIs is not supported unless subset via DT_FILTER.
+
+https://github.com/llvm/llvm-project/commit/35479ffb1251
+https://github.com/freebsd/freebsd-src/commit/cf56074e5271
+
+--- gcc/cp/g++spec.cc.orig	2022-08-19 08:09:52 UTC
++++ gcc/cp/g++spec.cc
+@@ -60,7 +60,7 @@ along with GCC; see the file COPYING3.  If not see
+ #endif
+ 
+ #ifndef LIBCXXABI
+-#define LIBCXXABI "c++abi"
++#define LIBCXXABI "cxxrt"
+ #endif
+ #ifndef LIBCXXABI_PROFILE
+ #define LIBCXXABI_PROFILE LIBCXXABI