official lang/gcc14 package builds are broken, at least for armv7: "error: attempt to use a poisoned identifier" and more

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 17 Sep 2024 14:24:33 UTC
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