Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1474972 > unrolled thread

Re: [PATCH] ARM: fix linker call for ARM_MODULE_PLTS

Started byRussell King - ARM Linux <linux@armlinux.org.uk>
First post2016-09-02 11:30 +0200
Last post2016-09-02 18:40 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] ARM: fix linker call for ARM_MODULE_PLTS Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-09-02 11:30 +0200
    RE: [PATCH] ARM: fix linker call for ARM_MODULE_PLTS "Wiebe, Wladislav (Nokia - DE/Ulm)" <wladislav.wiebe@nokia.com> - 2016-09-02 18:40 +0200

#1474972 — Re: [PATCH] ARM: fix linker call for ARM_MODULE_PLTS

FromRussell King - ARM Linux <linux@armlinux.org.uk>
Date2016-09-02 11:30 +0200
SubjectRe: [PATCH] ARM: fix linker call for ARM_MODULE_PLTS
Message-ID<scSXn-643-3@gated-at.bofh.it>
On Fri, Sep 02, 2016 at 09:17:58AM +0000, Wiebe, Wladislav (Nokia - DE/Ulm) wrote:
> module.lds script doesn't get called when
> CONFIG_ARM_MODULE_PLTS is enabled.
> Use KBUILD_LDFLAGS_MODULE to fix it.

For those of us who haven't encountered this problem, could you include
some commentry in the commit message describing the failure mechanism
and why you think this is the correct solution?

The final link for modules is:

quiet_cmd_ld_ko_o = LD [M]  $@
      cmd_ld_ko_o = $(LD) -r $(LDFLAGS)                                 \
                             $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
                             -o $@ $(filter-out FORCE,$^)

which seems to always include both flags.  Why is it ignored when it's
in LDFLAGS_MODULE?  What about the other flags we pass in LDFLAGS_MODULE?

Thanks.

> 
> Signed-off-by: Wladislav Wiebe <wladislav.wiebe@nokia.com>
> ---
>  arch/arm/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 61f6ccc..01c6025 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -20,7 +20,7 @@ LDFLAGS_MODULE	+= --be8
>  endif
>  
>  ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
> -LDFLAGS_MODULE	+= -T $(srctree)/arch/arm/kernel/module.lds
> +KBUILD_LDFLAGS_MODULE	+= -T $(srctree)/arch/arm/kernel/module.lds
>  endif
>  
>  OBJCOPYFLAGS	:=-O binary -R .comment -S
> -- 
> 1.7.12.4

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

[toc] | [next] | [standalone]


#1475337

From"Wiebe, Wladislav (Nokia - DE/Ulm)" <wladislav.wiebe@nokia.com>
Date2016-09-02 18:40 +0200
Message-ID<scZFv-1Qn-1@gated-at.bofh.it>
In reply to#1474972
> From: Russell King - ARM Linux [mailto:linux@armlinux.org.uk]
> Sent: Friday, September 02, 2016 11:25 AM
> 
> On Fri, Sep 02, 2016 at 09:17:58AM +0000, Wiebe, Wladislav (Nokia - DE/Ulm)
> wrote:
> > module.lds script doesn't get called when
> > CONFIG_ARM_MODULE_PLTS is enabled.
> > Use KBUILD_LDFLAGS_MODULE to fix it.
> 
> For those of us who haven't encountered this problem, could you include
> some commentry in the commit message describing the failure mechanism
> and why you think this is the correct solution?
> 
> The final link for modules is:
> 
> quiet_cmd_ld_ko_o = LD [M]  $@
>       cmd_ld_ko_o = $(LD) -r $(LDFLAGS)                                 \
>                              $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
>                              -o $@ $(filter-out FORCE,$^)
> 
> which seems to always include both flags.  Why is it ignored when it's
> in LDFLAGS_MODULE?  What about the other flags we pass in
> LDFLAGS_MODULE?

aah -- just found an issue in my environment where LDFLAGS_MODULE gets overwritten
due to a none upstream patch on scripts/Makefile.modpost.

It worked only for me when using the KBUILD_LDFLAGS_MODULE
and I did not get deep inside after I saw in 
https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt
+++++
    KBUILD_LDFLAGS_MODULE   Options for $(LD) when linking modules

	$(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
	used when linking modules. This is often a linker script.
	From commandline LDFLAGS_MODULE shall be used (see kbuild.txt).
+++++

and found that all other architectures are also users of KBUILD_LDFLAGS_MODULE for that purpose
$ git grep LDFLAGS_MODULE arch/
arch/arm/Makefile:LDFLAGS_MODULE        += --be8
arch/arm/Makefile:LDFLAGS_MODULE        += -T $(srctree)/arch/arm/kernel/module.lds
arch/arm64/Makefile:KBUILD_LDFLAGS_MODULE       += -T $(srctree)/arch/arm64/kernel/module.lds
arch/hexagon/Makefile:# LDFLAGS_MODULE += -shared
arch/ia64/Makefile:KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/ia64/module.lds
arch/m68k/Makefile:KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/m68k/kernel/module.lds
arch/powerpc/Makefile:KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
arch/powerpc/Makefile:  KBUILD_LDFLAGS_MODULE += --ppc476-workaround \


Anyway, feel free to ignore this patch and thanks a lot for the fast feedback.



> 
> Thanks.
> 
> >
> > Signed-off-by: Wladislav Wiebe <wladislav.wiebe@nokia.com>
> > ---
> >  arch/arm/Makefile | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index 61f6ccc..01c6025 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -20,7 +20,7 @@ LDFLAGS_MODULE	+= --be8
> >  endif
> >
> >  ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
> > -LDFLAGS_MODULE	+= -T $(srctree)/arch/arm/kernel/module.lds
> > +KBUILD_LDFLAGS_MODULE	+= -T $(srctree)/arch/arm/kernel/module.lds
> >  endif
> >
> >  OBJCOPYFLAGS	:=-O binary -R .comment -S
> > --
> > 1.7.12.4
> 
> --
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
> according to speedtest.net.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web