This is because of gcc's weird identifier poisoning system, and them not correctly marking all used standard C++ headers for inclusion before the poisoning takes place.
Try the attached patch, which I have been using for a long time now (months, at least since the bootstrap options were deleted, but which I reverted locally). -Dimitry
lang__gcc14-devel-fix-plugins-1.diff
Description: Binary data
> On 17 Sep 2024, at 16:24, Mark Millard <[email protected]> wrote: > > Also: no member named 'fancy_abort' in namespace 'std' > > Such is associated with not using STANDARD_BOOTSTRAP for armv7, given GCC's > historic lack of keeping builds of everything working for just direct use of > clang++/libc++ or the like. > > The specific change that got back into this issue was: > > -LANGUAGES:= c,c++,objc,fortran > +LANGUAGES:= c,c++,objc,fortran,jit > > It is the jit part of the build that fails to build as stands. > > See: > > https://pkg-status.freebsd.org/ampere2/data/main-armv7-default/p13f486017d78_s3df987c99/logs/errors/gcc14-14.2.0_1.log > > Example: > > In file included from > /wrkdirs/usr/ports/lang/gcc14/work/gcc-14.2.0/gcc/jit/dummy-frontend.cc:23: > In file included from > /wrkdirs/usr/ports/lang/gcc14/work/gcc-14.2.0/gcc/jit/jit-playback.h:24: > In file included from /usr/include/c++/v1/string:594: > In file included from > /usr/include/c++/v1/__memory_resource/polymorphic_allocator.h:20: > In file included from /usr/include/c++/v1/tuple:1455: > In file included from /usr/include/c++/v1/exception:82: > /usr/include/c++/v1/__exception/exception_ptr.h:111:3: error: no member named > 'fancy_abort' in namespace 'std'; did you mean simply 'fancy_abort'? > 111 | std::abort(); > | ^~~~~ > /wrkdirs/usr/ports/lang/gcc14/work/gcc-14.2.0/gcc/system.h:808:13: note: > 'fancy_abort' declared here > 808 | extern void fancy_abort (const char *, int, const char *) > | ^ > In file included from > /wrkdirs/usr/ports/lang/gcc14/work/gcc-14.2.0/gcc/jit/dummy-frontend.cc:23: > In file included from > /wrkdirs/usr/ports/lang/gcc14/work/gcc-14.2.0/gcc/jit/jit-playback.h:26: > In file included from /usr/include/c++/v1/vector:325: > 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:35: > /usr/include/c++/v1/locale:288:32: error: attempt to use a poisoned identifier > 288 | __status = (unsigned char*)malloc(__nkw); > | ^ > /usr/include/c++/v1/locale:1385:24: error: attempt to use a poisoned > identifier > 1385 | __ob = (char_type*)malloc(2 * static_cast<size_t>(__nc) * > sizeof(char_type)); > | ^ > /usr/include/c++/v1/locale:2429:31: error: attempt to use a poisoned > identifier > 2429 | _Tp* __t = (_Tp*)std::realloc(__owns ? __b.get() : 0, __new_cap); > | ^ > /usr/include/c++/v1/locale:2632:24: error: attempt to use a poisoned > identifier > 2632 | __h.reset((char*)malloc(static_cast<size_t>(__wn - __wb.get() + 2))); > | ^ > /usr/include/c++/v1/locale:2910:28: error: attempt to use a poisoned > identifier > 2910 | __hd.reset((char_type*)malloc(static_cast<size_t>(__n) * > sizeof(char_type))); > | ^ > /usr/include/c++/v1/locale:2936:28: error: attempt to use a poisoned > identifier > 2936 | __hw.reset((char_type*)malloc(__exn * sizeof(char_type))); > | ^ > /usr/include/c++/v1/locale:2974:27: error: attempt to use a poisoned > identifier > 2974 | __h.reset((char_type*)malloc(__exn * sizeof(char_type))); > | ^ > > > > === > Mark Millard > marklmi at yahoo.com > >
