Skip to content

Commit

Permalink
linkers: fix LLD linker response file handling
Browse files Browse the repository at this point in the history
Correct base classes so GNU-like linkers all default to supporting response files.
  • Loading branch information
benoit-pierre authored and dcbaker committed Aug 9, 2024
1 parent 81b151f commit 8ef4e34
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
6 changes: 3 additions & 3 deletions mesonbuild/linkers/linkers.py
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,9 @@ def _apply_prefix(self, arg: T.Union[str, T.List[str]]) -> T.List[str]: ...
"boot_application": "16",
}

def get_accepts_rsp(self) -> bool:
return True

def get_pie_args(self) -> T.List[str]:
return ['-pie']

Expand Down Expand Up @@ -849,9 +852,6 @@ class GnuDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, Dynam

"""Representation of GNU ld.bfd and ld.gold."""

def get_accepts_rsp(self) -> bool:
return True


class GnuGoldDynamicLinker(GnuDynamicLinker):

Expand Down
9 changes: 9 additions & 0 deletions unittests/allplatformstests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5010,3 +5010,12 @@ def test_c_cpp_stds(self):
# The first supported std should be selected
self.setconf('-Dcpp_std=c++11,gnu++11,vc++11')
self.assertEqual(self.getconf('cpp_std'), 'c++11')

def test_rsp_support(self):
env = get_fake_env()
cc = detect_c_compiler(env, MachineChoice.HOST)
has_rsp = cc.linker.id in {
'ld.bfd', 'ld.gold', 'ld.lld', 'ld.mold', 'ld.qcld', 'ld.wasm',
'link', 'lld-link', 'mwldarm', 'mwldeppc', 'optlink', 'xilink',
}
self.assertEqual(cc.linker.get_accepts_rsp(), has_rsp)

0 comments on commit 8ef4e34

Please sign in to comment.