DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mk: fix link with gcc
@ 2014-05-27 12:55 Thomas Monjalon
  2014-05-28 11:47 ` Olivier MATZ
  2014-05-28 14:17 ` Neil Horman
  0 siblings, 2 replies; 8+ messages in thread
From: Thomas Monjalon @ 2014-05-27 12:55 UTC (permalink / raw)
  To: dev

Some linker options were not prefixed by -Wl, when using gcc:
	-z muldefs
	-melf_i386 (32-bit config)

Using macro linkerprefix is fixing it.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 mk/rte.lib.mk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
index f5d2789..c58e68e 100644
--- a/mk/rte.lib.mk
+++ b/mk/rte.lib.mk
@@ -62,6 +62,8 @@ 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_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
+CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
 endif
 
 O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
@@ -73,7 +75,7 @@ O_TO_A_DO = @set -e; \
 	$(O_TO_A) && \
 	echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
 
-O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB)
+O_TO_S = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -shared $(OBJS-y) -o $(LIB)
 O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
 O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)","  LD $(@)")
 O_TO_S_DO = @set -e; \
@@ -89,7 +91,7 @@ O_TO_C_DO = @set -e; \
 	$(lib_dir) \
 	$(copy_obj)
 else
-O_TO_C = $(LD) -z muldefs -shared $(OBJS-y) -o $(LIB_ONE)
+O_TO_C = $(LD) $(LD_MULDEFS) -shared $(OBJS-y) -o $(LIB_ONE)
 O_TO_C_STR = $(subst ','\'',$(O_TO_C)) #'# fix syntax highlight
 O_TO_C_DISP = $(if $(V),"$(O_TO_C_STR)","  LD_C $(@)")
 O_TO_C_DO = @set -e; \
-- 
1.9.2

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-27 12:55 [dpdk-dev] [PATCH] mk: fix link with gcc Thomas Monjalon
@ 2014-05-28 11:47 ` Olivier MATZ
  2014-05-29  6:48   ` Thomas Monjalon
  2014-05-28 14:17 ` Neil Horman
  1 sibling, 1 reply; 8+ messages in thread
From: Olivier MATZ @ 2014-05-28 11:47 UTC (permalink / raw)
  To: Thomas Monjalon, dev

Hi Thomas,

On 05/27/2014 02:55 PM, Thomas Monjalon wrote:
> Some linker options were not prefixed by -Wl, when using gcc:
> 	-z muldefs
> 	-melf_i386 (32-bit config)
>
> Using macro linkerprefix is fixing it.
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>

The patch looks correct, but from the commit log it's difficult
to understand what is the problem today. Is there a compilation
issue? Or is it just cleaning?

Regards,
Olivier

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-27 12:55 [dpdk-dev] [PATCH] mk: fix link with gcc Thomas Monjalon
  2014-05-28 11:47 ` Olivier MATZ
@ 2014-05-28 14:17 ` Neil Horman
  2014-05-29  6:24   ` Thomas Monjalon
  1 sibling, 1 reply; 8+ messages in thread
From: Neil Horman @ 2014-05-28 14:17 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Tue, May 27, 2014 at 02:55:16PM +0200, Thomas Monjalon wrote:
> Some linker options were not prefixed by -Wl, when using gcc:
> 	-z muldefs
> 	-melf_i386 (32-bit config)
> 
> Using macro linkerprefix is fixing it.
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
>  mk/rte.lib.mk | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
> index f5d2789..c58e68e 100644
> --- a/mk/rte.lib.mk
> +++ b/mk/rte.lib.mk
> @@ -62,6 +62,8 @@ 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_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
> +CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
>  endif
>  
Agree with Olivier, what exactly is the problem here?  Also, I don't think this
is correct, as CPU_LD_FLAGS and -z muldefs below is used in conjunction with
$LD.  It would make sense to prefix -Wl to these options if we were passing them
through $CC, but not $LD

Neil

