On 12/11/20 7:51 AM, Bruce Richardson wrote:
Traditionally any apps built using DPDK had to support the same
instruction sets as supported when the DPDK SDK itself was built, since
that was "leaked" through to the end-app and DPDK headers via
RTE_MACHINE_CPUFLAG_* values. Therefore, when converting over to meson
for app build correctness the "-march=" flag was included in the
pkg-config cflags output.

However, since the DPDK-specific CPU flags are now obsolete, and we
instead check directly for compiler-defined flags, we should no longer
need to force the exact same architecture match in all cases. To
faciliate such flexibility, a new pkg_config_machine_args array - which
defaults to the existing machine_args array has been defined. The
individual architectures - x86, arm and ppc - can choose if and how to
override this value themselves.

For x86, since SSE4.2 is the minimum instruction-set level needed to run
DPDK, and since some header files assume that minimum level of
instruction set support, we override the "-march=" value with "-msse4"
for the pkg-config file. This allows end applications to set their own
"march" value while still ensuring valid DPDK compilation.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---

CC: Jerin Jacob <jer...@marvell.com>
CC: Ruifeng Wang <ruifeng.w...@arm.com>
CC: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
CC: David Christensen <d...@linux.vnet.ibm.com>
Feedback requested from ARM and PPC maintainers as to this change
and what flags, if any, need to be in the .pc file for DPDK on such
platforms. For example - is setting 'pkg_config_machine_args' to
'machine_args' by default necessary behaviour?

Support for Altivec would be the equivalent here for PPC and I'm not aware of any additional flags required for supported POWER CPUs on DPDK. I can't speak to P10 requirements yet but the proposed change is a don't care for me.

Dave

Reply via email to