[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LLVM Linker



On Sat, Oct 16, 2021 at 10:16 AM Elimar Riesebieter <riesebie@lxtec.de> wrote:
>
> does somebody knows why lld isn't available for powerpc?

I don't have an answer to this. Maybe the LLVM folks have not provided
it? Maybe it is available, but not on-path?

(LLVM has some sharp edges on PowerPC. I ran into a fair amount of
trouble in the past, when I was building LLVM/Compiler-Rt/libc++ for
PPC).

> compile a kernel with
> 'make LLVM=1 HOSTCC=/usr/bin/clang-13 HOSTCXX=/usr/bin/clang++-13 CC=/usr/bin/clang-13'
> where LLVM=1 points to the llvm linker. Without LLVM-1 it seems to use the binutils.

I believe it depends on the builtin makefile rules and what the author
of the makefile is doing.

You can check the builtin makefile rules with '-p' option:

$ make -p | grep -E 'LD|LINK'
...
LINK.m = $(OBJC) $(OBJCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH)
LINK.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LD = ld
LINK.r = $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LINK.C = $(LINK.cc)
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)
LINK.cpp = $(LINK.cc)
...

If you want to use a different linker, then set the variable LD to that linker.

Jeff


Reply to: