Incompatible libraries error when building shared libraries for 32bits on a 64bits system. Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled. Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com> --- mk/rte.lib.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index f458258..d83e808 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -61,7 +61,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) ifeq ($(LINK_USING_CC),1) # Override the definition of LD here, since we're linking with CC -LD := $(CC) +LD := $(CC) $(CPU_CFLAGS) LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs) CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) endif -- 1.9.3
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Sergio Gonzalez
> Monroy
> Sent: Wednesday, October 22, 2014 5:36 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] mk: fix build 32bits shared libs on 64bits system
>
> Incompatible libraries error when building shared libraries for 32bits on
> a 64bits system.
> Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled.
>
> Signed-off-by: Sergio Gonzalez Monroy
> <sergio.gonzalez.monroy@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Hi Sergio,
2014-10-22 17:36, Sergio Gonzalez Monroy:
> Incompatible libraries error when building shared libraries for 32bits on
> a 64bits system.
> Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled.
This issue looks really strange. If that's the only way to fix it,
it would be better to have a comment in the makefile and a detailed
explanation in the commit log.
Thanks
--
Thomas
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Friday, November 28, 2014 3:49 PM > > Hi Sergio, > > 2014-10-22 17:36, Sergio Gonzalez Monroy: > > Incompatible libraries error when building shared libraries for 32bits > > on a 64bits system. > > Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled. > > This issue looks really strange. If that's the only way to fix it, it would be > better to have a comment in the makefile and a detailed explanation in the > commit log. > Hi Thomas, There may be a better way to deal with this, please feel free to suggest alternate method. We do specify -m32 or -m64 when building the DPDK. The issue is that we were not specifying -m32 when linking, therefore the wrong libraries were being picked. At the time CPU_CFLAGS was only being set with -m32/-m64, reason why I used such variable. Would it be better to create another var and pass it down? Thanks, Sergio > Thanks > -- > Thomas
On Wed, Oct 22, 2014 at 05:36:22PM +0100, Sergio Gonzalez Monroy wrote:
> Incompatible libraries error when building shared libraries for 32bits on
> a 64bits system.
> Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled.
>
> Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>
> ---
> mk/rte.lib.mk | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
> index f458258..d83e808 100644
> --- a/mk/rte.lib.mk
> +++ b/mk/rte.lib.mk
> @@ -61,7 +61,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
>
> ifeq ($(LINK_USING_CC),1)
> # Override the definition of LD here, since we're linking with CC
> -LD := $(CC)
> +LD := $(CC) $(CPU_CFLAGS)
> LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
> CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
> endif
Acked-by: Neil Horman <nhorman@tuxdriver.com>
> > Incompatible libraries error when building shared libraries for 32bits on
> > a 64bits system.
> > Fix issue by passing CPU_CFLAGS to CC when LINK_USING_CC is enabled.
> >
> > Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
> > Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
Applied
Thanks
--
Thomas