mbox series

[v20,0/3] Arm build options rework

Message ID 1618405118-20187-1-git-send-email-juraj.linkes@pantheon.tech (mailing list archive)
Headers show
Series Arm build options rework | expand

Message

Juraj LinkeŇ° April 14, 2021, 12:58 p.m. UTC
The current way of specifying Arm configuration options is insufficient
since we can't identify the SoC we're building for from the MIDR
information. For example, we can't distinguish between N1SDP, Graviton2
or Ampere Altra.

We also want to be able to enable/disable which drivers are built
without user input. This is useful when building:
1. on an SoC that is slow and we want to build only what is necessary
  without the user having to check which libraries they have installed
2. a cross build on a fast aarch64 machine but with target SoC which
  differs in capabilities or libraries.
This is achieved by specifying the drivers in SoC configuration.

The current implementation adds/supports the following:
* x86 -> aarch64 cross build with added config options/enabled or
  disabled drivers/libs
* aarch64 -> aarch64 builds for a different SoCs using meson -Dplatform
  option or using a cross file

v16:
Only three commits remaining - updated the cover letter.
Renamed the 'soc' meson option to 'platform'.
Added the support for enabling a particular set of drivers.
Aligned enabling and disabling with the command line option so that
wildcards can be used.

v17:
Removed unnecessary comments in "build: disable/enable drivers in Arm
builds". Also always enabled two drivers which break the build if
disabled.

v18:
Rebased.

v19:
Updated 3/3 with more up to date MAX_LCORE and MAX_NUMA_NODES for
neoverse-n1.

v20:
Simplified allowlist and blocklist implementation in 1/3 and updated 2/3
accordingly.

Juraj LinkeŇ° (3):
  build: disable/enable drivers in Arm builds
  build: add 'platform' meson option and Arm SoC config
  config: fix Arm implementer and its SoCs

 buildtools/list-dir-globs.py                  |   7 +-
 config/arm/arm64_armada_linux_gcc             |   6 +-
 config/arm/arm64_armv8_linux_clang_ubuntu1804 |   3 +-
 config/arm/arm64_armv8_linux_gcc              |   5 +-
 config/arm/arm64_bluefield_linux_gcc          |   6 +-
 config/arm/arm64_dpaa_linux_gcc               |   6 +-
 config/arm/arm64_emag_linux_gcc               |   5 +-
 config/arm/arm64_graviton2_linux_gcc          |   6 +-
 config/arm/arm64_n1sdp_linux_gcc              |   6 +-
 config/arm/arm64_n2_linux_gcc                 |   6 +-
 config/arm/arm64_octeontx2_linux_gcc          |   6 +-
 config/arm/arm64_stingray_linux_gcc           |   6 +-
 config/arm/arm64_thunderx2_linux_gcc          |   5 +-
 config/arm/arm64_thunderxt88_linux_gcc        |   5 +-
 config/arm/meson.build                        | 177 +++++++++++++++---
 config/meson.build                            |   4 +
 .../linux_gsg/cross_build_dpdk_for_arm64.rst  | 104 +++++-----
 drivers/common/qat/meson.build                |   4 +-
 drivers/meson.build                           |  32 +++-
 meson_options.txt                             |   4 +
 20 files changed, 259 insertions(+), 144 deletions(-)