Summary: | buildworld broken due to __string on releng/13.2 building releng/13.2 | ||
---|---|---|---|
Product: | Base System | Reporter: | Ulrich Spörlein <uqs> |
Component: | misc | Assignee: | Jessica Clarke <jrtc27> |
Status: | Open --- | ||
Severity: | Affects Only Me | CC: | grahamperrin |
Priority: | --- | ||
Version: | 13.2-RELEASE | ||
Hardware: | Any | ||
OS: | Any |
Description
Ulrich Spörlein
2023-08-24 09:11:14 UTC
> I then tried running make delete-old which I haven't run in years, and it cleared out a whole bunch of old clang include dirs, but the error persists.
That's going to make things even worse; you should only run that for the source tree you already have installed.
Not really in my case, as I'm staying on releng/13.2 only to get security updates. No one is messing with compiler versions or includes there. Does /usr/include/c++/v1/__string exist? What's the history of this system? __string has been installed since 7b173dd64639 ("Add additional libc++ 4.0.0 headers.") in 2017, so it really sounds like your system is just hosed, and without knowing its history it's hard to say how you got to that state. % ll -d /usr/include/c++/v1/__string; ll /usr/include/c++/v1/__string drwxr-xr-x 2 root wheel 4 11 Apr 13:28 /usr/include/c++/v1/__string/ total 13 -r--r--r-- 1 root wheel 29948 11 Apr 13:28 char_traits.h -r--r--r-- 1 root wheel 12718 11 Apr 13:28 extern_template_lists.h I bought this laptop mid-2019, so it started out with whatever was -STABLE back then, likely jumping to -CURRENT to get some things working earlier, but it has been running stable or releng for at least a year or two now. The build on April 11 still worked fine though (upgrade from releng/13.1 to releng/13.2, I guess), so I wonder how I effed it up? A different stable/13 system (not releng!) looks the same though: % ll -d /usr/include/c++/v1/__string; ll /usr/include/c++/v1/__string drwxr-xr-x 2 root wheel 4 17 Apr 09:54 /usr/include/c++/v1/__string/ total 13 -r--r--r-- 1 root wheel 29948 17 Apr 09:54 char_traits.h -r--r--r-- 1 root wheel 12718 17 Apr 09:54 extern_template_lists.h and there, buildworld is trudging along just fine. Here's a difference though, broken: % ll /usr/include/c++/v1/string_view /usr/include/c++/v1/string -r--r--r-- 1 root wheel 168508 12 Apr 17:09 /usr/include/c++/v1/string -r--r--r-- 1 root wheel 40049 12 Apr 17:09 /usr/include/c++/v1/string_view working: % ll /usr/include/c++/v1/string_view /usr/include/c++/v1/string -r--r--r-- 1 root wheel 194876 17 Apr 09:54 /usr/include/c++/v1/string -r--r--r-- 1 root wheel 40822 17 Apr 09:54 /usr/include/c++/v1/string_view But the releng/13.2 system is on % clang --version FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c) and the stable/13 system is on % clang --version FreeBSD clang version 15.0.7 (https://github.com/llvm/llvm-project.git llvmorg-15.0.7-0-g8dfdcc7b7bf6) What happened on 12th April? It looks like something updated some of your libc++ headers but not all of them. (In reply to Jessica Clarke from comment #5) (and specifically "updated" to an older source version) I tarred the working /usr/include of the stable/13 system over to the releng/13.2 system, then buildworld completes just fine. So I ran buildworld&installworld, did delete-old and rebooted, and tried to buildworld again. But it breaks same as before. In summary: buildworld/installworld on releng/13.2 will mess up /usr/include so that it can not build a second time. I guess no one uses releng/13.2 really (and when it was branched off stable/13 something didn't get backported properly.) Fine by me, I'm not wedded to releng/13.2 and will move to stable/13 instead. |