[Tarantool-patches] [PATCH v1.1] evio: workaround for wsl1 so_linger assertion
Timur Safin
tsafin at tarantool.org
Tue Mar 17 17:40:57 MSK 2020
Hi there!
: -----Original Message-----
: From: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
: Subject: Re: [PATCH v1.1] evio: workaround for wsl1 so_linger assertion
:
: Hi! Thanks for the patch!
:
: Please, keep branch link in each new email thread.
Yup, sorry for the omission, I should automate this somehow
(because at the moment there are too many manual steps which are
easy to forget or to skip. Do you have any advices/scripts here?)
: > @@ -11,6 +11,15 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
: > # (see man page for feature_test_macros).
: > add_definitions("-D_FILE_OFFSET_BITS=64")
: > find_package_message(PLATFORM "Building for Linux"
: "${CMAKE_SYSTEM_NAME}")
: > +
: > + # There are some subtle differences in Linux kernel calls
: > + # implementation under WSL1 (which should go away with WSL2 kernel)
: > + # so for a moment we introduce a way to distinguish Linux and
: > + # Microsoft/WSL1
: > + if (${CMAKE_SYSTEM} MATCHES "Linux-.*-Microsoft")
: > + add_definitions("-DTARANTOOL_WSL1_WORKAROUND_ENABLED=1")
: > + endif()
:
: To be more consistent I would better call it TARGET_OS_WSL1.
: Since we already have TARGET_OS_LINUX, TARGET_OS_FREEBSD,
: TARGET_OS_DEBIAN_FREEBSD, TARGET_OS_NETBSD, TARGET_OS_DARWIN.
:
I did consider introducing the special target, but after some
evaluation I've realized that this is not a new target, but rather
Linux flavor (with the same abi, binutils, glibc implementation)
but slightly different syscalls implementation. Which difference
after WSL2 release would go away the end of Spring 2020.
: Besides, it would be consistent with other similar examples
: such as fio_filename(), load_cfg(), make_pipe(), and so on. They
: use TARGET_OS_* name.
And this example of fio_filename() implementation is exactly
and indication why WSL is still the same Linux - it is requiring the same
exactly TARGET_OS_LINUX defined to be correctly implemented under WSL.
:
: > +
: > elseif (${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD")
: > set(TARGET_OS_FREEBSD 1)
: > set(TARGET_OS_DEBIAN_FREEBSD 1)
: > @@ -19,6 +28,7 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD")
: > add_definitions("-D_FILE_OFFSET_BITS=64")
: > find_package_message(PLATFORM "Building for Debian/kFreeBSD"
: > "${CMAKE_SYSTEM_NAME}")
: > +
:
: Please, omit not necessary diff. This and other new empty lines
: below.
:
Ok, will remove these unnecessary lines added (though they did
add some extra readability to the cmake scripts we have here :) )
Regards,
Timur
More information about the Tarantool-patches
mailing list