diff --git a/base/Makefile b/base/Makefile index b569ed5227ffc..acdd4bb9f82d6 100644 --- a/base/Makefile +++ b/base/Makefile @@ -200,8 +200,15 @@ endif endif # WINNT symlink_libLLVM: $(build_private_libdir)/libLLVM.dylib +ifneq ($(USE_SYSTEM_LLVM),0) +LLVM_CONFIG_HOST_LIBS := $(shell $(LLVM_CONFIG_HOST) --libfiles) +# HACK: llvm-config doesn't correctly point to shared libs on all platforms +# https://github.com/JuliaLang/julia/issues/29981 +else +LLVM_CONFIG_HOST_LIBS := $(shell $(LLVM_CONFIG_HOST) --libdir)/libLLVM.$(SHLIB_EXT) +endif $(build_private_libdir)/libLLVM.dylib: - REALPATH=`$(LLVM_CONFIG_HOST) --libfiles` && \ + REALPATH=$(LLVM_CONFIG_HOST_LIBS) && \ $(call resolve_path,REALPATH) && \ [ -e "$$REALPATH" ] && \ ([ ! -e "$@" ] || rm "$@") && \ diff --git a/src/Makefile b/src/Makefile index d8e1c6a49b115..e4da8c6357e02 100644 --- a/src/Makefile +++ b/src/Makefile @@ -89,7 +89,17 @@ endif PUBLIC_HEADER_TARGETS := $(addprefix $(build_includedir)/julia/,$(notdir $(PUBLIC_HEADERS)) $(UV_HEADERS)) ifeq ($(JULIACODEGEN),LLVM) +ifneq ($(USE_SYSTEM_LLVM),0) LLVMLINK += $(shell $(LLVM_CONFIG_HOST) --ldflags --libs --system-libs) +# HACK: llvm-config doesn't correctly point to shared libs on all platforms +# https://github.com/JuliaLang/julia/issues/29981 +else +ifneq ($(USE_LLVM_SHLIB),1) +LLVMLINK += $(shell $(LLVM_CONFIG_HOST) --ldflags) $(shell $(LLVM_CONFIG_HOST) --libs $(LLVM_LIBS)) $(shell $(LLVM_CONFIG_HOST) --ldflags) $(shell $(LLVM_CONFIG_HOST) --system-libs 2> /dev/null) +else +LLVMLINK += $(shell $(LLVM_CONFIG_HOST) --ldflags) -lLLVM +endif +endif ifeq ($(USE_LLVM_SHLIB),1) FLAGS += -DLLVM_SHLIB endif # USE_LLVM_SHLIB == 1