@@ -119,6 +119,9 @@ ifeq ($(JULIACODEGEN),LLVM)
119119ifneq ($(USE_SYSTEM_LLVM ) ,0)
120120# USE_SYSTEM_LLVM != 0
121121CG_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
124127else
@@ -344,10 +347,10 @@ $(FLISP_EXECUTABLE_release): $(BUILDDIR)/flisp/libflisp.a
344347$(FLISP_EXECUTABLE_debug ) : $(BUILDDIR ) /flisp/libflisp-debug.a
345348 $(MAKE ) -C $(BUILDDIR ) /flisp $(subst $(abspath $(BUILDDIR ) /flisp) /,,$(abspath $(FLISP_EXECUTABLE_debug ) ) )
346349
347- $(BUILDDIR ) /flisp/libflisp.a : $(addprefix $(SRCDIR ) /flisp/,* .h * .c) $(BUILDDIR ) /support/libsupport.a
350+ $(BUILDDIR ) /flisp/libflisp.a : $(addprefix $(SRCDIR ) /flisp/,* .h * .c) $(BUILDDIR ) /support/libsupport.a $( BUILDDIR ) /julia.expmap
348351 $(MAKE ) -C $(SRCDIR ) /flisp BUILDDIR=' $(abspath $(BUILDDIR)/flisp)'
349352
350- $(BUILDDIR ) /flisp/libflisp-debug.a : $(addprefix $(SRCDIR ) /,flisp/* .h flisp/* .c) $(BUILDDIR ) /support/libsupport-debug.a
353+ $(BUILDDIR ) /flisp/libflisp-debug.a : $(addprefix $(SRCDIR ) /,flisp/* .h flisp/* .c) $(BUILDDIR ) /support/libsupport-debug.a $( BUILDDIR ) /julia.expmap
351354 $(MAKE ) -C $(SRCDIR ) /flisp debug BUILDDIR=' $(abspath $(BUILDDIR)/flisp)'
352355
353356$(BUILDDIR ) /julia_version.h : $(JULIAHOME ) /VERSION
@@ -365,13 +368,17 @@ $(BUILDDIR)/julia_version.h: $(JULIAHOME)/VERSION
365368
366369CXXLD = $(CXX ) -shared
367370
368- $(build_shlibdir ) /libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(SRCDIR ) /julia.expmap $(OBJS ) $(BUILDDIR ) /flisp/libflisp.a $(BUILDDIR ) /support/libsupport.a $(LIBUV )
371+ $(BUILDDIR ) /julia.expmap : $(SRCDIR ) /julia.expmap.in
372+ sed < ' $<' > ' $@' -e " s/@JULIA_SHLIB_SYMBOL_VERSION@/JL_LIBJULIA_$( SOMAJOR) /" \
373+ -e " s/@LLVM_SHLIB_SYMBOL_VERSION@/$( LLVM_SHLIB_SYMBOL_VERSION) /"
374+
375+ $(build_shlibdir ) /libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(BUILDDIR ) /julia.expmap $(OBJS ) $(BUILDDIR ) /flisp/libflisp.a $(BUILDDIR ) /support/libsupport.a $(LIBUV )
369376 @$(call PRINT_LINK, $(CXXLD ) $(call IMPLIB_FLAGS,$@ ) $(JCXXFLAGS ) $(JL_CXXFLAGS ) $(CXXLDFLAGS ) $(SHIPFLAGS ) $(OBJS ) $(RPATH_LIB ) -o $@ \
370377 $(JLDFLAGS ) $(JLIBLDFLAGS ) $(RT_RELEASE_LIBS ) $(call SONAME_FLAGS,libjulia-internal.$(JL_MAJOR_SHLIB_EXT ) ) )
371378 @$(INSTALL_NAME_CMD ) libjulia-internal.$(SHLIB_EXT ) $@
372379 $(DSYMUTIL ) $@
373380
374- $(build_shlibdir ) /libjulia-internal-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(SRCDIR ) /julia.expmap $(DOBJS ) $(BUILDDIR ) /flisp/libflisp-debug.a $(BUILDDIR ) /support/libsupport-debug.a $(LIBUV )
381+ $(build_shlibdir ) /libjulia-internal-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(BUILDDIR ) /julia.expmap $(DOBJS ) $(BUILDDIR ) /flisp/libflisp-debug.a $(BUILDDIR ) /support/libsupport-debug.a $(LIBUV )
375382 @$(call PRINT_LINK, $(CXXLD ) $(call IMPLIB_FLAGS,$@ ) $(JCXXFLAGS ) $(JL_CXXFLAGS ) $(CXXLDFLAGS ) $(DEBUGFLAGS ) $(DOBJS ) $(RPATH_LIB ) -o $@ \
376383 $(JLDFLAGS ) $(JLIBLDFLAGS ) $(RT_DEBUG_LIBS ) $(call SONAME_FLAGS,libjulia-internal-debug.$(JL_MAJOR_SHLIB_EXT ) ) )
377384 @$(INSTALL_NAME_CMD ) libjulia-internal-debug.$(SHLIB_EXT ) $@
@@ -393,13 +400,13 @@ libjulia-internal-release: $(build_shlibdir)/libjulia-internal.$(JL_MAJOR_MINOR_
393400libjulia-internal-debug : $(build_shlibdir ) /libjulia-internal-debug.$(JL_MAJOR_MINOR_SHLIB_EXT )
394401libjulia-internal-debug libjulia-internal-release : $(PUBLIC_HEADER_TARGETS )
395402
396- $(build_shlibdir ) /libjulia-codegen.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(SRCDIR ) /julia.expmap $(CODEGEN_OBJS ) $(BUILDDIR ) /support/libsupport.a $(build_shlibdir ) /libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT )
403+ $(build_shlibdir ) /libjulia-codegen.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(BUILDDIR ) /julia.expmap $(CODEGEN_OBJS ) $(BUILDDIR ) /support/libsupport.a $(build_shlibdir ) /libjulia-internal.$(JL_MAJOR_MINOR_SHLIB_EXT )
397404 @$(call PRINT_LINK, $(CXXLD ) $(call IMPLIB_FLAGS,$@ ) $(JCXXFLAGS ) $(JL_CXXFLAGS ) $(CXXLDFLAGS ) $(SHIPFLAGS ) $(CODEGEN_OBJS ) $(RPATH_LIB ) -o $@ \
398405 $(JLDFLAGS ) $(JLIBLDFLAGS ) $(CG_RELEASE_LIBS ) $(call SONAME_FLAGS,libjulia-codegen.$(JL_MAJOR_SHLIB_EXT ) ) )
399406 @$(INSTALL_NAME_CMD ) libjulia-codegen.$(SHLIB_EXT ) $@
400407 $(DSYMUTIL ) $@
401408
402- $(build_shlibdir ) /libjulia-codegen-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(SRCDIR ) /julia.expmap $(CODEGEN_DOBJS ) $(BUILDDIR ) /support/libsupport-debug.a $(build_shlibdir ) /libjulia-internal-debug.$(JL_MAJOR_MINOR_SHLIB_EXT )
409+ $(build_shlibdir ) /libjulia-codegen-debug.$(JL_MAJOR_MINOR_SHLIB_EXT ) : $(BUILDDIR ) /julia.expmap $(CODEGEN_DOBJS ) $(BUILDDIR ) /support/libsupport-debug.a $(build_shlibdir ) /libjulia-internal-debug.$(JL_MAJOR_MINOR_SHLIB_EXT )
403410 @$(call PRINT_LINK, $(CXXLD ) $(call IMPLIB_FLAGS,$@ ) $(JCXXFLAGS ) $(JL_CXXFLAGS ) $(CXXLDFLAGS ) $(DEBUGFLAGS ) $(CODEGEN_DOBJS ) $(RPATH_LIB ) -o $@ \
404411 $(JLDFLAGS ) $(JLIBLDFLAGS ) $(CG_DEBUG_LIBS ) $(call SONAME_FLAGS,libjulia-codegen-debug.$(JL_MAJOR_SHLIB_EXT ) ) )
405412 @$(INSTALL_NAME_CMD ) libjulia-codegen-debug.$(SHLIB_EXT ) $@
@@ -429,6 +436,7 @@ clean:
429436 -rm -fr $(build_shlibdir ) /libjulia-internal* $(build_shlibdir ) /libjulia-codegen* $(build_shlibdir ) /libccalltest* $(build_shlibdir ) /libllvmcalltest*
430437 -rm -f $(BUILDDIR ) /julia_flisp.boot $(BUILDDIR ) /julia_flisp.boot.inc $(BUILDDIR ) /jl_internal_funcs.inc
431438 -rm -f $(BUILDDIR ) /* .dbg.obj $(BUILDDIR ) /* .o $(BUILDDIR ) /* .dwo $(BUILDDIR ) /* .$(SHLIB_EXT ) $(BUILDDIR ) /* .a $(BUILDDIR ) /* .h.gen
439+ -rm -f $(BUILDDIR ) /julia.expmap
432440 -rm -f $(BUILDDIR ) /julia_version.h
433441
434442clean-flisp :
0 commit comments