diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py
index 05c75dd7b..af7e5193e 100644
--- a/mesonbuild/compilers/__init__.py
+++ b/mesonbuild/compilers/__init__.py
@@ -58,6 +58,7 @@ __all__ = [
     'ElbrusCCompiler',
     'EmscriptenCCompiler',
     'GnuCompiler',
+    'GnuLikeCompiler',
     'GnuCPPCompiler',
     'ElbrusCPPCompiler',
     'EmscriptenCPPCompiler',
@@ -196,6 +197,6 @@ from .rust import RustCompiler
 from .swift import SwiftCompiler
 from .vala import ValaCompiler
 from .mixins.visualstudio import VisualStudioLikeCompiler
-from .mixins.gnu import GnuCompiler
+from .mixins.gnu import GnuCompiler, GnuLikeCompiler
 from .mixins.intel import IntelGnuLikeCompiler, IntelVisualStudioLikeCompiler
 from .mixins.clang import ClangCompiler
diff --git a/run_unittests.py b/run_unittests.py
index 957e1b107..962ab5d6a 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -4989,14 +4989,24 @@ class WindowsTests(BasePlatformTests):
                 self.assertEqual(comp.linker.id, expected)
 
     def test_link_environment_variable_lld_link(self):
+        env = get_fake_env()
+        comp = getattr(env, 'detect_c_compiler')(MachineChoice.HOST)
+        if isinstance(comp, mesonbuild.compilers.GnuLikeCompiler):
+            raise unittest.SkipTest('GCC cannot be used with link compatible linkers.')
         self._check_ld('lld-link', 'c', 'lld-link')
 
     def test_link_environment_variable_link(self):
-        if shutil.which('gcc'):
-            raise unittest.SkipTest('GCC can not used with link.exe.')
+        env = get_fake_env()
+        comp = getattr(env, 'detect_c_compiler')(MachineChoice.HOST)
+        if isinstance(comp, mesonbuild.compilers.GnuLikeCompiler):
+            raise unittest.SkipTest('GCC cannot be used with link compatible linkers.')
         self._check_ld('link', 'c', 'link')
 
     def test_link_environment_variable_optlink(self):
+        env = get_fake_env()
+        comp = getattr(env, 'detect_c_compiler')(MachineChoice.HOST)
+        if isinstance(comp, mesonbuild.compilers.GnuLikeCompiler):
+            raise unittest.SkipTest('GCC cannot be used with link compatible linkers.')
         self._check_ld('optlink', 'c', 'optlink')
 
     @skip_if_not_language('rust')