>  O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
> @@ -73,7 +75,7 @@ O_TO_A_DO = @set -e; \
>  	$(O_TO_A) && \
>  	echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
>  
> -O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB)
> +O_TO_S = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -shared $(OBJS-y) -o $(LIB)
>  O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
>  O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)","  LD $(@)")
>  O_TO_S_DO = @set -e; \
> @@ -89,7 +91,7 @@ O_TO_C_DO = @set -e; \
>  	$(lib_dir) \
>  	$(copy_obj)
>  else
> -O_TO_C = $(LD) -z muldefs -shared $(OBJS-y) -o $(LIB_ONE)
> +O_TO_C = $(LD) $(LD_MULDEFS) -shared $(OBJS-y) -o $(LIB_ONE)
>  O_TO_C_STR = $(subst ','\'',$(O_TO_C)) #'# fix syntax highlight
>  O_TO_C_DISP = $(if $(V),"$(O_TO_C_STR)","  LD_C $(@)")
>  O_TO_C_DO = @set -e; \
> -- 
> 1.9.2
> 
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-28 14:17 ` Neil Horman
@ 2014-05-29  6:24   ` Thomas Monjalon
  2014-05-29 11:07     ` Neil Horman
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2014-05-29  6:24 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

Hi Neil,

2014-05-28 10:17, Neil Horman:
> On Tue, May 27, 2014 at 02:55:16PM +0200, Thomas Monjalon wrote:
> > Some linker options were not prefixed by -Wl, when using gcc:
> > 	-z muldefs
> > 	-melf_i386 (32-bit config)
> > 
> > Using macro linkerprefix is fixing it.
> > 
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
[...]
> >  ifeq ($(LINK_USING_CC),1)
> >  # Override the definition of LD here, since we're linking with CC
> >  LD := $(CC)
> > 
> > +LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
> > +CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
> 
> Agree with Olivier, what exactly is the problem here?

When using CC as LD, linker options should be prefixed with -Wl.

> Also, I don't think
> this is correct, as CPU_LD_FLAGS and -z muldefs below is used in
> conjunction with $LD.  It would make sense to prefix -Wl to these options
> if we were passing them through $CC, but not $LD

Yes, but options are prefixed only in the case LD = CC.

Neil, this situation is funny as you're the author of the patch making LD as 
CC and you submitted this kind of fix to prefix CPU_LDFLAGS :)
This patch is a translation of yours with use of macro linkerprefix.

--  
Thomas

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-28 11:47 ` Olivier MATZ
@ 2014-05-29  6:48   ` Thomas Monjalon
  2014-06-02  7:40     ` Olivier MATZ
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2014-05-29  6:48 UTC (permalink / raw)
  To: Olivier MATZ; +Cc: dev

Hi Olivier,

2014-05-28 13:47, Olivier MATZ:
> On 05/27/2014 02:55 PM, Thomas Monjalon wrote:
> > Some linker options were not prefixed by -Wl, when using gcc:
> > 	-z muldefs
> > 	-melf_i386 (32-bit config)
> > 
> > Using macro linkerprefix is fixing it.
> > 
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> 
> The patch looks correct, but from the commit log it's difficult
> to understand what is the problem today. Is there a compilation
> issue? Or is it just cleaning?

You're right, title should be:
	mk: fix 32-bit link with gcc

And I should add some details in the commit log:

I didn't see any error with -z muldefs but it isn't documented in gcc manual. 
So it's safer to explicitly pass it to the linker.

The variable CPU_LDFLAGS contains "-melf_i386" in 32-bit configurations. So 
building 32-bit shared library raises this error:
	gcc: error: unrecognized command line option ‘-melf_i386’

Olivier, I'll make these changes if you (or Neil) ack the patch.

Thanks for review
-- 
Thomas

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-29  6:24   ` Thomas Monjalon
@ 2014-05-29 11:07     ` Neil Horman
  0 siblings, 0 replies; 8+ messages in thread
