LLVM: work around bug in dragonfly bsd llvm-config for shared libs
Of course there are OS specific bugs for llvm-config as well, so work
around those too.
@@ -173,6 +173,16 @@ class LLVMDependency(ConfigToolDependency):
def _set_new_link_args(self):
"""How to set linker args for LLVM versions >= 3.9"""
+ if (mesonlib.is_dragonflybsd() and not self.static and
+ version_compare(self.version, '>= 4.0')):
+ # llvm-config on DragonFly BSD for versions 4.0, 5.0, and 6.0 have
+ # an error when generating arguments for shared mode linking, even
+ # though libLLVM.so is installed, because for some reason the tool
+ # expects to find a .so for each static library. This works around
+ # that.
+ self.link_args = self.get_config_value(['--ldflags'], 'link_args')
+ self.link_args.append('-lLLVM')
+ return
link_args = ['--link-static', '--system-libs'] if self.static else ['--link-shared']
self.link_args = self.get_config_value(
['--libs', '--ldflags'] + link_args + list(self.required_modules),
