On Tue, Oct 22, 2019 at 01:54:02PM +0200, Andrzej Ostruszka wrote: > This patch series adds an option to make use of link time optimization > (if compiler has support for it). It is split as follows: > - 1st patch (build) is the enablement > - remaining patches are fixes for the warnings produced by the compiler > and they are split by directory/subsystem so their maintainers can > easily find and verify the changes - please note that there are two > groups: > * errors (or possible errors) - with title "fix possible use ..." > * false positives - warnings that _I_ think are not valid and the > changes are made only to silence the compiler. > > v4 Changes: > ----------- > - merge nested conditionals in config/meson.build into one > > v3 Changes: > ----------- > - removed support for clang (only gcc and icc remain): > - it turned out that 'fat-lto-objects' is not really supported - it is > accepted as a flag but ignored e.g. clang v6.0: > clang: error: optimization flag '-ffat-lto-objects' is not supported > [-Werror,-Wignored-optimization-argument] > this was probably masked previously by playing around with meson and > testing for the availability of this flag and dropping LTO if not > supported. > - improved commit messages: > - added 'Fixes' tags where appropriate > - included snippets of compiler warnings > - changed commit names for the commits cleaning up 'false positive' > compiler warnings - these are not really 'fixes' for the code, just > workarounds for compiler shortcomings and check-git-log.sh was > complaining about missing 'Fixes' tag. > > v2 Changes: > ----------- > - fixed building of shared libraries: > - gcc does not scan top level assembler statements so it missed that > function implementations for specific versions were being used and > was removing them > - fixed meson.build config files: > - moved from 'enable_lto' project option to built-in 'b_lto' > - documented that 'default_library' should be 'shared': > with 'default_library=static' (the default) the meson build with LTO > is broken - this is because, SHARED_LIB is fixed in rte_config.h > used by meson which leads to no alias for default version in > generated static libraries (MAP_STATIC_SYMBOL() is empty) > - app/test: added log for failed bonding "config get" > > Andrzej Ostruszka (10): > build: add an option to enable LTO build > eventdev: fix possible use of uninitialized var > app/eventdev: clean LTO build warnings (maybe-uninitialized) > event/octeontx2: clean LTO build warnings (maybe-uninitialized) > app/test: clean LTO build warnings (maybe-uninitialized) > net/dpaa2: fix possible use of uninitialized vars > net/e1000: clean LTO build warnings (maybe-uninitialized) > net/i40e: clean LTO build warnings (maybe-uninitialized) > net/ifc: clean LTO build warnings (maybe-uninitialized) > net/qede: clean LTO build warnings (maybe-uninitialized) > Does this have a dependency on set 6726 [1] ?
Otherwise, this looks something useful to have support for in DPDK, so Series-acked-by: Bruce Richardson <bruce.richard...@intel.com> [1] http://patches.dpdk.org/project/dpdk/list/?series=6726