From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
To: dev@dpdk.org
Cc: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,
Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>,
Omar Cardona <ocardona@microsoft.com>,
Pallavi Kadam <pallavi.kadam@intel.com>,
Ranjit Menon <ranjit.menon@intel.com>,
John McNamara <john.mcnamara@intel.com>,
Marko Kovacevic <marko.kovacevic@intel.com>
Subject: [dpdk-dev] [PATCH 6/6] doc: guide for Windows build using MinGW-w64
Date: Fri, 31 Jan 2020 06:07:44 +0300 [thread overview]
Message-ID: <20200131030744.19596-7-dmitry.kozliuk@gmail.com> (raw)
In-Reply-To: <20200131030744.19596-1-dmitry.kozliuk@gmail.com>
Instructions for different toolchains presented as options on the
corresponging steps of the guide, so that common parts may be reused.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
diff --git a/doc/guides/windows_gsg/build_dpdk.rst b/doc/guides/windows_gsg/build_dpdk.rst
index 6711e07e2..eabc459fb 100644
--- a/doc/guides/windows_gsg/build_dpdk.rst
+++ b/doc/guides/windows_gsg/build_dpdk.rst
@@ -7,15 +7,22 @@ Compiling the DPDK Target from Source
System Requirements
-------------------
-The DPDK and its applications require the Clang-LLVM C compiler
-and Microsoft MSVC linker.
+Building the DPDK and its applications requires one of the following
+environments:
+
+* The Clang-LLVM C compiler and Microsoft MSVC linker.
+* The MinGW-w64 toolchain (either native or cross).
+
The Meson Build system is used to prepare the sources for compilation
with the Ninja backend.
The installation of these tools is covered in this section.
+Option 1. Clang-LLVM C Compiler and Microsoft MSVC Linker
+---------------------------------------------------------
+
Install the Compiler
---------------------
+~~~~~~~~~~~~~~~~~~~~
Download and install the clang compiler from
`LLVM website <http://releases.llvm.org/download.html>`_.
@@ -25,7 +32,7 @@ For example, Clang-LLVM direct download link::
Install the Linker
-------------------
+~~~~~~~~~~~~~~~~~~
Download and install the Build Tools for Visual Studio to link and build the
files on windows,
@@ -34,6 +41,15 @@ When installing build tools, select the "Visual C++ build tools" option
and ensure the Windows SDK is selected.
+Option 2. MinGW-w64 Toolchain
+-----------------------------
+
+Obtain the latest version from
+`MinGW-w64 website <http://mingw-w64.org/doku.php/download>`_.
+On Windows, install to a folder without spaces in its name, like ``C:\MinGW``.
+This path is assumed for the rest of this guide.
+
+
Install the Build System
------------------------
@@ -56,23 +72,41 @@ Build the code
The build environment is setup to build the EAL and the helloworld example by
default.
-Using the ninja backend
-~~~~~~~~~~~~~~~~~~~~~~~~
+Option 1. Native Build on Windows
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Specifying the compiler might be required to complete the meson command.
+When using Clang-LLVM, specifying the compiler might be required to complete
+the meson command:
.. code-block:: console
set CC=clang
+When using MinGW-w64, it is sufficient to have toolchain executables in PATH:
+
+.. code-block:: console
+
+ set PATH=C:\MinGW\mingw64\bin;%PATH%
+
To compile the examples, the flag ``-Dexamples`` is required.
.. code-block:: console
cd C:\Users\me\dpdk
meson -Dexamples=helloworld build
- cd build
- ninja
+ ninja -C build
+
+Option 2. Cross-Compile with MinGW-w64
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The cross-file option must be specified for Meson.
+Depending on the distribution, paths in this file may need adjustments.
+
+.. code-block:: console
+
+ meson --cross-file meson_mingw.txt -Dexamples=helloworld build
+ ninja -C build
+
Run the helloworld example
==========================
@@ -87,3 +121,8 @@ Navigate to the examples in the build directory and run `dpdk-helloworld.exe`.
hello from core 3
hello from core 0
hello from core 2
+
+Note for MinGW-w64: applications are linked to ``libwinpthread-1.dll``
+by default. To run the example, either add toolchain executables directory
+to the PATH or copy the library to the working directory.
+Alternatively, static linking may be used (mind the LGPLv2.1 license).
--
2.25.0
next prev parent reply other threads:[~2020-01-31 3:08 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-31 3:07 [dpdk-dev] [PATCH 0/6] MinGW-w64 support Dmitry Kozlyuk
2020-01-31 3:07 ` [dpdk-dev] [PATCH 1/6] eal: introduce portable format attribute Dmitry Kozlyuk
2020-01-31 3:07 ` [dpdk-dev] [PATCH 2/6] eal: use " Dmitry Kozlyuk
2020-01-31 3:07 ` [dpdk-dev] [PATCH 3/6] cmdline: " Dmitry Kozlyuk
2020-01-31 3:07 ` [dpdk-dev] [PATCH 4/6] build: MinGW-w64 support for Meson Dmitry Kozlyuk
2020-02-04 22:08 ` Thomas Monjalon
2020-02-04 23:21 ` Dmitry Kozlyuk
2020-02-05 0:41 ` Thomas Monjalon
2020-02-05 14:30 ` Bruce Richardson
2020-02-05 20:41 ` Dmitry Kozlyuk
2020-02-06 10:59 ` Bruce Richardson
2020-02-07 19:27 ` Dmitry Kozlyuk
2020-01-31 3:07 ` [dpdk-dev] [PATCH 5/6] build: add cross-file for MinGW-w64 Dmitry Kozlyuk
2020-02-04 22:14 ` Thomas Monjalon
2020-02-04 23:23 ` Dmitry Kozlyuk
2020-01-31 3:07 ` Dmitry Kozlyuk [this message]
2020-02-04 22:34 ` [dpdk-dev] [PATCH 6/6] doc: guide for Windows build using MinGW-w64 Thomas Monjalon
2020-02-04 23:57 ` Dmitry Kozlyuk
2020-02-05 2:20 ` Thomas Monjalon
2020-02-09 21:39 ` Dmitry Kozlyuk
2020-02-17 6:27 ` Dmitry Kozlyuk
2020-04-29 13:57 ` Thomas Monjalon
2020-02-05 1:49 ` [dpdk-dev] [EXTERNAL] [PATCH 0/6] MinGW-w64 support Narcisa Ana Maria Vasile
2020-02-05 5:43 ` Dmitry Kozlyuk
2020-02-05 9:26 ` David Marchand
2020-02-05 20:59 ` Dmitry Kozlyuk
2020-02-05 21:02 ` Narcisa Ana Maria Vasile
2020-02-05 21:21 ` Dmitry Kozlyuk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200131030744.19596-7-dmitry.kozliuk@gmail.com \
--to=dmitry.kozliuk@gmail.com \
--cc=dev@dpdk.org \
--cc=harini.ramakrishnan@microsoft.com \
--cc=john.mcnamara@intel.com \
--cc=marko.kovacevic@intel.com \
--cc=ocardona@microsoft.com \
--cc=pallavi.kadam@intel.com \
--cc=ranjit.menon@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).