[Bug 275748] lang/gcc12 lang/gcc12-devel lang/gcc13 lang/gcc13-devel lang/gcc14-devel: fix build without bootstrap

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 13 Dec 2023 15:29:54 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275748

            Bug ID: 275748
           Summary: lang/gcc12 lang/gcc12-devel lang/gcc13
                    lang/gcc13-devel lang/gcc14-devel: fix build without
                    bootstrap
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: salvadore@freebsd.org
          Reporter: dim@FreeBSD.org
             Flags: maintainer-feedback?(salvadore@freebsd.org)
          Assignee: salvadore@freebsd.org

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.

-- 
You are receiving this mail because:
You are the assignee for the bug.