Re: make installworld fails because /usr/include/c++/v1/__tuple is a file
- In reply to: John Baldwin : "Re: make installworld fails because /usr/include/c++/v1/__tuple is a file"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 13 Dec 2023 19:03:26 UTC
On 13 Dec 2023, at 19:07, John Baldwin <jhb@freebsd.org> wrote: > > On 12/10/23 8:43 AM, Dimitry Andric wrote: >> On 10 Dec 2023, at 15:11, Herbert J. Skuhra <herbert@gojira.at> wrote: >>> >>> On Sun, Dec 10, 2023 at 01:22:38PM +0000, John F Carr wrote: >>>> On arm64 running CURRENT from two weeks ago I updated to >>>> >>>> c711af772782 Bump __FreeBSD_version for llvm 17.0.6 merge >>>> >>>> and built and installed from source. make installworld failed: >>>> >>>> install: target directory `/usr/include/c++/v1/__tuple/' does not exist >>>> >>>> That pathname is a file: >>>> >>>> -r--r--r-- 1 root wheel 20512 Feb 15 2023 /usr/include/c++/v1/__tuple >>>> >>>> Early in make output is >>>> >>>> mtree -deU -i -f /usr/src/etc/mtree/BSD.include.dist -p /usr/include >>>> ./c++/v1/__algorithm/pstl_backends missing (created) >>>> [...] >>>> ./c++/v1/__tuple missing (not created: File exists) >>>> >>>> Should I remove the file and try again, or is there a more elegant fix? >>>> >>>> The word "tuple" does not appear in UPDATING. >>> >>> 'make delete-old' should have removed this file. >>> >>> bdd1243df58e6 (Dimitry Andric 2023-04-14 23:41:27 +0200 965) >>> OLD_FILES+=usr/include/c++/v1/__tuple >> Ah yes, that's it. The file was removed during the upgrade from libc++ >> 15.0 to 16.0, while its contents was split into a subdirectory named >> __tuple_dir. In libc++ 17.0.0 they renamed this subdirectory back to >> just __tuple. >> This means that apparently people are not running "make delete-old" >> after installations. Please don't forget that. :) > > Well, but if you have an old system with LLVM 15 that you upgrade directly > to LLVM 17 you will hit this even if you ran delete-old after your last > upgrading that used LLVM 15. We might need something to cope with this > during the install target for libc++ in particular where this has occurred > multiple times historically. I have now added a workaround for this scenario, which is apparently more common than I thought: https://cgit.freebsd.org/src/commit/?id=ca217224f17229570f40227893353ca10ae1dda1 -Dimitry