From: Neil Horman @ 2014-05-29 11:07 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Thu, May 29, 2014 at 08:24:56AM +0200, Thomas Monjalon wrote:
> Hi Neil,
> 
> 2014-05-28 10:17, Neil Horman:
> > On Tue, May 27, 2014 at 02:55:16PM +0200, Thomas Monjalon wrote:
> > > Some linker options were not prefixed by -Wl, when using gcc:
> > > 	-z muldefs
> > > 	-melf_i386 (32-bit config)
> > > 
> > > Using macro linkerprefix is fixing it.
> > > 
> > > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> [...]
> > >  ifeq ($(LINK_USING_CC),1)
> > >  # Override the definition of LD here, since we're linking with CC
> > >  LD := $(CC)
> > > 
> > > +LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
> > > +CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
> > 
> > Agree with Olivier, what exactly is the problem here?
> 
> When using CC as LD, linker options should be prefixed with -Wl.
> 
> > Also, I don't think
> > this is correct, as CPU_LD_FLAGS and -z muldefs below is used in
> > conjunction with $LD.  It would make sense to prefix -Wl to these options
> > if we were passing them through $CC, but not $LD
> 
> Yes, but options are prefixed only in the case LD = CC.
> 
ah, sorry, was looking at the wrong clause in rte.lib.mk

> Neil, this situation is funny as you're the author of the patch making LD as 
> CC and you submitted this kind of fix to prefix CPU_LDFLAGS :)
> This patch is a translation of yours with use of macro linkerprefix.
> 
Yeah, my fault, I was only looking at the lines changed, rather than the context
surrounding them.  This makes sense.
Neil

> --  
> Thomas
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-05-29  6:48   ` Thomas Monjalon
@ 2014-06-02  7:40     ` Olivier MATZ
  2014-06-10 11:39       ` Thomas Monjalon
  0 siblings, 1 reply; 8+ messages in thread
From: Olivier MATZ @ 2014-06-02  7:40 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

On 05/29/2014 08:48 AM, Thomas Monjalon wrote:
> You're right, title should be:
> 	mk: fix 32-bit link with gcc
>
> And I should add some details in the commit log:
>
> I didn't see any error with -z muldefs but it isn't documented in gcc manual.
> So it's safer to explicitly pass it to the linker.
>
> The variable CPU_LDFLAGS contains "-melf_i386" in 32-bit configurations. So
> building 32-bit shared library raises this error:
> 	gcc: error: unrecognized command line option ‘-melf_i386’
>
> Olivier, I'll make these changes if you (or Neil) ack the patch.

Acked-by: Olivier Matz <olivier.matz@6wind.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] mk: fix link with gcc
  2014-06-02  7:40     ` Olivier MATZ
@ 2014-06-10 11:39       ` Thomas Monjalon
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Monjalon @ 2014-06-10 11:39 UTC (permalink / raw)
  To: Olivier MATZ; +Cc: dev

2014-06-02 09:40, Olivier MATZ:
> Hi Thomas,
> 
> On 05/29/2014 08:48 AM, Thomas Monjalon wrote:
> > You're right, title should be:
> > 	mk: fix 32-bit link with gcc
> >
> > And I should add some details in the commit log:
> >
> > I didn't see any error with -z muldefs but it isn't documented in gcc manual.
> > So it's safer to explicitly pass it to the linker.
> >
> > The variable CPU_LDFLAGS contains "-melf_i386" in 32-bit configurations. So
> > building 32-bit shared library raises this error:
> > 	gcc: error: unrecognized command line option ‘-melf_i386’
> >
> > Olivier, I'll make these changes if you (or Neil) ack the patch.
> 
> Acked-by: Olivier Matz <olivier.matz@6wind.com>

Applied for version 1.7.0.

-- 
Thomas

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-06-10 11:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-27 12:55 [dpdk-dev] [PATCH] mk: fix link with gcc Thomas Monjalon
2014-05-28 11:47 ` Olivier MATZ
2014-05-29  6:48   ` Thomas Monjalon
2014-06-02  7:40     ` Olivier MATZ
2014-06-10 11:39       ` Thomas Monjalon
2014-05-28 14:17 ` Neil Horman
2014-05-29  6:24   ` Thomas Monjalon
2014-05-29 11:07     ` Neil Horman

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).