This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Use INCLUDE_xxx macros in gcov.c for pulling in standard C++ headers
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Dimitry Andric <dim at FreeBSD dot org>, Jan Hubicka <hubicka at ucw dot cz>, Nathan Sidwell <nathan at acm dot org>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 21 Jan 2017 23:52:05 +0100 (CET)
- Subject: Re: [PATCH] Use INCLUDE_xxx macros in gcov.c for pulling in standard C++ headers
- Authentication-results: sourceware.org; auth=none
- References: <6AC11F8E-55B8-45C5-A81C-879E2594951B@FreeBSD.org>
Honza, Nathan,
On Sat, 21 Jan 2017, Dimitry Andric wrote:
> As discussed with the FreeBSD gcc ports maintainer [1], building trunk
> gcc with libc++ requires standard C++ headers to be included *before*
> gcc/system.h, otherwise the redefinition of abort() to fancy_abort()
> will cause trouble.
>
> In r235362, most gcc C++ sources were updated to define INCLUDE_xxx
> macros before including gcc/system.h, which fixes the incompatibility
> with libc++. However, gcc/gcov.c was apparently missed. Attached is a
> patch to update it.
can you approve this as gcov maintainers?
Without this, GCC 7 will fail to build with newer versions of
Clang/libc++.
Below you find Dimitry's patch with a ChangeLog I created. Bootstrapped
on x86_64-unknown-freebsd11.0, and I can take care of committing.
Gerald
2017-01-21 Dimitry Andric <dim@FreeBSD.org>
* gcov.c (INCLUDE_ALGORITHM): Define.
(INCLUDE_VECTOR): Define.
No longer include <vector> and <algorithm>.
Index: gcov.c
===================================================================
--- gcov.c (revision 244750)
+++ gcov.c (working copy)
@@ -31,6 +31,8 @@
probabilities of fall through arcs. */
#include "config.h"
+#define INCLUDE_ALGORITHM
+#define INCLUDE_VECTOR
#include "system.h"
#include "coretypes.h"
#include "tm.h"
@@ -41,8 +43,6 @@
#include <getopt.h>
-#include <vector>
-#include <algorithm>
#include "md5.h"
using namespace std;