Date: Fri, 25 Nov 2016 12:54:01 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r427110 - head/lang/gcc/files Message-ID: <201611251254.uAPCs1uH021739@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim (src committer) Date: Fri Nov 25 12:54:01 2016 New Revision: 427110 URL: https://svnweb.freebsd.org/changeset/ports/427110 Log: 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 Added: head/lang/gcc/files/patch-gcc_system.h - copied unchanged from r427090, head/lang/gcc49/files/patch-gcc_system.h Copied: head/lang/gcc/files/patch-gcc_system.h (from r427090, head/lang/gcc49/files/patch-gcc_system.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/gcc/files/patch-gcc_system.h Fri Nov 25 12:54:01 2016 (r427110, copy of r427090, head/lang/gcc49/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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611251254.uAPCs1uH021739>