From fe1570a73e77565e1018dfc77f386c09e8f172fa Mon Sep 17 00:00:00 2001 From: Kevin Laatz Date: Wed, 7 Nov 2018 18:10:18 +0000 Subject: [PATCH] telemetry: fix shared link with make Currently, telemetry is not working for shared builds in make. The --as-needed flag is preventing telemetry from being linked as there are no direct API calls from the app to telemetry. This is causing the --telemetry option to not be recognized by EAL. Telemetry registers it's EAL option using the RTE_INIT constructor. Since EAL's option parsing is done before the plugins init, the --telemetry option isn't registered at the time of parsing, and as a result, the --telemetry option is not being recognized. This patch fixes this issue by explicitly linking telemetry to the application by setting the "--no-as-needed" flag for the library in mk/rte.app.mk. Fixes: 8877ac688b52 ("telemetry: introduce infrastructure") Reported-by: Yanjie Xu Signed-off-by: Kevin Laatz Reviewed-by: Ferruh Yigit --- mk/rte.app.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 3ebc4e64c9..5699d979d7 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -50,9 +50,11 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_LPM) += -lrte_lpm _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += --whole-archive _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += --no-whole-archive +_LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += --no-as-needed _LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += --whole-archive _LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += -lrte_telemetry -ljansson _LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += --no-whole-archive +_LDLIBS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += --as-needed _LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += -lrte_jobstats _LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -lrte_metrics _LDLIBS-$(CONFIG_RTE_LIBRTE_BITRATE) += -lrte_bitratestats -- 2.20.1