disable modular TCG on Darwin
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 12 Jul 2021 12:22:08 +0000 (14:22 +0200)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 14 Jul 2021 13:31:48 +0000 (14:31 +0100)
Accelerator modularity does not work on Darwin:

ld: illegal thread local variable reference to regular symbol _current_cpu for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Fix by avoiding modular TCG builds.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210712122208.456264-1-pbonzini@redhat.com>
[AJB: manually merged typo fix]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
meson.build

index b0e2b9a8a085456ae878ddb21a17b6d14283f4eb..512ee2e926cd91c18da2bbf705e63ac5a3bae993 100644 (file)
@@ -92,7 +92,11 @@ if cpu in ['x86', 'x86_64']
   }
 endif
 
-modular_tcg = ['i386-softmmu', 'x86_64-softmmu']
+modular_tcg = []
+# Darwin does not support references to thread-local variables in modules
+if targetos != 'darwin'
+  modular_tcg = ['i386-softmmu', 'x86_64-softmmu']
+endif
 
 edk2_targets = [ 'arm-softmmu', 'aarch64-softmmu', 'i386-softmmu', 'x86_64-softmmu' ]
 install_edk2_blobs = false