diff options
-rw-r--r-- | share/mk/bsd.sys.mk | 3 | ||||
-rw-r--r-- | sys/conf/kern.mk | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 2cf95f570c6c..fd2525e56799 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -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. diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index bf278e1716aa..de5286688e13 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -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. |