X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsfc%2Fmeson.build;h=4625859077e7240a96c54c55e55ed03f0dfc6773;hb=3e455a97dcb23b6e3684aa48a0302cf0429f4286;hp=26f032373819c91ceb46204d524dbd7d24e06707;hpb=5e111ed87999b2df4084b4d9c95643c98df1ba48;p=dpdk.git diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build index 26f0323738..4625859077 100644 --- a/drivers/net/sfc/meson.build +++ b/drivers/net/sfc/meson.build @@ -1,14 +1,21 @@ # SPDX-License-Identifier: BSD-3-Clause # -# Copyright(c) 2019-2020 Xilinx, Inc. +# Copyright(c) 2019-2021 Xilinx, Inc. # Copyright(c) 2016-2019 Solarflare Communications Inc. # # This software was jointly developed between OKTET Labs (under contract # for Solarflare) and Solarflare Communications, Inc. -if arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64') - build = false - reason = 'only supported on x86_64' +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + +if (arch_subdir != 'x86' and arch_subdir != 'arm') or (not dpdk_conf.get('RTE_ARCH_64')) + build = false + reason = 'only supported on x86_64 and aarch64' + subdir_done() endif extra_flags = [] @@ -18,37 +25,67 @@ extra_flags += '-Wno-strict-aliasing' # Enable more warnings extra_flags += [ - '-Wdisabled-optimization' + '-Wdisabled-optimization', ] # Compiler and version dependent flags extra_flags += [ - '-Waggregate-return', - '-Wbad-function-cast' + '-Waggregate-return', + '-Wbad-function-cast', ] foreach flag: extra_flags - if cc.has_argument(flag) - cflags += flag - endif + if cc.has_argument(flag) + cflags += flag + endif endforeach -deps += ['common_sfc_efx'] +# for gcc compiles we need -latomic for 128-bit atomic ops +if cc.get_id() == 'gcc' + libatomic_dep = cc.find_library('atomic', required: false) + if not libatomic_dep.found() + build = false + reason = 'missing dependency, "libatomic"' + subdir_done() + endif + + # libatomic could be half-installed when above check finds it but + # linkage fails + atomic_link_code = ''' + #include + void main() { printf("libatomic link check\n"); } + ''' + if not cc.links(atomic_link_code, dependencies: libatomic_dep) + build = false + reason = 'broken dependency, "libatomic"' + subdir_done() + endif + ext_deps += libatomic_dep +endif + +deps += ['common_sfc_efx', 'bus_pci'] sources = files( - 'sfc_ethdev.c', - 'sfc_kvargs.c', - 'sfc.c', - 'sfc_mcdi.c', - 'sfc_intr.c', - 'sfc_ev.c', - 'sfc_port.c', - 'sfc_rx.c', - 'sfc_tx.c', - 'sfc_tso.c', - 'sfc_filter.c', - 'sfc_flow.c', - 'sfc_dp.c', - 'sfc_ef10_rx.c', - 'sfc_ef10_essb_rx.c', - 'sfc_ef10_tx.c' + 'sfc_ethdev.c', + 'sfc_kvargs.c', + 'sfc.c', + 'sfc_mcdi.c', + 'sfc_sriov.c', + 'sfc_intr.c', + 'sfc_ev.c', + 'sfc_port.c', + 'sfc_rx.c', + 'sfc_tx.c', + 'sfc_tso.c', + 'sfc_filter.c', + 'sfc_switch.c', + 'sfc_mae.c', + 'sfc_mae_counter.c', + 'sfc_flow.c', + 'sfc_dp.c', + 'sfc_ef10_rx.c', + 'sfc_ef10_essb_rx.c', + 'sfc_ef10_tx.c', + 'sfc_ef100_rx.c', + 'sfc_ef100_tx.c', + 'sfc_service.c', )