diff --git a/src/interface.jl b/src/interface.jl index 6aec9f1e..2b637c58 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -371,6 +371,8 @@ function llvm_debug_info(@nospecialize(job::CompilerJob)) end end +# Whether to emit gnu_pubnames +llvm_gnu_pubnames(@nospecialize(job::CompilerJob)) = false ## extension points at important stages of compilation diff --git a/src/jlgen.jl b/src/jlgen.jl index 8db65c89..ab1f529c 100644 --- a/src/jlgen.jl +++ b/src/jlgen.jl @@ -798,11 +798,12 @@ function compile_method_instance(@nospecialize(job::CompilerJob)) # set-up the compiler interface debug_info_kind = llvm_debug_info(job) + gnu_pubnames = llvm_gnu_pubnames(job) cgparams = (; track_allocations = false, code_coverage = false, prefer_specsig = true, - gnu_pubnames = false, + gnu_pubnames = Bool(gnu_pubnames), debug_info_kind = Cint(debug_info_kind), safepoint_on_entry = can_safepoint(job), gcstack_arg = false) diff --git a/src/native.jl b/src/native.jl index fdd880ec..8ea68c58 100644 --- a/src/native.jl +++ b/src/native.jl @@ -36,3 +36,13 @@ end runtime_slug(job::CompilerJob{NativeCompilerTarget}) = "native_$(job.config.target.cpu)-$(hash(job.config.target.features))$(job.config.target.jlruntime ? "-jlrt" : "")" uses_julia_runtime(job::CompilerJob{NativeCompilerTarget}) = job.config.target.jlruntime can_vectorize(job::CompilerJob{NativeCompilerTarget}) = true + +function llvm_debug_info(@nospecialize(job::CompilerJob{NativeCompilerTarget})) + if uses_julia_runtime(job) + Base.default_debug_info_kind() + else + invoke(llvm_debug_info, Tuple{CompilerJob}, job) + end +end + +llvm_gnu_pubnames(@nospecialize(job::CompilerJob{NativeCompilerTarget})) = true