From 52eb4cdee110b73a4d180e2d64445de0e122513e Mon Sep 17 00:00:00 2001 From: Kushal Pal Date: Mon, 12 May 2025 14:18:39 +0530 Subject: Add eld as default linker for Qualcomm Hexagon compiler Signed-off-by: Kushal Pal --- mesonbuild/compilers/mixins/clang.py | 5 ++++- mesonbuild/linkers/detect.py | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py index ae5ab631b..72b987a12 100644 --- a/mesonbuild/compilers/mixins/clang.py +++ b/mesonbuild/compilers/mixins/clang.py @@ -155,7 +155,10 @@ class ClangCompiler(GnuLikeCompiler): # llvm based) is retargetable, while GCC is not. # - # qcld: Qualcomm Snapdragon linker, based on LLVM + # eld: Qualcomm's opensource embedded linker + if linker == 'eld': + return ['-fuse-ld=eld'] + # qcld: Qualcomm's deprecated linker if linker == 'qcld': return ['-fuse-ld=qcld'] if linker == 'mold': diff --git a/mesonbuild/linkers/detect.py b/mesonbuild/linkers/detect.py index ee9bb0861..f6c0fbcb1 100644 --- a/mesonbuild/linkers/detect.py +++ b/mesonbuild/linkers/detect.py @@ -166,6 +166,9 @@ def guess_nix_linker(env: 'Environment', compiler: T.List[str], comp_class: T.Ty linker = lld_cls( compiler, for_machine, comp_class.LINKER_PREFIX, override, system=system, version=v) + elif 'Hexagon' in o and 'LLVM' in o: + linker = linkers.ELDDynamicLinker( + compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v) elif 'Snapdragon' in e and 'LLVM' in e: linker = linkers.QualcommLLVMDynamicLinker( compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v) -- cgit v1.2.3