Bug 928 - [dpdk-next-*] drivers/librte_event_cnxk meson build failure with icc 19.1.3.304 on RedHat8.4/64 and UB20.04/64
Summary: [dpdk-next-*] drivers/librte_event_cnxk meson build failure with icc 19.1.3....
Status: CONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: core (show other bugs)
Version: unspecified
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2022-01-27 09:54 CET by gaodaxue
Modified: 2022-01-27 13:31 CET (History)
2 users (show)



Attachments

Description gaodaxue 2022-01-27 09:54:31 CET
[DPDK version]

dpdk-next-net/dpdk-next-net-mrvl/dpdk-next-intel/dpdk-next-net-brcm/dpdk-next-net-mlx/dpdk-next-virtio: 
dpdk-next-net's bad commit:
commit 48cfbe601149989fe5a7c032d2d63329f26aecb9
Author: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date:   Sat Jan 22 21:18:17 2022 +0530

    net/cnxk: add cn10k template Rx functions to build

    Add cn10k segregated Rx and event dequeue functions to build,
    add macros to make future modifications simpler.

    Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
    Acked-by: Jerin Jacob <jerinj@marvell.com>"


[OS version]:
RedHat Enterprise Linux 8.4(Ootpa)/kernel 4.18.0-305
ICC19.1.3.304

UB20.04/5.8.0-48-generic
ICC19.1.3.304

[Test Setup]:
source /opt/intel/compilers_and_libraries_2020.4.304/linux/bin/iccvars.sh intel64
CC=icc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library=static x86_64-native-linuxapp-icc
ninja -C x86_64-native-linuxapp-icc


[RedHat8.4 and ubuntu20.04 log as below]
[196/3458] Compiling C object lib/librte_acl.a.p/acl_acl_run_avx512.c.o
In file included from ../lib/acl/acl_run_avx512.c(110):
../lib/acl/acl_run_avx512x8.h(162): warning #300: const variable "zero" requires an initializer
        static const uint32_t zero;
                                  ^

In file included from ../lib/acl/acl_run_avx512.c(137):
../lib/acl/acl_run_avx512x16.h(198): warning #300: const variable "zero" requires an initializer
        static const uint32_t zero;
                                  ^

[531/3458] Compiling C object lib/librte_graph.a.p/graph_graph_stats.c.o
../lib/graph/graph_stats.c(39): warning #2405: array of elements containing a flexible array member is nonstandard
        struct cluster_node clusters[];
                            ^

[2897/3458] Compiling C object drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_base_dlb2_resource.c.o
../drivers/event/dlb2/pf/base/dlb2_resource.c(392): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1110): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1154): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1301): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1348): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1406): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1428): warning #592: variable "iter1" is used before its value is set
        RTE_SET_USED(iter1);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1429): warning #592: variable "iter2" is used before its value is set
        RTE_SET_USED(iter2);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1462): warning #592: variable "iteration" is used before its value is set
        RTE_SET_USED(iteration);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1653): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1676): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(1952): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2188): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2394): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2413): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2443): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2468): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2496): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2521): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2541): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2571): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2599): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2617): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2645): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2661): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2678): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2697): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(2903): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3057): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3068): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3164): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3240): warning #592: variable "tmp_dir_port" is used before its value is set
        RTE_SET_USED(tmp_dir_port);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3241): warning #592: variable "tmp_ldb_queue" is used before its value is set
        RTE_SET_USED(tmp_ldb_queue);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3242): warning #592: variable "tmp_ldb_port" is used before its value is set
        RTE_SET_USED(tmp_ldb_port);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3243): warning #592: variable "iter1" is used before its value is set
        RTE_SET_USED(iter1);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3244): warning #592: variable "iter2" is used before its value is set
        RTE_SET_USED(iter2);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(3439): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(4472): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(5128): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(5150): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

../drivers/event/dlb2/pf/base/dlb2_resource.c(5855): warning #592: variable "iter" is used before its value is set
        RTE_SET_USED(iter);
        ^

[3008/3458] Linking target drivers/librte_event_cnxk.so.22.1
FAILED: drivers/librte_event_cnxk.so.22.1
icc @drivers/librte_event_cnxk.so.22.1.rsp
icc: error #10236: File not found:  ''-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/''
[3017/3458] Compiling C object app/dpdk-test-bbdev.p/test-bbdev_test_bbdev_perf.c.o
ninja: build stopped: subcommand failed.
Comment 1 Jerin 2022-01-27 10:22:37 CET
Strangely build issue comes in acl or dlb2 driver.
Comment 2 Ferruh YIGIT 2022-01-27 13:31:16 CET
ICC driver gives some warnings, we are aware of them, and current support allows warning in the ICC.
The main motivation of this decision is false positives by ICC, and the decision to not update code to silence the ICC.

But above has a build error for 'drivers/librte_event_cnxk.so.22.1', the detail of the error is not clear, log says file not found, it doesn't say which file:
icc: error #10236: File not found:  ''-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/''


For testing, and perhaps as a workaround for now, can you please test with disabling event/cnxk driver?
“meson setup -Ddisable_drivers=event/cnxk build”

Note You need to log in before you can comment on or make changes to this bug.