Re: make installworld fails because /usr/include/c++/v1/__tuple is a file
Date: Sun, 10 Dec 2023 16:43:08 UTC
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. :) -Dimitry