git: 021385aba562 - main - Add WITH_LLVM_BINUTILS to install LLVM binutils instead of Elftoolchain
Shawn Webb
shawn.webb at hardenedbsd.org
Sat Sep 11 16:18:15 UTC 2021
On Sat, Sep 11, 2021 at 03:54:59PM +0100, Jessica Clarke wrote:
> On 11 Sep 2021, at 15:43, Shawn Webb <shawn.webb at hardenedbsd.org> wrote:
> >
> > On Mon, Sep 06, 2021 at 09:24:02AM +0000, Alex Richardson wrote:
> >> The branch main has been updated by arichardson:
> >>
> >> URL: https://cgit.FreeBSD.org/src/commit/?id=021385aba56279febcfdcc64d23673a0106ae45d
> >>
> >> commit 021385aba56279febcfdcc64d23673a0106ae45d
> >> Author: Alex Richardson <arichardson at FreeBSD.org>
> >> AuthorDate: 2021-09-06 08:49:49 +0000
> >> Commit: Alex Richardson <arichardson at FreeBSD.org>
> >> CommitDate: 2021-09-06 08:49:49 +0000
> >>
> >> Add WITH_LLVM_BINUTILS to install LLVM binutils instead of Elftoolchain
> >>
> >> When WITH_LLVM_BINUTILS is set, we will install the LLVM binutils as
> >> ar/ranlib/nm/objcopy/etc. instead of the elftoolchain ones.
> >> Having the LLVM binutils instead of the elftoolchain ones allows us to use
> >> features such as LTO that depend on binutils that understand LLVM IR.
> >> Another benefit will be an improved user-experience when compiling with
> >> AddressSanitizer, since ASAN does not symbolize backtraces correctly if
> >> addr2line is elftoolchain addr2line instead of llvm-symbolizer.
> >> See https://lists.freebsd.org/archives/freebsd-toolchain/2021-July/000062.html
> >> for more details.
> >>
> >> This is currently off by default but will be turned on by default at some
> >> point in the near future.
> >
> > Hey Alex,
> >
> > It appears when MK_LLVM_BINUTILS is set, a strip binary/link doesn't
> > get installed. So /usr/bin/strip doesn't exist. This causes a problem
> > when building packages since even ports-mgmt/pkg relies on strip.
> >
> > I'm working on a candidate patch to fix this right now. But if you
> > beat me to the punch, all the better. ;-)
>
> I guess this:
>
> diff --git a/usr.bin/clang/llvm-objcopy/Makefile b/usr.bin/clang/llvm-objcopy/Makefile
> index 2e6fc8aba356..afd03b848b19 100644
> --- a/usr.bin/clang/llvm-objcopy/Makefile
> +++ b/usr.bin/clang/llvm-objcopy/Makefile
> @@ -44,8 +44,11 @@ CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/}
>
> LIBADD+= z
>
> +LINKS= ${BINDIR}/llvm-objcopy ${BINDIR}/llvm-strip
> +
> .if ${MK_LLVM_BINUTILS} != "no"
> -LINKS= ${BINDIR}/llvm-objcopy ${BINDIR}/objcopy
> +LINKS+= ${BINDIR}/llvm-objcopy ${BINDIR}/objcopy \
> + ${BINDIR}/llvm-strip ${BINDIR}/strip
> MLINKS= llvm-objcopy.1 objcopy.1
> .endif
>
> Can’t do MLINKS yet as there’s no generated manpage for llvm-strip; not
> sure what the process is to generate them from the upstream .rst files
> other than “ask dim@ nicely”.
A patch I wrote, nearly exactly similar to yours works. I'd say just
take yours.
Thanks,
--
Shawn Webb
Cofounder / Security Engineer
HardenedBSD
https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/dev-commits-src-main/attachments/20210911/afec3540/attachment.sig>
More information about the dev-commits-src-main
mailing list