[dpdk-dev] [RFC PATCH] build/pkg-config: remove machine arch flag

David Christensen drc at linux.vnet.ibm.com
Wed Sep 15 23:23:17 CEST 2021



On 9/15/21 9:28 AM, Bruce Richardson wrote:
> On Fri, Dec 11, 2020 at 03:51:11PM +0000, 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.richardson at intel.com>
>> ---
>>
>> CC: Jerin Jacob <jerinj at marvell.com>
>> CC: Ruifeng Wang <ruifeng.wang at arm.com>
>> CC: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
>> CC: David Christensen <drc at linux.vnet.ibm.com> for 
>> 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?
>>
> 
> Ping for further thoughts or input on this patch.

On initial inspection I don't see any additional value for PPC systems. 
  Selection of a CPU through -mcpu implies a full ISA for that CPU, 
including things like vector extensions, at least with respect to the 
minimum supported POWER8 CPU (ISA 2.07) and later ISAs.  The values of 
machine_args and pkg_config_machine_args should be identical in all 
cases I can think of.

If a third party OpenPOWER CPU comes along some time in the future then 
the requirements may change.

Dave


More information about the dev mailing list