From 89a5bde9d98ecc96bb462872bb2d83ac762ffc08 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Wed, 8 May 2024 00:55:05 +0200 Subject: cuda: pass static archives to nvcc without -Xlinker= prefix --- mesonbuild/compilers/cuda.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mesonbuild/compilers') diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index 7f7ad7495..3761019b9 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -382,8 +382,11 @@ class CudaCompiler(Compiler): # This is ambiguously either an MVSC-style /switch or an absolute path # to a file. For some magical reason the following works acceptably in # both cases. + # We only want to prefix arguments that are NOT static archives, since + # the latter could contain relocatable device code (-dc/-rdc=true). + prefix = '' if flag.endswith('.a') else f'-X{phase.value}=' wrap = '"' if ',' in flag else '' - xflags.append(f'-X{phase.value}={wrap}{flag}{wrap}') + xflags.append(f'{prefix}{wrap}{flag}{wrap}') continue elif len(flag) >= 2 and flag[0] == '-' and flag[1] in 'IDULlmOxmte': # This is a single-letter short option. These options (with the -- cgit v1.2.3