aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2016-11-25 20:54:01 +0800
committerdim <dim@FreeBSD.org>2016-11-25 20:54:01 +0800
commit1286cb7780422dc896fb6b7aa98ebc6122e7589e (patch)
treea39370a965c832b3f01c3781dcd7893b35aebe16 /lang
parentd66662710449aa6814aad8f499150862e89330b6 (diff)
downloadfreebsd-ports-gnome-1286cb7780422dc896fb6b7aa98ebc6122e7589e.tar.gz
freebsd-ports-gnome-1286cb7780422dc896fb6b7aa98ebc6122e7589e.tar.zst
freebsd-ports-gnome-1286cb7780422dc896fb6b7aa98ebc6122e7589e.zip
Fix build of lang/gcc with libc++ 3.9.0, similar to r421625:
While testing the clang390-import branch, I ran into the following errors building lang/gcc49: In file included from /wrkdirs/usr/ports/lang/gcc49/work/gcc-4.9.4/gcc/c/c-objc-common.c:33: In file included from /usr/include/c++/v1/new:70: /usr/include/c++/v1/exception:267:5: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'? _VSTD::abort(); ^~~~~~~ /usr/include/c++/v1/__config:451:15: note: expanded from macro '_VSTD' #define _VSTD std::_LIBCPP_NAMESPACE ^ /wrkdirs/usr/ports/lang/gcc49/work/gcc-4.9.4/gcc/system.h:685:13: note: 'fancy_abort' declared here extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; ^ 1 error generated. What is happening here, is that the source file includes gcc/system.h, which defines abort to fancy_abort, and then the source file includes <new>, which attempts to call _VSTD::abort() (the _VSTD is a libc++ alias for std::). The macro definition then causes the above breakage. Newer gcc ports, such as gcc5 and gcc6 don't show this issue, because upstream gcc first added an include of <algorithm> (which indirectly includes <new>) in r217348 [1], and later even add a direct include of <new> in r232736 [2]. Fix it for this version, by adding the direct include of <new> to gcc/system.h. This makes the 'second' includes of <new> in some .c files superfluous, but at least they won't result in errors. [1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=217348 [2] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=232736 Approved by: portmgr (antoine) PR: 212465
Diffstat (limited to 'lang')
-rw-r--r--lang/gcc/files/patch-gcc_system.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/lang/gcc/files/patch-gcc_system.h b/lang/gcc/files/patch-gcc_system.h
new file mode 100644
index 000000000000..05f61aaab868
--- /dev/null
+++ b/lang/gcc/files/patch-gcc_system.h
@@ -0,0 +1,10 @@
+--- gcc/system.h.orig 2014-01-02 22:23:26 UTC
++++ gcc/system.h
+@@ -203,6 +203,7 @@ extern int errno;
+
+ #ifdef __cplusplus
+ # include <cstring>
++# include <new>
+ #endif
+
+ /* Some of glibc's string inlines cause warnings. Plus we'd rather