Re: make installworld fails because /usr/include/c++/v1/__tuple is a file

2023-12-13 Thread Dimitry Andric
On 13 Dec 2023, at 19:07, John Baldwin  wrote:
> 
> On 12/10/23 8:43 AM, Dimitry Andric wrote:
>> On 10 Dec 2023, at 15:11, Herbert J. Skuhra  wrote:
>>> 
>>> On Sun, Dec 10, 2023 at 01:22:38PM +, 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




Re: make installworld fails because /usr/include/c++/v1/__tuple is a file

2023-12-13 Thread John Baldwin

On 12/10/23 8:43 AM, Dimitry Andric wrote:

On 10 Dec 2023, at 15:11, Herbert J. Skuhra  wrote:


On Sun, Dec 10, 2023 at 01:22:38PM +, 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.

--
John Baldwin




Re: compile 13.2p8 on a recent current fails: compiler issue ?

2023-12-13 Thread Dag-Erling Smørgrav
Dimitry Andric  writes:
> henry vogt  writes:
> > ===> usr.sbin/zic (obj,all,install)
> > Building /usr/obj/usr/src/13.2/amd64.amd64/tmp/obj-tools/usr.sbin/zic/zic.o
> > --- zic.o ---
> > /usr/src/13.2/contrib/tzcode/zic.c:464:8: error: an attribute list cannot 
> > appear here
> >   464 | static ATTRIBUTE_NORETURN void
> >   |^~
> This appears to have been fixed upstream some time ago:
> https://github.com/eggert/tz/commit/9cfe9507fcc22cd4a0c4da486ea1c7f0de6b075f

It's also fixed in 14 and 15:
https://cgit.freebsd.org/src/commit/?id=75411d157232ee3b4789b92c9205453e7d59a3d2

It was too late for 13.2, but I'll make sure it's merged before 13.3.

DES
-- 
Dag-Erling Smørgrav - d...@freebsd.org



Re: compile 13.2p8 on a recent current fails: compiler issue ?

2023-12-13 Thread Dimitry Andric
On 13 Dec 2023, at 13:08, henry vogt  wrote:
> 
> attempt to compile 13.2p8 on a recent current fails: compiler issue ?
> 
> ...
> 
> ===> usr.sbin/zic (obj,all,install)
> Building /usr/obj/usr/src/13.2/amd64.amd64/tmp/obj-tools/usr.sbin/zic/zic.o
> --- zic.o ---
> /usr/src/13.2/contrib/tzcode/zic.c:464:8: error: an attribute list cannot 
> appear here
>   464 | static ATTRIBUTE_NORETURN void
>   |^~
> /usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
> 'ATTRIBUTE_NORETURN'
>   471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
>   |  ^~~~
> /usr/src/13.2/contrib/tzcode/zic.c:471:8: error: an attribute list cannot 
> appear here
>   471 | static ATTRIBUTE_NORETURN void
>   |^~
> /usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
> 'ATTRIBUTE_NORETURN'
>   471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
>   |  ^~~~
> /usr/src/13.2/contrib/tzcode/zic.c:669:8: error: an attribute list cannot 
> appear here
>   669 | static ATTRIBUTE_NORETURN void
>   |^~
> /usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
> 'ATTRIBUTE_NORETURN'
>   471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
>   |  ^~~~
> /usr/src/13.2/contrib/tzcode/zic.c:3778:8: error: an attribute list cannot 
> appear here
>  3778 | static ATTRIBUTE_NORETURN void
>   |^~
> /usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
> 'ATTRIBUTE_NORETURN'
>   471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
>   |  ^~~~
> 4 errors generated.
> *** [zic.o] Error code 1
> 
> make[3]: stopped in /usr/src/13.2/usr.sbin/zic
> 
> # cc -v
> FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git 
> llvmorg-17.0.6-0-g6009708b4367)
> Target: x86_64-unknown-freebsd15.0
> Thread model: posix
> InstalledDir: /usr/bin

This appears to have been fixed upstream some time ago:
https://github.com/eggert/tz/commit/9cfe9507fcc22cd4a0c4da486ea1c7f0de6b075f

but clang 17 has become more strict about invalid attribute placement, possibly 
to be more like gcc (which should already have given this as a warning or 
error).

So I guess for 13.2-p8 you will have to apply that fix manually, if you want to 
build it on a 15-CURRENT box. Otherwise, I would advise a jail.

-Dimitry



signature.asc
Description: Message signed with OpenPGP


compile 13.2p8 on a recent current fails: compiler issue ?

2023-12-13 Thread henry vogt

Hi

attempt to compile 13.2p8 on a recent current fails: compiler issue ?

...

===> usr.sbin/zic (obj,all,install)
Building /usr/obj/usr/src/13.2/amd64.amd64/tmp/obj-tools/usr.sbin/zic/zic.o
--- zic.o ---
/usr/src/13.2/contrib/tzcode/zic.c:464:8: error: an attribute list 
cannot appear here

  464 | static ATTRIBUTE_NORETURN void
  |    ^~
/usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
'ATTRIBUTE_NORETURN'

  471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
  |  ^~~~
/usr/src/13.2/contrib/tzcode/zic.c:471:8: error: an attribute list 
cannot appear here

  471 | static ATTRIBUTE_NORETURN void
  |    ^~
/usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
'ATTRIBUTE_NORETURN'

  471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
  |  ^~~~
/usr/src/13.2/contrib/tzcode/zic.c:669:8: error: an attribute list 
cannot appear here

  669 | static ATTRIBUTE_NORETURN void
  |    ^~
/usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
'ATTRIBUTE_NORETURN'

  471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
  |  ^~~~
/usr/src/13.2/contrib/tzcode/zic.c:3778:8: error: an attribute list 
cannot appear here

 3778 | static ATTRIBUTE_NORETURN void
  |    ^~
/usr/src/13.2/contrib/tzcode/private.h:471:30: note: expanded from macro 
'ATTRIBUTE_NORETURN'

  471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
  |  ^~~~
4 errors generated.
*** [zic.o] Error code 1

make[3]: stopped in /usr/src/13.2/usr.sbin/zic

# cc -v
FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git 
llvmorg-17.0.6-0-g6009708b4367)

Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin

Kind Regards

Henry