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

Attachment: 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
> 
> 

Reply via email to