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