Skip to content

Commit 8ffc6ce

Browse files
committed
Move LLVM_SHLIB_SYMBOL_VERSION to llvm-ver.make
Also, when `USE_SYSTEM_LLVM=1` compute `LLVM_SHLIB_SYMBOL_VERSION` using `llvm-config`
1 parent db9fff9 commit 8ffc6ce

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

deps/llvm-ver.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ LLVM_SHARED_LIB_VER_SUFFIX := $(LLVM_VER_MAJ)jl
1717
# e.g.: "libLLVM-14jl"
1818
LLVM_SHARED_LIB_NAME := libLLVM-$(LLVM_SHARED_LIB_VER_SUFFIX)
1919
LLVM_SHARED_LINK_FLAG := -lLLVM-$(LLVM_SHARED_LIB_VER_SUFFIX)
20+
LLVM_SHLIB_SYMBOL_VERSION := JL_LLVM_$(LLVM_VER_MAJ).$(LLVM_VER_MIN)

src/Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ ifeq ($(JULIACODEGEN),LLVM)
119119
ifneq ($(USE_SYSTEM_LLVM),0)
120120
# USE_SYSTEM_LLVM != 0
121121
CG_LLVMLINK += $(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --libs --system-libs)
122+
LLVM_SHLIB_SYMBOL_VERSION := $(shell nm -D --with-symbol-versions $(shell $(LLVM_CONFIG_HOST) --libfiles --link-shared | awk '{print $1; exit}') | \
123+
grep _ZN4llvm3Any6TypeId | head -n 1 | sed -e 's/.*@//')
124+
122125
# HACK: llvm-config doesn't correctly point to shared libs on all platforms
123126
# https://github.com/JuliaLang/julia/issues/29981
124127
else
@@ -366,7 +369,8 @@ $(BUILDDIR)/julia_version.h: $(JULIAHOME)/VERSION
366369
CXXLD = $(CXX) -shared
367370

368371
$(BUILDDIR)/julia.expmap: $(SRCDIR)/julia.expmap.in
369-
sed <'$<' >'$@' -e 's/@JULIA_SHLIB_SYMBOL_VERSION@/JL_LIBJULIA_$(SOMAJOR)/'
372+
sed <'$<' >'$@' -e "s/@JULIA_SHLIB_SYMBOL_VERSION@/JL_LIBJULIA_$(SOMAJOR)/" \
373+
-e "s/@LLVM_SHLIB_SYMBOL_VERSION@/$(LLVM_SHLIB_SYMBOL_VERSION)/"
370374

371375
$(build_shlibdir)/libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT): $(BUILDDIR)/julia.expmap $(OBJS) $(BUILDDIR)/flisp/libflisp.a $(BUILDDIR)/support/libsupport.a $(LIBUV)
372376
@$(call PRINT_LINK, $(CXXLD) $(call IMPLIB_FLAGS,$@) $(JCXXFLAGS) $(JL_CXXFLAGS) $(CXXLDFLAGS) $(SHIPFLAGS) $(OBJS) $(RPATH_LIB) -o $@ \

src/julia.expmap.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
*;
4444
};
4545

46-
JL_LLVM_15.0 {
46+
@LLVM_SHLIB_SYMBOL_VERSION@ {
4747
global:
4848
/* Make visible so that linker will merge duplicate definitions across DSO boundaries */
4949
_ZN4llvm3Any6TypeId*;

0 commit comments

Comments
 (0)