* [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering @ 2017-01-12 7:46 Jerin Jacob 2017-01-12 9:26 ` Thomas Monjalon 2017-01-13 16:31 ` Thomas Monjalon 0 siblings, 2 replies; 12+ messages in thread From: Jerin Jacob @ 2017-01-12 7:46 UTC (permalink / raw) To: dev; +Cc: thomas.monjalon, ferruh.yigit, Jerin Jacob, stable By introducing explicit -lrte_pmd_ixgbe link request in testpmd Makefile,"-Wl,-lrte_pmd_ixgbe" provided twice, and linker removes the duplication by keeping only first occurrence. This moves "-Wl,-lrte_pmd_ixgbe" out of "-Wl,--whole-archive" flag and makes symbol generation totally different than previous version in case of static build. This patch fixes the static build linking order by introducing -lrte_pmd_ixgbe under the shared library config (CONFIG_RTE_BUILD_SHARED_LIB). Fixes: 425781ff5afe ("app/testpmd: add ixgbe VF management") CC: stable@dpdk.org Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> --- app/test-pmd/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 5988c3e..050663a 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -59,7 +59,9 @@ SRCS-y += csumonly.c SRCS-y += icmpecho.c SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe +endif CFLAGS_cmdline.o := -D_GNU_SOURCE -- 2.5.5 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-12 7:46 [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering Jerin Jacob @ 2017-01-12 9:26 ` Thomas Monjalon 2017-01-12 13:58 ` Jerin Jacob 2017-01-13 16:31 ` Thomas Monjalon 1 sibling, 1 reply; 12+ messages in thread From: Thomas Monjalon @ 2017-01-12 9:26 UTC (permalink / raw) To: Jerin Jacob; +Cc: dev, ferruh.yigit, stable 2017-01-12 13:16, Jerin Jacob: > +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > +endif _LDLIBS is an internal variable of rte.app.mk. Please could you check that there is no issue when using LDLIBS instead of _LDLIBS? Thanks ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-12 9:26 ` Thomas Monjalon @ 2017-01-12 13:58 ` Jerin Jacob 2017-01-12 15:27 ` Ferruh Yigit 0 siblings, 1 reply; 12+ messages in thread From: Jerin Jacob @ 2017-01-12 13:58 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev, ferruh.yigit, stable On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: > 2017-01-12 13:16, Jerin Jacob: > > +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > > _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > +endif > > _LDLIBS is an internal variable of rte.app.mk. > Please could you check that there is no issue when using LDLIBS instead > of _LDLIBS? Tested it. Suggested change has issue in shared lib configuration. [dpdk-master] $ git diff diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 050663a..27cadd5 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -59,9 +59,7 @@ SRCS-y += csumonly.c SRCS-y += icmpecho.c SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe -endif +LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe CFLAGS_cmdline.o := -D_GNU_SOURCE [error] gcc -Wp,-MD,./.iofwd.o.d.tmp -m64 -pthread -fPIC -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_AES -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX -DRTE_MACHINE_CPUFLAG_RDRAND -DRTE_MACHINE_CPUFLAG_FSGSBASE -DRTE_MACHINE_CPUFLAG_F16C -DRTE_MACHINE_CPUFLAG_AVX2 -I/export/dpdk-master/build/include -include /export/dpdk-master/build/include/rte_config.h -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Werror -o iofwd.o -c /export/dpdk-master/app/test-pmd/iofwd.c gcc -o testpmd -m64 -pthread -fPIC -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_AES -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX -DRTE_MACHINE_CPUFLAG_RDRAND -DRTE_MACHINE_CPUFLAG_FSGSBASE -DRTE_MACHINE_CPUFLAG_F16C -DRTE_MACHINE_CPUFLAG_AVX2 -I/export/dpdk-master/build/include -include /export/dpdk-master/build/include/rte_config.h -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Werror testpmd.o parameters.o cmdline.o cmdline_flow.o config.o iofwd.o macfwd.o macswap.o flowgen.o rxonly.o txonly.o csumonly.o icmpecho.o -L/export/dpdk-master/build/lib -Wl,-lrte_kni -Wl,-lrte_pipeline -Wl,-lrte_table -Wl,-lrte_port -Wl,-lrte_pdump -Wl,-lrte_distributor -Wl,-lrte_reorder -Wl,-lrte_ip_frag -Wl,-lrte_meter -Wl,-lrte_sched -Wl,-lrte_lpm -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive -Wl,-lrte_jobstats -Wl,-lrte_power -Wl,--whole-archive -Wl,-lrte_timer -Wl,-lrte_hash -Wl,-lrte_vhost -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lrte_net -Wl,-lrte_ethdev -Wl,-lrte_cryptodev -Wl,-lrte_eventdev -Wl,-lrte_mempool -Wl,-lrte_ring -Wl,-lrte_eal -Wl,-lrte_cmdline -Wl,-lrte_cfgfile -Wl,-lrte_pmd_bond -Wl,--no-whole-archive -Wl,-lgcc_s -Wl,-ldl -Wl,-export-dynamic -Wl,-export-dynamic -Wl,-export-dynamic -L/export/dpdk-master/build/lib -Wl,--as-needed -Wl,-rpath=/export/dpdk-master/build/lib -Wl,-Map=testpmd.map -Wl,--cref cmdline.o: In function `cmd_set_vf_vlan_anti_spoof_parsed': cmdline.c:(.text+0x4b3a): undefined reference to `rte_pmd_ixgbe_set_vf_vlan_anti_spoof' cmdline.o: In function `cmd_set_vf_mac_anti_spoof_parsed': cmdline.c:(.text+0x4c02): undefined reference to `rte_pmd_ixgbe_set_vf_mac_anti_spoof' cmdline.o: In function `cmd_set_vf_vlan_stripq_parsed': cmdline.c:(.text+0x4cd2): undefined reference to `rte_pmd_ixgbe_set_vf_vlan_stripq' cmdline.o: In function `cmd_set_vf_split_drop_en_parsed': cmdline.c:(.text+0x4da2): undefined reference to `rte_pmd_ixgbe_set_vf_split_drop_en' cmdline.o: In function `cmd_set_vf_vlan_insert_parsed': cmdline.c:(.text+0x5eda): undefined reference to `rte_pmd_ixgbe_set_vf_vlan_insert' cmdline.o: In function `cmd_set_tx_loopback_parsed': cmdline.c:(.text+0x5f8b): undefined reference to `rte_pmd_ixgbe_set_tx_loopback' cmdline.o: In function `cmd_set_all_queues_drop_en_parsed': cmdline.c:(.text+0x604b): undefined reference to `rte_pmd_ixgbe_set_all_queues_drop_en' cmdline.o: In function `cmd_set_vf_mac_addr_parsed': cmdline.c:(.text+0x60ea): undefined reference to `rte_pmd_ixgbe_set_vf_mac_addr' collect2: error: ld returned 1 exit status /export/dpdk-master/mk/rte.app.mk:236: recipe for target 'testpmd' failed make[3]: *** [testpmd] Error 1 /export/dpdk-master/mk/rte.subdir.mk:61: recipe for target 'test-pmd' failed make[2]: *** [test-pmd] Error 2 /export/dpdk-master/mk/rte.sdkbuild.mk:78: recipe for target 'app' failed make[1]: *** [app] Error 2 /export/dpdk-master/mk/rte.sdkroot.mk:130: recipe for target 'all' failed make: *** [all] Error 2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-12 13:58 ` Jerin Jacob @ 2017-01-12 15:27 ` Ferruh Yigit 2017-01-13 3:21 ` Jerin Jacob 0 siblings, 1 reply; 12+ messages in thread From: Ferruh Yigit @ 2017-01-12 15:27 UTC (permalink / raw) To: Jerin Jacob, Thomas Monjalon; +Cc: dev, stable On 1/12/2017 1:58 PM, Jerin Jacob wrote: > On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: >> 2017-01-12 13:16, Jerin Jacob: >>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>> +endif >> >> _LDLIBS is an internal variable of rte.app.mk. >> Please could you check that there is no issue when using LDLIBS instead >> of _LDLIBS? > > Tested it. Suggested change has issue in shared lib configuration. > > [dpdk-master] $ git diff > diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile > index 050663a..27cadd5 100644 > --- a/app/test-pmd/Makefile > +++ b/app/test-pmd/Makefile > @@ -59,9 +59,7 @@ SRCS-y += csumonly.c > SRCS-y += icmpecho.c > SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c > > -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > -endif > +LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe It is LDLIBS instead of LDLIBS-y, following may work: -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) +LDLIBS += -lrte_pmd_ixgbe +endif +endif Also using EXTRA_LDLIBS instead of LDLIBS may remove the requirement of the SHARED_LIB check, because of where it is located, but this seems just coincidental. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-12 15:27 ` Ferruh Yigit @ 2017-01-13 3:21 ` Jerin Jacob 2017-01-13 15:53 ` Thomas Monjalon 0 siblings, 1 reply; 12+ messages in thread From: Jerin Jacob @ 2017-01-13 3:21 UTC (permalink / raw) To: Ferruh Yigit; +Cc: Thomas Monjalon, dev, stable On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: > On 1/12/2017 1:58 PM, Jerin Jacob wrote: > > On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: > >> 2017-01-12 13:16, Jerin Jacob: > >>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > >>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > >>> +endif > >> > >> _LDLIBS is an internal variable of rte.app.mk. > >> Please could you check that there is no issue when using LDLIBS instead > >> of _LDLIBS? > > > > Tested it. Suggested change has issue in shared lib configuration. > > > > [dpdk-master] $ git diff > > diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile > > index 050663a..27cadd5 100644 > > --- a/app/test-pmd/Makefile > > +++ b/app/test-pmd/Makefile > > @@ -59,9 +59,7 @@ SRCS-y += csumonly.c > > SRCS-y += icmpecho.c > > SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c > > > > -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > -endif > > +LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > It is LDLIBS instead of LDLIBS-y, following may work: LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD Thomas, Ferruh Let me know if you have any objection on below mentioned diff [master] $ git diff app/test-pmd/Makefile diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 050663a..2be8c50 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -59,8 +59,8 @@ SRCS-y += csumonly.c SRCS-y += icmpecho.c SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) +EXTRA_LDLIBS += -lrte_pmd_ixgbe endif CFLAGS_cmdline.o := -D_GNU_SOURCE > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) > +LDLIBS += -lrte_pmd_ixgbe > +endif > +endif > > > Also using EXTRA_LDLIBS instead of LDLIBS may remove the requirement of > the SHARED_LIB check, because of where it is located, but this seems > just coincidental. > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 3:21 ` Jerin Jacob @ 2017-01-13 15:53 ` Thomas Monjalon 2017-01-13 15:57 ` Ferruh Yigit 2017-01-13 16:02 ` Jerin Jacob 0 siblings, 2 replies; 12+ messages in thread From: Thomas Monjalon @ 2017-01-13 15:53 UTC (permalink / raw) To: Jerin Jacob; +Cc: Ferruh Yigit, dev, stable 2017-01-13 08:51, Jerin Jacob: > On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: > > On 1/12/2017 1:58 PM, Jerin Jacob wrote: > > > On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: > > >> 2017-01-12 13:16, Jerin Jacob: > > >>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > > >>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > >>> +endif > > >> > > >> _LDLIBS is an internal variable of rte.app.mk. > > >> Please could you check that there is no issue when using LDLIBS instead > > >> of _LDLIBS? > > > > LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y > mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) > > But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD > > Thomas, Ferruh > Let me know if you have any objection on below mentioned diff > > -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) > +EXTRA_LDLIBS += -lrte_pmd_ixgbe > endif You need to keep the shared lib check. Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. I prefer your initial patch using _LDLIBS. Any objection to merge initial proposal? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 15:53 ` Thomas Monjalon @ 2017-01-13 15:57 ` Ferruh Yigit 2017-01-13 16:01 ` Jerin Jacob 2017-01-13 16:02 ` Jerin Jacob 1 sibling, 1 reply; 12+ messages in thread From: Ferruh Yigit @ 2017-01-13 15:57 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob; +Cc: dev, stable On 1/13/2017 3:53 PM, Thomas Monjalon wrote: > 2017-01-13 08:51, Jerin Jacob: >> On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: >>> On 1/12/2017 1:58 PM, Jerin Jacob wrote: >>>> On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: >>>>> 2017-01-12 13:16, Jerin Jacob: >>>>>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>>>>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>>>> +endif >>>>> >>>>> _LDLIBS is an internal variable of rte.app.mk. >>>>> Please could you check that there is no issue when using LDLIBS instead >>>>> of _LDLIBS? >>>> >> LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y >> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) >> >> But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD >> >> Thomas, Ferruh >> Let me know if you have any objection on below mentioned diff >> >> -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >> -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >> +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) >> +EXTRA_LDLIBS += -lrte_pmd_ixgbe >> endif > > You need to keep the shared lib check. > Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. > I prefer your initial patch using _LDLIBS. > > Any objection to merge initial proposal? > LDLIBS should be OK, as long as wrapped with SHARED check. Is following not working: -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) +LDLIBS += -lrte_pmd_ixgbe +endif +endif ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 15:57 ` Ferruh Yigit @ 2017-01-13 16:01 ` Jerin Jacob 2017-01-13 16:12 ` Ferruh Yigit 0 siblings, 1 reply; 12+ messages in thread From: Jerin Jacob @ 2017-01-13 16:01 UTC (permalink / raw) To: Ferruh Yigit; +Cc: Thomas Monjalon, dev, stable On Fri, Jan 13, 2017 at 03:57:59PM +0000, Ferruh Yigit wrote: > On 1/13/2017 3:53 PM, Thomas Monjalon wrote: > > 2017-01-13 08:51, Jerin Jacob: > >> On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: > >>> On 1/12/2017 1:58 PM, Jerin Jacob wrote: > >>>> On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: > >>>>> 2017-01-12 13:16, Jerin Jacob: > >>>>>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > >>>>>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > >>>>>> +endif > >>>>> > >>>>> _LDLIBS is an internal variable of rte.app.mk. > >>>>> Please could you check that there is no issue when using LDLIBS instead > >>>>> of _LDLIBS? > >>>> > >> LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y > >> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) > >> > >> But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD > >> > >> Thomas, Ferruh > >> Let me know if you have any objection on below mentioned diff > >> > >> -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > >> -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > >> +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) > >> +EXTRA_LDLIBS += -lrte_pmd_ixgbe > >> endif > > > > You need to keep the shared lib check. > > Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. > > I prefer your initial patch using _LDLIBS. > > > > Any objection to merge initial proposal? > > > > LDLIBS should be OK, as long as wrapped with SHARED check. Is following > not working: No, due to the following line mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) Again -lrte_pmd_ixgbe comes first. > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) > +LDLIBS += -lrte_pmd_ixgbe > +endif > +endif ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 16:01 ` Jerin Jacob @ 2017-01-13 16:12 ` Ferruh Yigit 2017-01-31 10:58 ` Ferruh Yigit 0 siblings, 1 reply; 12+ messages in thread From: Ferruh Yigit @ 2017-01-13 16:12 UTC (permalink / raw) To: Jerin Jacob; +Cc: Thomas Monjalon, dev, stable On 1/13/2017 4:01 PM, Jerin Jacob wrote: > On Fri, Jan 13, 2017 at 03:57:59PM +0000, Ferruh Yigit wrote: >> On 1/13/2017 3:53 PM, Thomas Monjalon wrote: >>> 2017-01-13 08:51, Jerin Jacob: >>>> On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: >>>>> On 1/12/2017 1:58 PM, Jerin Jacob wrote: >>>>>> On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: >>>>>>> 2017-01-12 13:16, Jerin Jacob: >>>>>>>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>>>>>>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>>>>>> +endif >>>>>>> >>>>>>> _LDLIBS is an internal variable of rte.app.mk. >>>>>>> Please could you check that there is no issue when using LDLIBS instead >>>>>>> of _LDLIBS? >>>>>> >>>> LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y >>>> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) >>>> >>>> But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD >>>> >>>> Thomas, Ferruh >>>> Let me know if you have any objection on below mentioned diff >>>> >>>> -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>>> -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>> +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) >>>> +EXTRA_LDLIBS += -lrte_pmd_ixgbe >>>> endif >>> >>> You need to keep the shared lib check. >>> Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. >>> I prefer your initial patch using _LDLIBS. >>> >>> Any objection to merge initial proposal? >>> >> >> LDLIBS should be OK, as long as wrapped with SHARED check. Is following >> not working: > > No, due to the following line > mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) > > Again -lrte_pmd_ixgbe comes first. You are right. No objection to initial proposal. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 16:12 ` Ferruh Yigit @ 2017-01-31 10:58 ` Ferruh Yigit 0 siblings, 0 replies; 12+ messages in thread From: Ferruh Yigit @ 2017-01-31 10:58 UTC (permalink / raw) To: Jerin Jacob; +Cc: Thomas Monjalon, dev, stable On 1/13/2017 4:12 PM, Ferruh Yigit wrote: > On 1/13/2017 4:01 PM, Jerin Jacob wrote: >> On Fri, Jan 13, 2017 at 03:57:59PM +0000, Ferruh Yigit wrote: >>> On 1/13/2017 3:53 PM, Thomas Monjalon wrote: >>>> 2017-01-13 08:51, Jerin Jacob: >>>>> On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: >>>>>> On 1/12/2017 1:58 PM, Jerin Jacob wrote: >>>>>>> On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: >>>>>>>> 2017-01-12 13:16, Jerin Jacob: >>>>>>>>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>>>>>>>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>>>>>>> +endif >>>>>>>> >>>>>>>> _LDLIBS is an internal variable of rte.app.mk. >>>>>>>> Please could you check that there is no issue when using LDLIBS instead >>>>>>>> of _LDLIBS? >>>>>>> >>>>> LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y >>>>> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) >>>>> >>>>> But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD >>>>> >>>>> Thomas, Ferruh >>>>> Let me know if you have any objection on below mentioned diff >>>>> >>>>> -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) >>>>> -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>>> +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) >>>>> +EXTRA_LDLIBS += -lrte_pmd_ixgbe >>>>> endif >>>> >>>> You need to keep the shared lib check. >>>> Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. >>>> I prefer your initial patch using _LDLIBS. >>>> >>>> Any objection to merge initial proposal? >>>> >>> >>> LDLIBS should be OK, as long as wrapped with SHARED check. Is following >>> not working: >> >> No, due to the following line >> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) >> >> Again -lrte_pmd_ixgbe comes first. > > You are right. After second thought. -lrte_pmd_ixgbe coming first is problem for static compilation, but these libraries used only for dynamic compilation. And locations shouldn't matter with dynamic compilation. Can you please try converting to the following, that should work: +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) +LDLIBS += -lrte_pmd_ixgbe +endif +endif I will send a patch for this. > > No objection to initial proposal. > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-13 15:53 ` Thomas Monjalon 2017-01-13 15:57 ` Ferruh Yigit @ 2017-01-13 16:02 ` Jerin Jacob 1 sibling, 0 replies; 12+ messages in thread From: Jerin Jacob @ 2017-01-13 16:02 UTC (permalink / raw) To: Thomas Monjalon; +Cc: Ferruh Yigit, dev, stable On Fri, Jan 13, 2017 at 04:53:46PM +0100, Thomas Monjalon wrote: > 2017-01-13 08:51, Jerin Jacob: > > On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote: > > > On 1/12/2017 1:58 PM, Jerin Jacob wrote: > > > > On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote: > > > >> 2017-01-12 13:16, Jerin Jacob: > > > >>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > > > >>> _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > > >>> +endif > > > >> > > > >> _LDLIBS is an internal variable of rte.app.mk. > > > >> Please could you check that there is no issue when using LDLIBS instead > > > >> of _LDLIBS? > > > > > > LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y > > mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS) > > > > But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD > > > > Thomas, Ferruh > > Let me know if you have any objection on below mentioned diff > > > > -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe > > +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) > > +EXTRA_LDLIBS += -lrte_pmd_ixgbe > > endif > > You need to keep the shared lib check. > Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile. > I prefer your initial patch using _LDLIBS. > > Any objection to merge initial proposal? from my side, No ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering 2017-01-12 7:46 [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering Jerin Jacob 2017-01-12 9:26 ` Thomas Monjalon @ 2017-01-13 16:31 ` Thomas Monjalon 1 sibling, 0 replies; 12+ messages in thread From: Thomas Monjalon @ 2017-01-13 16:31 UTC (permalink / raw) To: Jerin Jacob; +Cc: dev, ferruh.yigit, stable 2017-01-12 13:16, Jerin Jacob: > By introducing explicit -lrte_pmd_ixgbe link request in > testpmd Makefile,"-Wl,-lrte_pmd_ixgbe" provided twice, and linker > removes the duplication by keeping only first occurrence. > This moves "-Wl,-lrte_pmd_ixgbe" out of "-Wl,--whole-archive" flag > and makes symbol generation totally different than previous version > in case of static build. > This patch fixes the static build linking order by introducing > -lrte_pmd_ixgbe under the shared library config > (CONFIG_RTE_BUILD_SHARED_LIB). > > Fixes: 425781ff5afe ("app/testpmd: add ixgbe VF management") > > CC: stable@dpdk.org > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Applied, thanks ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-01-31 10:58 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-12 7:46 [dpdk-dev] [PATCH] app/testpmd: fix static build link ordering Jerin Jacob 2017-01-12 9:26 ` Thomas Monjalon 2017-01-12 13:58 ` Jerin Jacob 2017-01-12 15:27 ` Ferruh Yigit 2017-01-13 3:21 ` Jerin Jacob 2017-01-13 15:53 ` Thomas Monjalon 2017-01-13 15:57 ` Ferruh Yigit 2017-01-13 16:01 ` Jerin Jacob 2017-01-13 16:12 ` Ferruh Yigit 2017-01-31 10:58 ` Ferruh Yigit 2017-01-13 16:02 ` Jerin Jacob 2017-01-13 16:31 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).