https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114105
Bug ID: 114105 Summary: --disable-bootstrap based builds vs libcc1 and gcc/jit use of gcc/system.h poisoning policy Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: markmigm at gmail dot com Target Milestone: --- [ Note: not limited to gcc14 : FreeBSD ports lang/gcc12 (& -devel) and lang/gcc13 (& -devel) had to be patched for libcc1 , not just lang/gcc14-devel ] Attempting --disable-bootstrap builds of various gcc versions under clang & libc++ gets errors from, appearently, assuming that the sources and toolchain will follow the gcc internal poisoning principles. The results are errors like: 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)); | ^ (FreeBSD patches lang/gcc12* and lang/gcc13* and lang/gcc14-devel for the libcc1 issues involving poisoning identifiers.) and: In file included from /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240218/gcc/jit/dummy-frontend.cc:23: In file included from /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240218/gcc/jit/jit-playback.h:26: 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); | ^ (FreeBSD is still working on patching lang/gcc14-devel for its gcc/jit issues involving poisoning identifiers. It is possible that after that is done more issues will be exposed.) Part of the reason FreeBSD puts effort into making --disable-bootstrap work, despite it not being the default in the ports, is to allow builds that stay in the bounds of the free version of, for example, cirrus.