diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2026-08-17 21:50:46 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2026-08-22 22:22:19 +0000 |
| commit | 096369a791fb1e5765083bfff11fa56cd76d2fc3 (patch) | |
| tree | e722a4d0cea888465027d7755d73bdf2cbf67dbe /devel/rubygem-scientist | |
| parent | 4e5276e1347307c7819851be193520dc01f803fe (diff) | |
After base d08296c7ab0d7bb259bf7b8cdf9ffb819c1929ab ("libc: Implement
qualifier-preserving standard library functions"), lang/gcc17-devel
fails to build with an error like:
In file included from /wrkdirs/usr/ports/lang/gcc17-devel/work/.build/gcc/include-fixed/stdio.h:52,
from cp-demangle.c:109:
/wrkdirs/usr/ports/lang/gcc17-devel/work/gcc-17-20260727/libstdc++-v3/../include/libiberty.h:225:14: error: expected identifier or '(' before '_Generic'
225 | extern void *memrchr(const void *, int, size_t);
| ^~~~~~~
This is because memrchr is now a macro, similar to the other functions
in <string.h>, and libiberty.h attempts to incorrectly redeclare it.
In turn, cp-demangle.c includes libiberty.h, but does not include the
config.h generated for libiberty.h, instead using the config.h generated
for libstdc++.
The problem is really with the way upstream creates its config.h
headers: they should either make libiberty.h automatically include its
own config.h file, or rename that one to libiberty-config.h, so it can
be included at the same time as the libstdc++ config.h header.
The easiest way to fix it is to add a '!defined(__FreeBSD__)'
conditional to the #if statement that attempts to declare the
incompatible memrchr.
PR: 297629
Approved by: salvadore (maintainer)
MFH: 2026Q3
Diffstat (limited to 'devel/rubygem-scientist')
0 files changed, 0 insertions, 0 deletions
