[dpdk-dev] mk: fix build 32bits shared libs on 64bits system

Message ID 1413995782-8716-1-git-send-email-sergio.gonzalez.monroy@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Sergio Gonzalez Monroy Oct. 22, 2014, 4:36 p.m. UTC
  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(-)
  

Comments

De Lara Guarch, Pablo Oct. 28, 2014, 4:30 p.m. UTC | #1
> -----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>
  
Thomas Monjalon Nov. 28, 2014, 3:48 p.m. UTC | #2
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
  
Sergio Gonzalez Monroy Dec. 1, 2014, 9:51 a.m. UTC | #3
> 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
  
Neil Horman Dec. 8, 2014, 2:52 p.m. UTC | #4
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>
  
Thomas Monjalon Dec. 11, 2014, 12:49 a.m. UTC | #5
> > 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
  

Patch

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