* [PATCH] mk: fix link with gcc @ 2014-05-27 12:55 Thomas Monjalon [not found] ` <1401195316-31149-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Thomas Monjalon @ 2014-05-27 12:55 UTC (permalink / raw) To: dev-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> --- 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 related [flat|nested] 8+ messages in thread
[parent not found: <1401195316-31149-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] mk: fix link with gcc [not found] ` <1401195316-31149-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> @ 2014-05-28 11:47 ` Olivier MATZ [not found] ` <5385CCE8.6030501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 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-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 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
[parent not found: <5385CCE8.6030501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] mk: fix link with gcc [not found] ` <5385CCE8.6030501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> @ 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-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> > > 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: [PATCH] mk: fix link with gcc 2014-05-29 6:48 ` Thomas Monjalon @ 2014-06-02 7:40 ` Olivier MATZ [not found] ` <538C2A59.2060501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Olivier MATZ @ 2014-06-02 7:40 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <538C2A59.2060501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] mk: fix link with gcc [not found] ` <538C2A59.2060501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> @ 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-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> Applied for version 1.7.0. -- Thomas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mk: fix link with gcc [not found] ` <1401195316-31149-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-05-28 11:47 ` Olivier MATZ @ 2014-05-28 14:17 ` Neil Horman [not found] ` <20140528141751.GA2648-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> 1 sibling, 1 reply; 8+ messages in thread From: Neil Horman @ 2014-05-28 14:17 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> > --- > 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
[parent not found: <20140528141751.GA2648-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>]
* Re: [PATCH] mk: fix link with gcc [not found] ` <20140528141751.GA2648-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> @ 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-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> [...] > > 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: [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-VfR2kkLFssw 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-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> > [...] > > > 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
end of thread, other threads:[~2014-06-10 11:39 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 [PATCH] mk: fix link with gcc Thomas Monjalon [not found] ` <1401195316-31149-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-05-28 11:47 ` Olivier MATZ [not found] ` <5385CCE8.6030501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-05-29 6:48 ` Thomas Monjalon 2014-06-02 7:40 ` Olivier MATZ [not found] ` <538C2A59.2060501-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-06-10 11:39 ` Thomas Monjalon 2014-05-28 14:17 ` Neil Horman [not found] ` <20140528141751.GA2648-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> 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).