Hi all,
        I just tried to run “make hierarchy” from a main tree on a 13.2-RELEASE 
system, and doing so completely broke my headers.
        It took me about 30 minutes to figure out what happened… 
/usr/include/c++/v1/__string was a header, whereas on :main it’s a directory?!

$ git diff freebsd/releng/13.2 main -- etc/mtree/BSD.include.dist)
...
@@ -47,8 +53,12 @@
             ..
             __ranges
             ..
+            __string
+            ..
             __thread
             ..
+            __type_traits
+            ..
             __utility
             ..
             __variant
@@ -202,6 +212,8 @@
...
$

        make hierarchy seems to wipe out the file and replace it with a 
directory, which I guess isn’t terribly confusing since it’s just an unlink, 
but the error messages that followed from c++ was confusing; the error message 
of note was the first part saying __string was missing — the rest was just 
garbage complaints about C++20 extensions, e.g.,

<source>:9:5: warning: use of function template name with no prior declaration 
in function call with explicit template arguments is a C++20 extension 
[-Wc++20-extensions]

        I reinstalled the headers by going to lib/libc++ in my releng/13.2 
tree, building, and installing all of the 13.2-RELEASE headers.
        This change has been live for almost a year now on :main — is this a 
known caveat when doing a source-based upgrade from 13.2-RELEASE* to 
14.0-CURRENT, i.e., that the installworld (if interrupted) could break the c++ 
compiler?
Thank you,
-Enji


$ git blame etc/mtree/BSD.include.dist
...
81ad626541db9 (Dimitry Andric          2022-07-04 21:20:19 +0200  56)           
  __string
81ad626541db9 (Dimitry Andric          2022-07-04 21:20:19 +0200  57)           
  ..
...
$ git log 81ad626541db9^..81ad626541db9
commit 81ad626541db97eb356e2c1d4a20eb2a26a766ab
Merge: 5fff09660e06 145449b1e420
Author: Dimitry Andric <d...@freebsd.org>
Date:   Mon Jul 4 21:20:19 2022 +0200

    Merge llvm-project main llvmorg-15-init-15358-g53dc0f10787

    This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
    openmp to llvmorg-15-init-15358-g53dc0f10787.

    PR:             265425
    MFC after:      2 weeks

commit 145449b1e420787bb99721a429341fa6be3adfb6 (tag: 
vendor/llvm-project/llvmorg-15-init-15358-g53dc0f107877)
Author: Dimitry Andric <d...@freebsd.org>
Date:   Sun Jul 3 16:10:23 2022 +0200

    Vendor import of llvm-project main llvmorg-15-init-15358-g53dc0f107877.

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to