Fix builds that set LD=ld.lld after r364761
When using relative paths for the linker we have to transform the name since clang does not like -fuse-ld=ld.lld and instead requires -fuse-ld=lld (the same also applies for ld.bfd).
This commit is contained in:
parent
f6385d921b
commit
2d6bee8f00
@ -289,7 +289,8 @@ CFLAGS+= ERROR-tried-to-rebuild-during-make-install
|
||||
# Add -fuse-ld=${LD} if $LD is in a different directory or not called "ld".
|
||||
# Note: Clang 12+ will prefer --ld-path= over -fuse-ld=.
|
||||
.if ${COMPILER_TYPE} == "clang"
|
||||
LDFLAGS+= -fuse-ld=${LD:[1]}
|
||||
# Note: Clang does not like relative paths in -fuse-ld so we map ld.lld -> lld.
|
||||
LDFLAGS+= -fuse-ld=${LD:[1]:S/^ld.//1W}
|
||||
.else
|
||||
# GCC does not support an absolute path for -fuse-ld so we just print this
|
||||
# warning instead and let the user add the required symlinks.
|
||||
|
@ -278,7 +278,8 @@ CFLAGS+= -std=${CSTD}
|
||||
# Note: unlike bsd.sys.mk we can't use LDFLAGS here since that is used for the
|
||||
# flags required when linking the kernel. We don't need those flags when
|
||||
# building the vdsos. However, we do need -fuse-ld, so use ${CCLDFLAGS} instead.
|
||||
CCLDFLAGS+= -fuse-ld=${LD:[1]}
|
||||
# Note: Clang does not like relative paths in -fuse-ld so we map ld.lld -> lld.
|
||||
CCLDFLAGS+= -fuse-ld=${LD:[1]:S/^ld.//1W}
|
||||
.else
|
||||
# GCC does not support an absolute path for -fuse-ld so we just print this
|
||||
# warning instead and let the user add the required symlinks.
|
||||
|
Loading…
Reference in New Issue
Block a user