Disable LTO on the plugin libraries again

This reverts most of e9c8c69a80. This
change ended up breaking `libyabridge-vst2.so` in Bitwig for some
reason.
This commit is contained in:
Robbert van der Helm
2022-04-16 22:30:26 +02:00
parent 470f4dfaaa
commit 6c815f4ca4
2 changed files with 6 additions and 24 deletions
-6
View File
@@ -89,12 +89,6 @@ Versioning](https://semver.org/spec/v2.0.0.html).
library to replace Boost.Asio. library to replace Boost.Asio.
- Fixed a deprecation warning in the Meson build, causing the minimum supported - Fixed a deprecation warning in the Meson build, causing the minimum supported
Meson version to be bumped up to **Meson 0.56** from 0.55. Meson version to be bumped up to **Meson 0.56** from 0.55.
- LTO has been explicitly enabled for all of the library targets. LTO doesn't
work with the plugin host Winelib binaries because of the way winegcc works,
but it's still useful for the plugin libraries so the option is now explicitly
enabled in the Meson build file for those targets. This is especially
important for the new chainloader libraries as they will otherwise pull in a
lot of code they don't actually need.
## [3.8.1] - 2022-03-08 ## [3.8.1] - 2022-03-08
+6 -18
View File
@@ -268,12 +268,11 @@ shared_library(
threads_dep, threads_dep,
tomlplusplus_dep, tomlplusplus_dep,
], ],
# NOTE: LTO does not support Winelibs, and it seems to break
# `libyabridge-vst2.so` in Bitwig for some reason. It should be left
# turned off for the time being except for on the chainloader
# libraries.
cpp_args : compiler_options, cpp_args : compiler_options,
# LTO currently doesn't work with winelibs, so instead we'll explicitly enable
# it for all other targets (which is extra important for the chainloaders as
# they'd otherwise pull in a bunch of unused symbols) without affecting the
# Wine plugin host binaries
override_options : ['b_lto=true'],
) )
shared_library( shared_library(
'yabridge-chainloader-vst2', 'yabridge-chainloader-vst2',
@@ -287,10 +286,7 @@ shared_library(
rt_dep, rt_dep,
], ],
cpp_args : compiler_options + chainloader_compiler_options, cpp_args : compiler_options + chainloader_compiler_options,
# LTO currently doesn't work with winelibs, so instead we'll explicitly enable # LTO is useful here to get rid of unused code
# it for all other targets (which is extra important for the chainloaders as
# they'd otherwise pull in a bunch of unused symbols) without affecting the
# Wine plugin host binaries
override_options : ['b_lto=true'], override_options : ['b_lto=true'],
) )
@@ -316,11 +312,6 @@ if with_vst3
vst3_sdk_native_dep, vst3_sdk_native_dep,
], ],
cpp_args : compiler_options, cpp_args : compiler_options,
# LTO currently doesn't work with winelibs, so instead we'll explicitly
# enable it for all other targets (which is extra important for the
# chainloaders as they'd otherwise pull in a bunch of unused symbols)
# without affecting the Wine plugin host binaries
override_options : ['b_lto=true'],
) )
shared_library( shared_library(
'yabridge-chainloader-vst3', 'yabridge-chainloader-vst3',
@@ -334,10 +325,7 @@ if with_vst3
rt_dep, rt_dep,
], ],
cpp_args : compiler_options + chainloader_compiler_options, cpp_args : compiler_options + chainloader_compiler_options,
# LTO currently doesn't work with winelibs, so instead we'll explicitly # See above
# enable it for all other targets (which is extra important for the
# chainloaders as they'd otherwise pull in a bunch of unused symbols)
# without affecting the Wine plugin host binaries
override_options : ['b_lto=true'], override_options : ['b_lto=true'],
) )
endif endif