From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp56.i.mail.ru (smtp56.i.mail.ru [217.69.128.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 19C46469719 for ; Tue, 17 Mar 2020 17:40:59 +0300 (MSK) From: "Timur Safin" References: <005501d5fbb3$7c2895d0$7479c170$@tarantool.org> <8b260724-43f4-ea28-44f8-2ed423ea410e@tarantool.org> In-Reply-To: <8b260724-43f4-ea28-44f8-2ed423ea410e@tarantool.org> Date: Tue, 17 Mar 2020 17:40:57 +0300 Message-ID: <05d301d5fc6a$125aa140$370fe3c0$@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-Language: ru Subject: Re: [Tarantool-patches] [PATCH v1.1] evio: workaround for wsl1 so_linger assertion List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Vladislav Shpilevoy' , 'Cyrill Gorcunov' Cc: tarantool-patches@dev.tarantool.org Hi there! : -----Original Message----- : From: Vladislav Shpilevoy : 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