From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E3293A0539; Wed, 5 Feb 2020 03:20:15 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 457171C1E6; Wed, 5 Feb 2020 03:20:15 +0100 (CET) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 1ABD91C124 for ; Wed, 5 Feb 2020 03:20:14 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 5731422095; Tue, 4 Feb 2020 21:20:13 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 04 Feb 2020 21:20:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=mesmtp; bh=Gg1bAONxZAd8FjqCtHoFdtcGxQaoQyFTRe6GnOuaaNs=; b=Z7azR7Sp5Cwy 947f1X+dL5Zh6PKyYwyssX/Vp9TG2BTwQ+sZ+utgoUIGN0oxyZSMZe6UOHaipI2B gySz9HjQBwKL0fj6MvbJJGH77fwdsqDDAn0VJ17DFPXcyR8lpx+pwvI0kKo4Yb+d RHj1wlAgpJx38uSn6vfK/HE1+W0zV/s= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=Gg1bAONxZAd8FjqCtHoFdtcGxQaoQyFTRe6GnOuaa Ns=; b=pI8+u01sHCQEjIoNgTqWuv47K9Q/YwAys1fX+y3wBpRfKJx8lUN//3mam 6C2RCMBCgbIvGBSsHR2jCP7YvzgKaiTjCMOoBnxsZrIAKGjHCpbvPbZpgc3kpBvY elhXHX+uni6KTPTcMsO6GPFHVaPXMgO4lIMbpwfko0JgbyURSIIHiJ7ZmQEdQO0L hAZMzyGTMEQbEdIMdrTLHk0wnyTs6nXh93pVqGt+U3ZNtGLOhh9rR0WQwG0jy7HV z2i94wBb9MQATVd1g8xR5DknV4goIwXx8eR14xK05LRnufREwwFv7T1wqLpMWBm/ t+hBDX8efSGn6lzjk9vFiw+JqkXnA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrhedtgdegiecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkjghfggfgtgesthfuredttddtvdenucfhrhhomhepvfhhohhmrghs ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucffoh hmrghinhepughpughkrdhorhhgpdhllhhvmhdrohhrghdpghhithhhuhgsrdgtohhmpdhg nhhurdhorhhgpdhsohhurhgtvghfohhrghgvrdhnvghtnecukfhppeejjedrudefgedrvd dtfedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr ohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 9720030607B0; Tue, 4 Feb 2020 21:20:11 -0500 (EST) From: Thomas Monjalon To: Dmitry Kozlyuk Cc: dev@dpdk.org, Harini Ramakrishnan , Omar Cardona , Pallavi Kadam , Ranjit Menon , John McNamara , Marko Kovacevic , Tal Shnaiderman Date: Wed, 05 Feb 2020 03:20:09 +0100 Message-ID: <3267218.V25eIC5XRa@xps> In-Reply-To: <20200205025728.4562e90b@Sovereign> References: <20200131030744.19596-1-dmitry.kozliuk@gmail.com> <2467193.BddDVKsqQX@xps> <20200205025728.4562e90b@Sovereign> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH 6/6] doc: guide for Windows build using MinGW-w64 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 05/02/2020 00:57, Dmitry Kozlyuk: > > I think having the choice between GCC and Clang for Windows is very cool. > > > > When starting the Windows port, I asked the fundamental question of the > > supported compilers. The answer was MinGW adds "non-standard" DLLs: > > https://mails.dpdk.org/archives/dev/2019-January/124236.html > > Indeed, it does add a pthread implementation DLL, I even documented it. It > presents no technical or legal trouble though. > > > Now the question is to know which one is the easiest to use? > > The issues are a few (almost all in this message), after they are resolved, > there is no significant difference. With MinGW, more things work out of the > box. It also allows for immediate cross-compilation from Linux, which is > important while Windows drivers are unstable and can crash the system hard. > > > If I understand well, MinGW brings the missing parts we are trying > > to add in the DPDK repository for compliance with POSIX libraries. > > Yes, having pthread implementation out-of-the-box helps with porting EAL. > Clang can use external pthread, e. g. winpthreads [0] (not to be confused with > winpthread without S). MinGW doesn't aim to provide POSIX support, it only > brings the parts required for GCC toolchain. > > Clang has structure alignment issue, which is a show-stopper for rte_mbuf, > because its carefully crafted layout is broken and becomes 3 cache-lines > instead of two: > > https://bugs.llvm.org/show_bug.cgi?id=24383 > > For GCC, there is a way force rte_mbuf layout: > > https://github.com/PlushBeaver/dpdk/commit/37f052cb18d1d5d425818196d5e1d15a7ada0de0 > > GCC, in its turn, has an AVX bug, although it can be worked around by > force-inlining functions in rte_acl (as I did): > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412 > > [0]: > https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-libraries/winpthreads/ Thanks a lot for all these valuable informations. I think the strategy should be to progress on both GCC and Clang at the same time. Please Dmitry, would you like to review Pallavi's patches in order to make them coexist with yours?