From 090eaac91881b3cff50369fa0b1d53dcd5167fe6 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Fri, 21 Feb 2020 05:08:55 +0530 Subject: unit tests: Remove an unused variable --- run_unittests.py | 1 - 1 file changed, 1 deletion(-) diff --git a/run_unittests.py b/run_unittests.py index 7c2ae0555..5bded1703 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -5939,7 +5939,6 @@ class LinuxlikeTests(BasePlatformTests): ''' testdir = os.path.join(self.common_test_dir, testdir) subdir = os.path.join(testdir, subdir_path) - curdir = os.getcwd() with chdir(subdir): # Can't distribute broken symlinks in the source tree because it breaks # the creation of zipapps. Create it dynamically and run the test by -- cgit v1.2.3 From 36b4dec26270e8908307e80fcc174004bc69a181 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Fri, 21 Feb 2020 05:09:05 +0530 Subject: macOS: Remove more unused linkerlike args `-L` and `-headerpad_max_install_names` are both linker arguments that are commonly passed in CFLAGS too. Closes https://github.com/mesonbuild/meson/issues/6294 --- mesonbuild/compilers/compilers.py | 20 +++++++++++++++++++- run_unittests.py | 5 +++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index e8e72cfaf..03b1a3338 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1059,7 +1059,25 @@ class Compiler: return self.linker.get_undefined_link_args() def remove_linkerlike_args(self, args): - return [x for x in args if not x.startswith('-Wl')] + rm_exact = ('-headerpad_max_install_names',) + rm_prefixes = ('-Wl,', '-L',) + rm_next = ('-L',) + ret = [] + iargs = iter(args) + for arg in iargs: + # Remove this argument + if arg in rm_exact: + continue + # If the argument starts with this, but is not *exactly* this + # f.ex., '-L' should match ['-Lfoo'] but not ['-L', 'foo'] + if arg.startswith(rm_prefixes) and arg not in rm_prefixes: + continue + # Ignore this argument and the one after it + if arg in rm_next: + next(iargs) + continue + ret.append(arg) + return ret def get_lto_compile_args(self) -> T.List[str]: return [] diff --git a/run_unittests.py b/run_unittests.py index 5bded1703..56618df09 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -4896,6 +4896,11 @@ class DarwinTests(BasePlatformTests): self.build() self.install() + def test_removing_unused_linker_args(self): + testdir = os.path.join(self.common_test_dir, '108 has arg') + env = {'CFLAGS': '-L/tmp -L /var/tmp -headerpad_max_install_names -Wl,-export_dynamic'} + self.init(testdir, override_envvars=env) + @unittest.skipUnless(not is_windows(), "requires something Unix-like") class LinuxlikeTests(BasePlatformTests): -- cgit v1.2.3