Re: git: 7ecd99fa424d - main - Build compiler-rt against libunwind, not libcxxrt
- In reply to: Dimitry Andric : "Re: git: 7ecd99fa424d - main - Build compiler-rt against libunwind, not libcxxrt"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 09 Mar 2022 22:55:05 UTC
On 9 Mar 2022, at 23:50, Dimitry Andric <dim@FreeBSD.org> wrote: > > On 9 Mar 2022, at 22:45, John Baldwin <jhb@FreeBSD.org> wrote: >> >> On 3/9/22 1:30 PM, Dimitry Andric wrote: >>> The branch main has been updated by dim: >>> URL: https://cgit.FreeBSD.org/src/commit/?id=7ecd99fa424df001028c5cddc52d25b29232f1af >>> commit 7ecd99fa424df001028c5cddc52d25b29232f1af >>> Author: Dimitry Andric <dim@FreeBSD.org> >>> AuthorDate: 2022-03-09 21:23:35 +0000 >>> Commit: Dimitry Andric <dim@FreeBSD.org> >>> CommitDate: 2022-03-09 21:23:35 +0000 >>> Build compiler-rt against libunwind, not libcxxrt >>> Parts of compiler-rt are also built for libgcc_eh and libgcc_s, and >>> these were already pointing to the libunwind unwind.h. For the sake of >>> consistency, also build compiler-rt itself against the libunwind >>> unwind.h, not the libcxxrt one. >> >> Do we even need the explicit -I at all now that we install unwind.h into /usr/include? > > That depends on the build order; if libcompiler_rt is built before libunwind's headers are installed into ${WORLDTMP}, it might look at the wrong file? > > I guess this is just a 'better safe than sorry' approach. That said, for libcxxrt we used to have the unwind headers only in the C++ include path, so maybe this was a way to get that to work? Btw, I was triggered by Conrad's comment in contrib/llvm-project/compiler-rt/lib/builtins/gcc_personality_v0.c (added in https://cgit.freebsd.org/src/commit/?id=c8b5e3de39bcf): /* * XXX On FreeBSD, this file is compiled into three libraries: * - libcompiler_rt * - libgcc_eh * - libgcc_s * * In the former, the include path points to the contrib/libcxxrt/unwind-arm.h * copy of unwind.h. In the latter, the include path points to the * contrib/libunwind/include/unwind.h header (LLVM libunwind). * * Neither (seemingly redundant) variant of unwind.h needs the redefinitions * provided in the "helpful" header below, and libcxxrt's unwind-arm.h provides * *no* useful distinguishing macros, so just forcibly disable the helper * header on FreeBSD. */ So at least there is no more inconsistency now! Whether commit c8b5e3de39bcf can be reverted is another matter, though. -Dimitry