diff --git a/src/compiler/crystal/config.cr b/src/compiler/crystal/config.cr index 2f71aa49815c..da85583de3aa 100644 --- a/src/compiler/crystal/config.cr +++ b/src/compiler/crystal/config.cr @@ -11,7 +11,12 @@ module Crystal end def self.llvm_version - LibLLVM::VERSION + {% if LibLLVM.has_method?(:get_version) %} + LibLLVM.get_version(out major, out minor, out patch) + "#{major}.#{minor}.#{patch}" + {% else %} + LibLLVM::VERSION + {% end %} end def self.description diff --git a/src/llvm/lib_llvm/core.cr b/src/llvm/lib_llvm/core.cr index 7137501fdb31..ef7b8f10b567 100644 --- a/src/llvm/lib_llvm/core.cr +++ b/src/llvm/lib_llvm/core.cr @@ -17,6 +17,10 @@ lib LibLLVM fun dispose_message = LLVMDisposeMessage(message : Char*) + {% unless LibLLVM::IS_LT_160 %} + fun get_version = LLVMGetVersion(major : UInt*, minor : UInt*, patch : UInt*) : Void + {% end %} + fun create_context = LLVMContextCreate : ContextRef fun dispose_context = LLVMContextDispose(c : ContextRef)