_toolchain: Properly set compiler/linker executables on Gentoo
authorAdam Jeliński <ajelinski@antmicro.com>
Tue, 21 Sep 2021 08:33:26 +0000 (10:33 +0200)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 31 Dec 2021 15:31:23 +0000 (15:31 +0000)
The `test_toolchain_cxx.py` tests on Gentoo definitely use compiler and
linker set with `_so_cxx`-suffixed executables. Tests use a proper
executable instead of `c++` after this change.

Signed-off-by: Adam Jeliński <ajelinski@antmicro.com>
nmigen/_toolchain/cxx.py

index 107cdab76c791112161d273fb101d410dbbe1f57..9b7fce2892f2f27195d6ea1c9a6334cd39498a8a 100644 (file)
@@ -36,6 +36,16 @@ def build_cxx(*, cxx_sources, output_name, include_dirs, macros):
             linker_so=ld_cxxflags,
         )
 
+        # Sometimes CCompiler is modified to have additional executable entries for compiling and
+        # linking CXX shared objects (e.g. on Gentoo). These executables have to be set then.
+        try:
+            cc_driver.set_executables(
+                compiler_so_cxx=f"{cxx} {cflags}",
+                linker_so_cxx=ld_cxxflags,
+            )
+        except:
+            pass
+
         for include_dir in include_dirs:
             cc_driver.add_include_dir(include_dir)
         for macro in macros: