[dpdk-dev] DPDK Windows Build

William Tu u9012063 at gmail.com
Tue Feb 4 00:26:05 CET 2020


On Mon, Feb 3, 2020 at 3:03 PM Dmitry Kozlyuk <dmitry.kozliuk at gmail.com> wrote:
>
> > From the step in
> > https://mesonbuild.com/Quick-guide.html#installation-from-source
> > I tried to compile meson by doing:
> > $ git clone  https://github.com/mesonbuild/meson.git
> > $ cd meson
> > $ meson builddir
> >  ERROR: Neither directory contains a build file meson.build.
> >
> > How do I generate a meson.build file?
>
> I build Meson from Windows command line (not Git Bash) as pip package:
>
> C:\src\meson> python setup.py install --user
>
> You need write permissions for C:\Python, so use elevated command prompt or
> an administrator account. To use the new version, make sure C:\Python\Scripts
> is in the beginning of your PATH (assuming C:\Python being your Python 3
> installation directory).
>
> Don't forget to apply the patch, it's not in upstream yet. You can instead
> clone the fork directly:
>
> git clone -b msvc-linker-arg-prefix https://github.com/PlushBeaver/meson.git
>
> --
Hi Dmitry,

Thanks! I now passed the issue of "'/OPT:REF"
now with "ninja -v", I got another error saying:
C:\dpdk-draft-windows>meson build9
C:\dpdk-draft-windows>cd build9
C:\dpdk-draft-windows\build9>ninja -v
[1/14] clang @lib/76b5a35@@rte_kvargs at sta/librte_kvargs_rte_kvargs.c.obj.rsp
[2/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_errno.c.obj.rsp
[3/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_launch.c.obj.rsp
[4/14] llvm-ar "csrD" lib/librte_kvargs.a @lib/librte_kvargs.a.rsp
[5/14] clang @lib/librte_kvargs-1.dll.rsp
clang.exe: warning: argument unused during compilation: '-pthread'
[-Wunused-command-line-argument]
LINK : warning LNK4044: unrecognized option '/-no-as-needed'; ignored
   Creating library lib\librte_kvargs.dll.a and object lib\librte_kvargs.dll.exp
[6/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_lcore.c.obj.rsp
[7/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_log.c.obj.rsp
[8/14] "C:\Python38\Scripts\meson" --internal symbolextractor
lib/librte_kvargs-1.dll
lib/76b5a35@@rte_kvargs at sha/librte_kvargs-1.dll.symbols
[9/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_lcore.c.obj.rsp
[10/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal.c.obj.rsp
[11/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_debug.c.obj.rsp
[12/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_thread.c.obj.rsp
[13/14] llvm-ar "csrD" lib/librte_eal.a @lib/librte_eal.a.rsp
[14/14] clang @lib/librte_eal-10.dll.rsp
clang.exe: warning: argument unused during compilation: '-pthread'
[-Wunused-command-line-argument]
LINK : warning LNK4044: unrecognized option '/-no-as-needed'; ignored
   Creating library lib\librte_eal.dll.a and object lib\librte_eal.dll.exp

Do I mess up some linker's configurations?
I attached the meson log, thanks for your help!
William
-------------- next part --------------




=== BUILD9 ===
C:\dpdk-draft-windows>meson build9
C:\dpdk-draft-windows>cd build9
C:\dpdk-draft-windows\build9>ninja -v
[1/14] clang @lib/76b5a35@@rte_kvargs at sta/librte_kvargs_rte_kvargs.c.obj.rsp
[2/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_errno.c.obj.rsp
[3/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_launch.c.obj.rsp
[4/14] llvm-ar "csrD" lib/librte_kvargs.a @lib/librte_kvargs.a.rsp
[5/14] clang @lib/librte_kvargs-1.dll.rsp
clang.exe: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
LINK : warning LNK4044: unrecognized option '/-no-as-needed'; ignored
   Creating library lib\librte_kvargs.dll.a and object lib\librte_kvargs.dll.exp
[6/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_lcore.c.obj.rsp
[7/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_log.c.obj.rsp
[8/14] "C:\Python38\Scripts\meson" --internal symbolextractor lib/librte_kvargs-1.dll lib/76b5a35@@rte_kvargs at sha/librte_kvargs-1.dll.symbols
[9/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_common_eal_common_lcore.c.obj.rsp
[10/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal.c.obj.rsp
[11/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_debug.c.obj.rsp
[12/14] clang @lib/76b5a35@@rte_eal at sta/librte_eal_windows_eal_eal_thread.c.obj.rsp
[13/14] llvm-ar "csrD" lib/librte_eal.a @lib/librte_eal.a.rsp
[14/14] clang @lib/librte_eal-10.dll.rsp
clang.exe: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
LINK : warning LNK4044: unrecognized option '/-no-as-needed'; ignored
   Creating library lib\librte_eal.dll.a and object lib\librte_eal.dll.exp

///

Build started at 2020-02-03T15:14:10.888590
Main binary: C:\Python38\python.exe
Build Options: 
Python system: Windows
The Meson build system
Version: 0.53.999
Source dir: C:\dpdk-draft-windows
Build dir: C:\dpdk-draft-windows\build9
Build type: native build
Program cat found: NO
Program more found: YES (C:\WINDOWS\system32\more.COM)
Running command: C:\WINDOWS\system32\more.COM C:\dpdk-draft-windows\VERSION
--- stdout ---
19.05.0-rc4

--- stderr ---


Project name: DPDK
Project version: 19.05.0-rc4
No CFLAGS in the environment, not changing global flags.
No LDFLAGS in the environment, not changing global flags.
No CPPFLAGS in the environment, not changing global flags.
Sanity testing C compiler: clang
Is cross compiler: False.
Sanity check compiler command line: clang C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.c -o C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.exe -Wl,/MDd -pipe
Sanity check compile stdout:
LINK : warning LNK4044: unrecognized option '/MDd'; ignored

-----
Sanity check compile stderr:

-----
Running test binary command: C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.exe
C compiler for the build machine: clang (clang 7.0.1 "clang version 7.0.1 (tags/RELEASE_701/final)")
C linker for the build machine: clang link 14.24.28316.0
No CFLAGS in the environment, not changing global flags.
No LDFLAGS in the environment, not changing global flags.
No CPPFLAGS in the environment, not changing global flags.
Sanity testing C compiler: clang
Is cross compiler: False.
Sanity check compiler command line: clang C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.c -o C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.exe -Wl,/MDd -pipe
Sanity check compile stdout:
LINK : warning LNK4044: unrecognized option '/MDd'; ignored

-----
Sanity check compile stderr:

-----
Running test binary command: C:\dpdk-draft-windows\build9\meson-private\sanitycheckc.exe
C compiler for the host machine: clang (clang 7.0.1 "clang version 7.0.1 (tags/RELEASE_701/final)")
C linker for the host machine: clang link 14.24.28316.0
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Program ../buildtools/symlink-drivers-solibs.sh found: YES (sh C:\dpdk-draft-windows\config\../buildtools/symlink-drivers-solibs.sh)
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmpynfrrx5q
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmpynfrrx5q\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmpynfrrx5q\output.exe -pipe -Wl,/MDd -O0 

Code:
 #include<stdio.h>
        
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        };
Compiler stdout:
 LINK : warning LNK4044: unrecognized option '/MDd'; ignored

Compiler stderr:
 
Program stdout:

8

Program stderr:


Checking for size of "void *" : 8
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmpmqg5yx0i
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmpmqg5yx0i\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmpmqg5yx0i\output.exe -pipe -Wl,/MDd -O0 -llibm 

Code:
 int main(void) { return 0; }
Compiler stdout:
 LINK : warning LNK4044: unrecognized option '/MDd'; ignored
LINK : fatal error LNK1181: cannot open input file 'libm.lib'

Compiler stderr:
 clang.exe: error: linker command failed with exit code 1181 (use -v to see invocation)

Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmp6wxb3jn4
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmp6wxb3jn4\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmp6wxb3jn4\output.exe -pipe -Wl,/MDd -O0 

Code:
 #include<stdio.h>
        
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        };
Compiler stdout:
 LINK : warning LNK4044: unrecognized option '/MDd'; ignored

Compiler stderr:
 
Program stdout:

8

Program stderr:


Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmprm2pcx_2
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmprm2pcx_2\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmprm2pcx_2\output.obj -pipe -c -O0 --print-search-dirs 

Code:
 
Compiler stdout:
 programs: =C:\LLVM\bin
libraries: =C:\LLVM\lib\clang\7.0.1

Compiler stderr:
 
Library libm found: NO
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmppbheo9sk
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmppbheo9sk\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmppbheo9sk\output.exe -pipe -Wl,/MDd -O0 -lnuma 

Code:
 int main(void) { return 0; }
Compiler stdout:
 LINK : warning LNK4044: unrecognized option '/MDd'; ignored
LINK : fatal error LNK1181: cannot open input file 'numa.lib'

Compiler stderr:
 clang.exe: error: linker command failed with exit code 1181 (use -v to see invocation)

Library numa found: NO
Pkg-config binary for MachineChoice.HOST is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Trying pkg-config binary pkg-config for machine MachineChoice.HOST at [None]
Did not find pkg-config by name 'pkg-config'
Found Pkg-config: NO
Pkg-config binary for machine MachineChoice.HOST not found. Giving up.
CMake binary for MachineChoice.HOST is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Trying CMake binary cmake for machine MachineChoice.HOST at [None]
Did not find CMake 'cmake'
Found CMake: NO
No CMake binary for machine MachineChoice.HOST not found. Giving up.
Run-time dependency libbsd found: NO (tried pkgconfig and cmake)
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmph93fxaqm
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmph93fxaqm\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmph93fxaqm\output.obj -pipe -c -O0 -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wsign-compare 

Code:
 int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wsign-compare: YES 
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmpqk197ga5
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmpqk197ga5\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmpqk197ga5\output.obj -pipe -c -O0 -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wcast-qual 

Code:
 int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wcast-qual: YES 
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmpkc6_66g3
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmpkc6_66g3\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmpkc6_66g3\output.obj -pipe -c -O0 -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wno-address-of-packed-member -Waddress-of-packed-member 

Code:
 int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wno-address-of-packed-member: YES 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmpo9i1f3j_
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmpo9i1f3j_\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __SSE4_2__
        # define __SSE4_2__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__SSE4_2__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"
1

Compiler stderr:
 
Fetching value of define "__SSE4_2__" : 1 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmppegvgphc
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmppegvgphc\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __AES__
        # define __AES__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__AES__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"
1

Compiler stderr:
 
Fetching value of define "__AES__" : 1 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmp2zg_besz
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmp2zg_besz\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __PCLMUL__
        # define __PCLMUL__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__PCLMUL__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"
1

Compiler stderr:
 
Fetching value of define "__PCLMUL__" : 1 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmp_ghl6pz0
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmp_ghl6pz0\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __AVX__
        # define __AVX__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__AVX__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"
1

Compiler stderr:
 
Fetching value of define "__AVX__" : 1 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmpqu4axgn6
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmpqu4axgn6\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __AVX2__
        # define __AVX2__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__AVX2__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"
1

Compiler stderr:
 
Fetching value of define "__AVX2__" : 1 
Running compile:
Working directory:  C:\Users\CHENGC~1\AppData\Local\Temp\tmpyiek92as
Command line:  clang C:\Users\CHENGC~1\AppData\Local\Temp\tmpyiek92as\testfile.c -pipe -E -P -P -O0 -march=native 

Code:
 
        
        #ifndef __AVX512F__
        # define __AVX512F__
        #endif
        "MESON_GET_DEFINE_DELIMITER"
__AVX512F__
Compiler stdout:
 




        "MESON_GET_DEFINE_DELIMITER"

Compiler stderr:
 
Fetching value of define "__AVX512F__" :  
Running compile:
Working directory:  C:\dpdk-draft-windows\build9\meson-private\tmpazv2w9iy
Command line:  clang C:\dpdk-draft-windows\build9\meson-private\tmpazv2w9iy\testfile.c -o C:\dpdk-draft-windows\build9\meson-private\tmpazv2w9iy\output.obj -pipe -c -O0 -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wno-format-truncation -Wformat-truncation 

Code:
 int i;

Compiler stdout:
 
Compiler stderr:
 error: unknown warning option '-Wno-format-truncation' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wformat-truncation' [-Werror,-Wunknown-warning-option]

Compiler for C supports arguments -Wno-format-truncation: NO 
Program doxygen found: NO
Program sphinx-build found: NO
Configuring rte_build_config.h using configuration
Message: 
=================
Libraries Enabled
=================

libs:
	kvargs, eal, 

Message: 
===============
Drivers Enabled
===============


Build targets in project: 5

Found ninja.EXE-1.9.0 at C:\Meson\ninja.EXE


More information about the dev mailing list