Windows: Re-add --enable-btls-lib to build BTLS dll

I reverted this by mistake while investigating an unrelated crash.
See #66 for details.

This reverts commits aaee521d08
and 20368d7289.
This commit is contained in:
Rémi Verschelde 2022-05-24 15:45:48 +02:00
parent 7533d081e4
commit 2fa04b9dc7
3 changed files with 45 additions and 2 deletions

View File

@ -88,12 +88,13 @@ def setup_desktop_template(env: dict, opts: DesktopOpts, product: str, target_pl
'--enable-maintainer-mode',
'--with-tls=pthread',
'--without-ikvm-native',
'--enable-btls'
'--enable-btls',
]
if target_platform == 'windows':
CONFIGURE_FLAGS += [
'--with-libgdiplus=%s' % opts.mxe_prefix
'--with-libgdiplus=%s' % opts.mxe_prefix,
'--enable-btls-lib',
]
else:
CONFIGURE_FLAGS += [
@ -210,6 +211,14 @@ def configure(opts: DesktopOpts, product: str, target_platform: str, target: str
def make(opts: DesktopOpts, product: str, target_platform: str, target: str):
build_dir = path_join(opts.configure_dir, '%s-%s-%s' % (product, target, opts.configuration))
if target_platform == 'windows':
mxe = 'mxe-Win64' if target == 'x86_64' else 'mxe-Win32'
replace_in_new_file(
src_file='%s/sdks/builds/%s.cmake.in' % (opts.mono_source_root, mxe),
search='@MXE_PATH@', replace=opts.mxe_prefix,
dst_file='%s/mono/btls/%s.cmake' % (opts.mono_source_root, mxe)
)
make_args = make_default_args(opts)
make_args += ['-C', build_dir]

View File

@ -0,0 +1,33 @@
diff --git a/configure.ac b/configure.ac
index 088128e5e74..54693aace64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5918,6 +5918,8 @@ if test "x$enable_btls" = "xyes"; then
if test "x$HAVE_YASM" != "xyes"; then
BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1"
fi
+ mono_btls_dir_abs=`cd $srcdir && pwd`/mono/btls
+ BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DCYGWIN=TRUE -DCMAKE_TOOLCHAIN_FILE=\"$mono_btls_dir_abs/mxe-Win32.cmake\""
;;
esac
;;
@@ -5929,6 +5931,8 @@ if test "x$enable_btls" = "xyes"; then
if test "x$HAVE_YASM" != "xyes"; then
BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1"
fi
+ mono_btls_dir_abs=`cd $srcdir && pwd`/mono/btls
+ BTLS_CMAKE_ARGS="$BTLS_CMAKE_ARGS -DCYGWIN=TRUE -DCMAKE_TOOLCHAIN_FILE=\"$mono_btls_dir_abs/mxe-Win64.cmake\""
;;
esac
;;
diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt
index 992f41e4c7f..9946f5d21a4 100644
--- a/mono/btls/CMakeLists.txt
+++ b/mono/btls/CMakeLists.txt
@@ -129,4 +129,5 @@ endif ()
if (CYGWIN)
target_link_libraries (mono-btls-shared wsock32 ws2_32)
+ target_link_options (mono-btls-shared PRIVATE -static-libgcc)
endif ()
\ No newline at end of file

View File

@ -32,6 +32,7 @@ def main(raw_args):
'bcl-profile-platform-override.diff',
'mono_ios_asl_log_deprecated.diff',
'wasm_m2n_trampolines_hook.diff',
'btls-cmake-args-linux-mingw.diff'
]
if os.path.isfile(os.path.join(mono_source_root, 'mono/tools/offsets-tool/offsets-tool.py')):