|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1 |
|
| #
e16b972b |
| 24-Jan-2022 |
Bruce Richardson <[email protected]> |
build: remove deprecated Meson functions
Starting in meson 0.56, the functions meson.source_root() and meson.build_root() are deprecated and to be replaced by the [more descriptive] functions: proje
build: remove deprecated Meson functions
Starting in meson 0.56, the functions meson.source_root() and meson.build_root() are deprecated and to be replaced by the [more descriptive] functions: project_source_root()/global_source_root() and project_build_root()/global_build_root(). Unfortunately, these new replacement functions were only added in 0.56 release too, so to use them we would need version checks for old/new functions to remove the deprecation warnings.
However, the functions "current_build_dir()" and "current_source_dir()" remain unaffected by all this, so we can bypass the versioning problem, by saving off these values to "dpdk_source_root" and "dpdk_build_root" in the top-level meson.build file
Bugzilla ID: 926 Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Jerin Jacob <[email protected]>
show more ...
|
| #
d832326a |
| 21-Jan-2022 |
Bruce Richardson <[email protected]> |
build: fix warning about using -Wextra flag
Each build, meson would issue a warning reporting that the "warning_level" setting should be used in place of adding -Wextra directly to our build command
build: fix warning about using -Wextra flag
Each build, meson would issue a warning reporting that the "warning_level" setting should be used in place of adding -Wextra directly to our build commands. Testing with meson 0.61 shows that the only difference for gcc and clang builds between warning levels 1 and 2 is the addition of -Wextra, so we can remove the warning by deleting our explicit set of Wextra and changing the build defaults to warning_level 2.
Fixes: 524a0d5d66b9 ("build: enable extra warnings with meson")
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|
| #
ecb904cc |
| 20-Jan-2022 |
Bruce Richardson <[email protected]> |
build: fix warnings when running external commands
Meson 0.61.1 is giving warnings that the calls to run_command do not always explicitly specify if the result is to be checked or not, i.e. there is
build: fix warnings when running external commands
Meson 0.61.1 is giving warnings that the calls to run_command do not always explicitly specify if the result is to be checked or not, i.e. there is a missing "check" parameter. This is because the default behaviour without the parameter is due to change in the future.
We can fix these warnings by explicitly adding into each call whether the result should be checked by meson or not. This patch therefore adds in "check: false" to each run_command call where the result is being checked by the DPDK meson.build code afterwards, and adds in "check: true" to any calls where the result is currently unchecked.
Bugzilla ID: 921 Cc: [email protected]
Reported-by: Jerin Jacob <[email protected]> Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Jerin Jacob <[email protected]>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
99a2dd95 |
| 20-Apr-2021 |
Bruce Richardson <[email protected]> |
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also m
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal'
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
8dcb898c |
| 20-Apr-2021 |
Bruce Richardson <[email protected]> |
build: change indentation in infrastructure files
Switch from using tabs to 4 spaces for meson.build indentation, for the basic infrastructure and tooling files, as well as doc and kernel directorie
build: change indentation in infrastructure files
Switch from using tabs to 4 spaces for meson.build indentation, for the basic infrastructure and tooling files, as well as doc and kernel directories.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
8c105308 |
| 23-Mar-2021 |
Gabriel Ganne <[email protected]> |
build: update minimum required Meson version
Bump Meson required version to 0.49.2 which is chosen so as to be provided by both redhat-8 and debian-10.
Update documentation and travis setup script
build: update minimum required Meson version
Bump Meson required version to 0.49.2 which is chosen so as to be provided by both redhat-8 and debian-10.
Update documentation and travis setup script accordingly.
This fixes the following warning: WARNING: Project targeting '>= 0.47.1' but tried to use feature introduced in '0.48.0': console arg in custom_target
'console' argument is used within kernel/linux/kni/meson.build
Signed-off-by: Gabriel Ganne <[email protected]> Acked-by: Bruce Richardson <[email protected]> Acked-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
bc461743 |
| 25-Feb-2021 |
Bruce Richardson <[email protected]> |
build: enable a developer mode setting
To allow support for additional build checks and tests only really relevant for developers, we add support for a developer mode option to DPDK. The default, "a
build: enable a developer mode setting
To allow support for additional build checks and tests only really relevant for developers, we add support for a developer mode option to DPDK. The default, "auto", value for this enables developer mode if a ".git" folder is found at the root of the source tree - as was the case with the previous "make" build system. There is also support for explicitly enabling or disabling this option using "meson configure" if so desired.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
5d20515e |
| 12-Mar-2021 |
Bruce Richardson <[email protected]> |
build: exclude meson files from examples installation
The meson.build files in each example directory is simply to support building the example as part of the main SDK build, and these should not be
build: exclude meson files from examples installation
The meson.build files in each example directory is simply to support building the example as part of the main SDK build, and these should not be installed with the example's source code and makefile. The exclude of "meson.build" only filters out the top-level examples/meson.build file, not the file in each subdirectory.
To fix this, we can build up the list of files to exclude based off the list of all examples. With this change "find examples/ -name meson.build" returns no hits when run on an installed instance.
Fixes: e5b95003f1df ("examples: fix flattening directory layout on install") Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
05050ac4 |
| 29-Jan-2021 |
Bruce Richardson <[email protected]> |
build: add header includes check
To verify that all DPDK headers are ok for inclusion directly in a C file, and are not missing any other pre-requisite headers, we can auto-generate for each header
build: add header includes check
To verify that all DPDK headers are ok for inclusion directly in a C file, and are not missing any other pre-requisite headers, we can auto-generate for each header an empty C file that includes that header. Compiling these files will throw errors if any header has unmet dependencies.
For some libraries, there may be some header files which are not for direct inclusion, but rather are to be included via other header files. To allow later checking of these files for missing includes, we separate out the indirect include files from the direct ones.
To ensure ongoing compliance, we enable this build test as part of the default x86 build in "test-meson-builds.sh".
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
f0f93a7a |
| 24-Jan-2021 |
Dmitry Kozlyuk <[email protected]> |
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add configure-time check for elftools Python module for Unix hosts.
Add pyelftools to CI configuration and build requirements for Linux and FreeBSD. Windows targets are not currently using pmdinfogen.
Suppress ABI warnings about generated PMD information strings.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Neil Horman <[email protected]> Tested-by: Jie Zhou <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1, v20.11, v20.11-rc5, v20.11-rc4 |
|
| #
e5b95003 |
| 12-Nov-2020 |
Bruce Richardson <[email protected]> |
examples: fix flattening directory layout on install
By installing the examples one-by-one in a loop in the examples meson.build file we effectively flattened out the structure of the examples folde
examples: fix flattening directory layout on install
By installing the examples one-by-one in a loop in the examples meson.build file we effectively flattened out the structure of the examples folder and omitted some common and shared subfolders that were never directly built. Instead, we can remove the loop and just have the whole "examples" folder installed as-is in a single statement, preserving its directory structure, and thereby fixing the build of a number of the examples.
Fixes: 2daf565f91b5 ("examples: install as part of ninja install") Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v20.11-rc3, v20.11-rc2, v20.11-rc1, v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1 |
|
| #
68b1f1cd |
| 04-Jul-2020 |
Bruce Richardson <[email protected]> |
build: check AVX512 rather than binutils version
Rather than checking the binutils version number, which can lead to unnecessary disabling of AVX512 if fixes have been backported to distro versions,
build: check AVX512 rather than binutils version
Rather than checking the binutils version number, which can lead to unnecessary disabling of AVX512 if fixes have been backported to distro versions, we can instead check the output of "as" from binutils to see if it is correct.
The check in the script uses the minimal assembly reproduction code posted to the public bug tracker for gcc/binutils for those issues [1]. If the binutils bug is present, the instruction parameters - specifically the displacement parameter - will be different in the disassembled output compared to the input. Therefore the check involves assembling a single instruction and disassembling it again, checking that the two match.
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028
Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Harry van Haaren <[email protected]>
show more ...
|
| #
de321d59 |
| 01-Jul-2020 |
Thomas Monjalon <[email protected]> |
build: remove special handling for node library
The node library had a need of being linked as a whole to make some constructors effective. Now that all libraries are linked with --whole-archive, th
build: remove special handling for node library
The node library had a need of being linked as a whole to make some constructors effective. Now that all libraries are linked with --whole-archive, there is no need to have this library separate.
Fixes: e2db26f76673 ("build: always link whole DPDK static libraries")
Signed-off-by: Thomas Monjalon <[email protected]> Tested-by: Jerin Jacob <[email protected]>
show more ...
|
| #
11a47f9f |
| 30-Jun-2020 |
Bruce Richardson <[email protected]> |
build/pkg-config: move pkg-config file creation
Ahead of changes to rework the file, move the pkg-config file generation to a new directory under buildtools. This allows the meson code to be separat
build/pkg-config: move pkg-config file creation
Ahead of changes to rework the file, move the pkg-config file generation to a new directory under buildtools. This allows the meson code to be separated out from the main meson.build for simplicity, and also allows any additional scripts for working with the pkg-config files to be placed there too.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]> Acked-by: Sunil Pai G <[email protected]>
show more ...
|
| #
607164e2 |
| 30-Jun-2020 |
Bruce Richardson <[email protected]> |
build: remove unnecessary variable
Since all libraries are explicitly linked as part of a build, we no longer need to track ones that should be always included for linking against apps.
Previously
build: remove unnecessary variable
Since all libraries are explicitly linked as part of a build, we no longer need to track ones that should be always included for linking against apps.
Previously telemetry was special-cased for linking as it was not directly needed by the linker when linking the apps, since they never called into it directly. This meant that it could be forgotten when specifying the app dependencies, and so the telemetry support would not work. This special-casing was never needed for make as it always linked in all libraries, as meson does now.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]> Acked-by: Sunil Pai G <[email protected]>
show more ...
|
|
Revision tags: v20.05, v20.05-rc4, v20.05-rc3, v20.05-rc2 |
|
| #
44dfb297 |
| 30-Apr-2020 |
Bruce Richardson <[email protected]> |
build: add arch-specific header path to global includes
The global include path, which is used by anything built before EAL, points to the EAL header files so they utility macros etc. can be used an
build: add arch-specific header path to global includes
The global include path, which is used by anything built before EAL, points to the EAL header files so they utility macros etc. can be used anywhere in DPDK. This path included the OS-specific EAL header files, but not the architecture-specific ones. This patch moves the selection of target architecture to the top-level meson.build file so that the global include can reference that.
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Keith Wiles <[email protected]>
show more ...
|
|
Revision tags: v20.05-rc1 |
|
| #
13fcf8af |
| 11-Apr-2020 |
Nithin Dabilpuram <[email protected]> |
node: add logging and null node
Add log infra for node specific logging. Also, add null rte_node that just ignores all the objects directed to it.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marv
node: add logging and null node
Add log infra for node specific logging. Also, add null rte_node that just ignores all the objects directed to it.
Signed-off-by: Nithin Dabilpuram <[email protected]> Signed-off-by: Pavan Nikhilesh <[email protected]> Signed-off-by: Kiran Kumar K <[email protected]>
show more ...
|
| #
a083f8cc |
| 27-Mar-2020 |
Thomas Monjalon <[email protected]> |
eal: move OS-specific sub-directories
Since the kernel modules are moved to kernel/ directory, there is no need anymore for the sub-directory eal/ in linux/, freebsd/ and windows/.
Signed-off-by: T
eal: move OS-specific sub-directories
Since the kernel modules are moved to kernel/ directory, there is no need anymore for the sub-directory eal/ in linux/, freebsd/ and windows/.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
| #
9c1e0dc3 |
| 27-Mar-2020 |
Thomas Monjalon <[email protected]> |
eal: move common header files
The EAL API (with doxygen documentation) is moved from common/include/ to include/, which makes more clear that it is the global API for all environments and architectu
eal: move common header files
The EAL API (with doxygen documentation) is moved from common/include/ to include/, which makes more clear that it is the global API for all environments and architectures.
Note that the arch-specific and OS-specific include files are not in this global include directory, but include/generic/ should cover the doxygen documentation for them.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v20.02, v20.02-rc4, v20.02-rc3, v20.02-rc2, v20.02-rc1, v19.11, v19.11-rc4 |
|
| #
3eb485c6 |
| 23-Nov-2019 |
Bruce Richardson <[email protected]> |
build: fix Windows build
While most windows apps can handle both "\" and "/" as path separators, "more" is treating the "/" as the start of a command-line flag in this case, causing errors.
Fixes:
build: fix Windows build
While most windows apps can handle both "\" and "/" as path separators, "more" is treating the "/" as the start of a command-line flag in this case, causing errors.
Fixes: cba806e07d6f ("build: change ABI versioning to global")
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Ranjit Menon <[email protected]> Tested-by: Pallavi Kadam <[email protected]> Acked-by: Anatoly Burakov <[email protected]>
show more ...
|
|
Revision tags: v19.11-rc3, v19.11-rc2, v19.11-rc1, v19.08, v19.08-rc4, v19.08-rc3, v19.08-rc2, v19.08-rc1 |
|
| #
8baad6f8 |
| 05-Jun-2019 |
Bruce Richardson <[email protected]> |
build: print list of disabled components
When configuring with meson we print out a list of enabled components, but it is also useful to list out the disabled components and the reasons why.
Signed
build: print list of disabled components
When configuring with meson we print out a list of enabled components, but it is also useful to list out the disabled components and the reasons why.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|
| #
28188cee |
| 14-May-2019 |
Marcin Smoczynski <[email protected]> |
build: enable BSD features visibility for FreeBSD
When a component uses either XOPEN_SOURCE or POSIX_C_SOURCE macro explicitly in its build recipe, it restricts visibility of a non POSIX features su
build: enable BSD features visibility for FreeBSD
When a component uses either XOPEN_SOURCE or POSIX_C_SOURCE macro explicitly in its build recipe, it restricts visibility of a non POSIX features subset, such as IANA protocol numbers (IPPROTO_* macros). Non standard features are enabled by default for DPDK both for Linux thanks to _GNU_SOURCE and for FreeBSD thanks to __BSD_VISIBLE. However using XOPEN_SOURCE or POSIX_(C_)SOURCE in a component causes __BSD_VISIBLE to be defined to 0 for FreeBSD, causing different feature sets visibility for Linux and FreeBSD. It restricts from using IPPROTO macros in public headers, such as rte_ip.h, despite the fact they are already widely used in sources.
Add __BSD_VISIBLE macro specified unconditionally for FreeBSD targets which enforces feature sets visibility unification between Linux and FreeBSD.
Add single -D_GNU_SOURCE to config/meson.build as a project argument instead of adding separate directive for each project subtree.
This patch solves the problem of build breaks for [1] on FreeBSD [2] following the discussion [3].
[1] https://mails.dpdk.org/archives/dev/2019-May/131885.html [2] http://mails.dpdk.org/archives/test-report/2019-May/082263.html [3] https://mails.dpdk.org/archives/dev/2019-May/132110.html
Signed-off-by: Marcin Smoczynski <[email protected]> Acked-by: Konstantin Ananyev <[email protected]>
show more ...
|
|
Revision tags: v19.05, v19.05-rc4, v19.05-rc3, v19.05-rc2 |
|
| #
4c773788 |
| 12-Apr-2019 |
Bruce Richardson <[email protected]> |
build: generate Windows exports file
Rather than having a separate version.map file for linux/BSD and an exports definition file for windows for each library, generate the latter from the former aut
build: generate Windows exports file
Rather than having a separate version.map file for linux/BSD and an exports definition file for windows for each library, generate the latter from the former automatically at build time.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
85d7158e |
| 17-May-2019 |
Bruce Richardson <[email protected]> |
examples: fix install with empty meson parameter
While the examples were being installed into the appropriate install path when processing the examples/meson.build file, that file was only processed
examples: fix install with empty meson parameter
While the examples were being installed into the appropriate install path when processing the examples/meson.build file, that file was only processed if the "examples" meson parameter was non-empty. Since we now do more than just build the examples, we need to unconditionally process the file.
Fixes: 2daf565f91b5 ("examples: install as part of ninja install") Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|
| #
12784d9b |
| 02-May-2019 |
Bruce Richardson <[email protected]> |
build: add libbsd to pkg-config file if enabled
If libbsd is enabled in DPDK, the strlcpy and strlcat functions in rte_string_fns.h redirect to the varients in libbsd, only using the fallbacks if it
build: add libbsd to pkg-config file if enabled
If libbsd is enabled in DPDK, the strlcpy and strlcat functions in rte_string_fns.h redirect to the varients in libbsd, only using the fallbacks if it is not enabled. Therefore, if libbsd is enabled, it needs to be called out as a DPDK dependency in the pkgconfig file.
To ensure that we don't have undefined variables on non-Linux platforms, we can remove the linux condition around the libbsd check - no harm comes in looking for it on other OS, since it's an optional dependency.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|