Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Dec 2023 20:03:26 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Current FreeBSD <freebsd-current@freebsd.org>
Subject:   Re: make installworld fails because /usr/include/c++/v1/__tuple is a file
Message-ID:  <5AD93DB8-F1D1-451D-BB93-FDC405A7B29F@FreeBSD.org>
In-Reply-To: <d07b8dca-edd4-44dd-8e8b-dc23a4d610f4@FreeBSD.org>
References:  <DA8F2F2D-57D1-4CF4-8038-4EFBD2D88D9D@mit.edu> <ZXXG9u2URYrMks_3@mail.bsd4all.net> <0A30C164-E509-45D1-8BAB-0B44A4E191F5@FreeBSD.org> <d07b8dca-edd4-44dd-8e8b-dc23a4d610f4@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 13 Dec 2023, at 19:07, John Baldwin <jhb@freebsd.org> wrote:
>=20
> On 12/10/23 8:43 AM, Dimitry Andric wrote:
>> On 10 Dec 2023, at 15:11, Herbert J. Skuhra <herbert@gojira.at> =
wrote:
>>>=20
>>> 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
>>>>=20
>>>>  c711af772782 Bump __FreeBSD_version for llvm 17.0.6 merge
>>>>=20
>>>> and built and installed from source.  make installworld failed:
>>>>=20
>>>>  install: target directory `/usr/include/c++/v1/__tuple/' does not =
exist
>>>>=20
>>>> That pathname is a file:
>>>>=20
>>>>  -r--r--r--  1 root wheel 20512 Feb 15  2023 =
/usr/include/c++/v1/__tuple
>>>>=20
>>>> Early in make output is
>>>>=20
>>>>  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)
>>>>=20
>>>> Should I remove the file and try again, or is there a more elegant =
fix?
>>>>=20
>>>> The word "tuple" does not appear in UPDATING.
>>>=20
>>> 'make delete-old' should have removed this file.
>>>=20
>>> bdd1243df58e6 (Dimitry Andric          2023-04-14 23:41:27 +0200   =
965)
>>> OLD_FILES+=3Dusr/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. :)
>=20
> 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=3Dca217224f17229570f40227893353ca1=
0ae1dda1

-Dimitry




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5AD93DB8-F1D1-451D-BB93-FDC405A7B29F>