build: remove architecture flag as default C flag
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 15 Dec 2017 17:12:43 +0000 (17:12 +0000)
committerBruce Richardson <bruce.richardson@intel.com>
Tue, 30 Jan 2018 20:58:59 +0000 (21:58 +0100)
Any flags added to the project args are automatically added to all builds,
both native and cross-compiled. This is not what we want for the -march
flag as a valid -march for the cross-compile is not valid for pmdinfogen
which is a native-build tool.

Instead we store the march flag as a variable, and add it to the default
cflags for all libs, drivers, examples, etc. This will allow pmdinfogen to
compile successfully in a cross-compilation environment.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
app/test-pmd/meson.build
buildtools/pmdinfogen/meson.build
config/meson.build
doc/guides/contributing/coding_style.rst
drivers/meson.build
drivers/net/i40e/meson.build
drivers/net/ixgbe/meson.build
examples/meson.build
lib/meson.build
meson.build

index a242703..4614e35 100644 (file)
@@ -45,7 +45,7 @@ endif
 
 executable('dpdk-testpmd',
        sources,
 
 executable('dpdk-testpmd',
        sources,
-       c_args: '-DALLOW_EXPERIMENTAL_API',
+       c_args: [machine_arg, '-DALLOW_EXPERIMENTAL_API'],
        link_whole: link_libs,
        dependencies: dep_objs,
        install_rpath: join_paths(get_option('prefix'), driver_install_path),
        link_whole: link_libs,
        dependencies: dep_objs,
        install_rpath: join_paths(get_option('prefix'), driver_install_path),
index ea37370..a219a8e 100644 (file)
@@ -6,5 +6,4 @@ pmdinfogen_inc += include_directories('../../lib/librte_pci')
 pmdinfogen = executable('pmdinfogen',
        'pmdinfogen.c',
        include_directories: pmdinfogen_inc,
 pmdinfogen = executable('pmdinfogen',
        'pmdinfogen.c',
        include_directories: pmdinfogen_inc,
-       native: true,
-       c_args: cflags)
+       native: true)
index 4f65117..9522304 100644 (file)
@@ -2,9 +2,13 @@
 # Copyright(c) 2017 Intel Corporation
 
 # set the machine type and cflags for it
 # Copyright(c) 2017 Intel Corporation
 
 # set the machine type and cflags for it
-machine = get_option('machine')
+if meson.is_cross_build()
+       machine = host_machine.cpu()
+else
+       machine = get_option('machine')
+endif
 dpdk_conf.set('RTE_MACHINE', machine)
 dpdk_conf.set('RTE_MACHINE', machine)
-add_project_arguments('-march=@0@'.format(machine), language: 'c')
+machine_arg = '-march=' + machine
 
 # use pthreads
 add_project_link_arguments('-pthread', language: 'c')
 
 # use pthreads
 add_project_link_arguments('-pthread', language: 'c')
index 3734bf0..d5fe67f 100644 (file)
@@ -800,7 +800,7 @@ build
 
 
 cflags
 
 
 cflags
-       **Default Value = []**.
+       **Default Value = [<-march/-mcpu flags>]**.
        Used to specify any additional cflags that need to be passed to compile
        the sources in the library.
 
        Used to specify any additional cflags that need to be passed to compile
        the sources in the library.
 
index f6680ce..5ee0026 100644 (file)
@@ -23,7 +23,7 @@ foreach class:driver_classes
                allow_experimental_apis = false
                sources = []
                objs = []
                allow_experimental_apis = false
                sources = []
                objs = []
-               cflags = []
+               cflags = [machine_arg]
                includes = [include_directories(drv_path)]
                # set up internal deps. Drivers can append/override as necessary
                deps = std_deps
                includes = [include_directories(drv_path)]
                # set up internal deps. Drivers can append/override as necessary
                deps = std_deps
index 42a8a1d..504bfdd 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-cflags = ['-DPF_DRIVER',
+cflags += ['-DPF_DRIVER',
        '-DVF_DRIVER',
        '-DINTEGRATED_VF',
        '-DX722_A0_SUPPORT']
        '-DVF_DRIVER',
        '-DINTEGRATED_VF',
        '-DX722_A0_SUPPORT']
index 36aaff5..60af0ba 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-cflags = ['-DRTE_LIBRTE_IXGBE_BYPASS']
+cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
 
 subdir('base')
 objs = [base_objs]
 
 subdir('base')
 objs = [base_objs]
index b660b4b..cef48fa 100644 (file)
@@ -10,7 +10,7 @@ foreach example: get_option('examples').split(',')
        name = example
        sources = []
        allow_experimental_apis = false
        name = example
        sources = []
        allow_experimental_apis = false
-       cflags = []
+       cflags = [machine_arg]
        ext_deps = []
        includes = [include_directories(example)]
        deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
        ext_deps = []
        includes = [include_directories(example)]
        deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
index de75162..e8302fb 100644 (file)
@@ -33,7 +33,7 @@ foreach l:libraries
        sources = []
        headers = []
        includes = []
        sources = []
        headers = []
        includes = []
-       cflags = []
+       cflags = [machine_arg]
        objs = [] # other object files to link against, used e.g. for
                  # instruction-set optimized versions of code
 
        objs = [] # other object files to link against, used e.g. for
                  # instruction-set optimized versions of code
 
index 56a8c64..f572d93 100644 (file)
@@ -65,5 +65,5 @@ pkg.generate(name: meson.project_name(),
                        ['-Wl,-Bdynamic'] + dpdk_extra_ldflags,
        description: 'The Data Plane Development Kit (DPDK)',
        subdirs: [get_option('include_subdir_arch'), '.'],
                        ['-Wl,-Bdynamic'] + dpdk_extra_ldflags,
        description: 'The Data Plane Development Kit (DPDK)',
        subdirs: [get_option('include_subdir_arch'), '.'],
-       extra_cflags: ['-include', 'rte_config.h', '-march=@0@'.format(machine)]
+       extra_cflags: ['-include', 'rte_config.h', machine_arg]
 )
 )