[dpdk-dev] [PATCH] mk: fix link with gcc
Neil Horman
nhorman at tuxdriver.com
Wed May 28 16:17:51 CEST 2014
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 at 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
>
>
More information about the dev
mailing list