mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 17:46:38 -04:00
When more recent gcc ports are built without bootstrap, compiling libcc1 plugins results in errors similar to: In file included from /wrkdirs/share/dim/ports/lang/gcc13/work/gcc-13.2.0/libcc1/libcc1plugin.cc:72: In file included from /usr/include/c++/v1/vector:321: In file included from /usr/include/c++/v1/__format/formatter_bool.h:20: In file included from /usr/include/c++/v1/__format/formatter_integral.h:32: /usr/include/c++/v1/locale:289:36: error: attempt to use a poisoned identifier 289 | __status = (unsigned char*)malloc(__nkw); | ^ /usr/include/c++/v1/locale:1584:28: error: attempt to use a poisoned identifier 1584 | __ob = (char_type*)malloc(2*static_cast<size_t>(__nc)*sizeof(char_type)); | ^ This is because gcc's own system.h header poisons these identifiers, and the libcc1 plugins include <vector> after that. (Note that libstdc++ is not affected because they seem to have implicitly included <vector> already at that point.) Fix it by telling system.h to include <vector> at the correct place, and removing the explicit includes from libcc1plugin.cc and libcp1plugin.cc. PR: 275748 MFH: 2023Q4
19 lines
389 B
C++
19 lines
389 B
C++
--- libcc1/libcc1plugin.cc.orig 2023-07-27 08:13:07 UTC
|
|
+++ libcc1/libcc1plugin.cc
|
|
@@ -32,6 +32,7 @@
|
|
#undef PACKAGE_VERSION
|
|
|
|
#define INCLUDE_MEMORY
|
|
+#define INCLUDE_VECTOR
|
|
#include "gcc-plugin.h"
|
|
#include "system.h"
|
|
#include "coretypes.h"
|
|
@@ -68,8 +69,6 @@
|
|
#include "rpc.hh"
|
|
#include "gcc-c-interface.h"
|
|
#include "context.hh"
|
|
-
|
|
-#include <vector>
|
|
|
|
using namespace cc1_plugin;
|
|
|