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


Groups > linux.kernel > #1424885 > unrolled thread

[PATCH] lkdtm: avoid link error on ARM

Started byArnd Bergmann <arnd@arndb.de>
First post2016-06-17 12:10 +0200
Last post2016-06-17 17:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] lkdtm: avoid link error on ARM Arnd Bergmann <arnd@arndb.de> - 2016-06-17 12:10 +0200
    Re: [PATCH] lkdtm: avoid link error on ARM Kees Cook <keescook@chromium.org> - 2016-06-17 17:40 +0200
      Re: [PATCH] lkdtm: avoid link error on ARM Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-17 17:40 +0200

#1424885 — [PATCH] lkdtm: avoid link error on ARM

FromArnd Bergmann <arnd@arndb.de>
Date2016-06-17 12:10 +0200
Subject[PATCH] lkdtm: avoid link error on ARM
Message-ID<rKYSS-5cu-23@gated-at.bofh.it>
The lkdtm_rodata file is built so that a function in it gets linked into
the .rodata ELF section. This works fine normally, but on 32-bit ARM
with really large kernels, it prevents the linker from inserting a
veneer for the call to __gnu_mcount_nc in case we are building with
"gcc -pg":

drivers/misc/built-in.o: In function `lkdtm_rodata_do_nothing':
panel.c:(.rodata+0x1480): relocation truncated to fit: R_ARM_CALL against symbol `__gnu_mcount_nc' defined in .text section in arch/arm/kernel/built-in.o

We probably never want the profiling code to be enabled for this file
anyway, so this just removes the option here, and for the sake of
consistency also in the lkdtm core module.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 9a49a528dcf3 ("lkdtm: add function for testing .rodata section")
---
 drivers/misc/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 7d45ed4a1549..4a25eeaa30f9 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -60,6 +60,8 @@ obj-$(CONFIG_PANEL)             += panel.o
 
 lkdtm-$(CONFIG_LKDTM)		+= lkdtm_core.o
 lkdtm-$(CONFIG_LKDTM)		+= lkdtm_rodata_objcopy.o
+CFLAGS_REMOVE_lkdtm_core.o	+= -pg
+CFLAGS_REMOVE_lkdtm_rodata.o	+= -pg
 
 OBJCOPYFLAGS :=
 OBJCOPYFLAGS_lkdtm_rodata_objcopy.o := \
-- 
2.9.0

[toc] | [next] | [standalone]


#1425238

FromKees Cook <keescook@chromium.org>
Date2016-06-17 17:40 +0200
Message-ID<rL42e-8iY-39@gated-at.bofh.it>
In reply to#1424885
On Fri, Jun 17, 2016 at 3:07 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> The lkdtm_rodata file is built so that a function in it gets linked into
> the .rodata ELF section. This works fine normally, but on 32-bit ARM
> with really large kernels, it prevents the linker from inserting a
> veneer for the call to __gnu_mcount_nc in case we are building with
> "gcc -pg":
>
> drivers/misc/built-in.o: In function `lkdtm_rodata_do_nothing':
> panel.c:(.rodata+0x1480): relocation truncated to fit: R_ARM_CALL against symbol `__gnu_mcount_nc' defined in .text section in arch/arm/kernel/built-in.o
>
> We probably never want the profiling code to be enabled for this file
> anyway, so this just removes the option here, and for the sake of
> consistency also in the lkdtm core module.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 9a49a528dcf3 ("lkdtm: add function for testing .rodata section")

Looks fine to me, thanks!

Acked-by: Kees Cook <keescook@chromium.org>

Greg, can you take this into your tree for -next?

Thanks!

-Kees

> ---
>  drivers/misc/Makefile | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
> index 7d45ed4a1549..4a25eeaa30f9 100644
> --- a/drivers/misc/Makefile
> +++ b/drivers/misc/Makefile
> @@ -60,6 +60,8 @@ obj-$(CONFIG_PANEL)             += panel.o
>
>  lkdtm-$(CONFIG_LKDTM)          += lkdtm_core.o
>  lkdtm-$(CONFIG_LKDTM)          += lkdtm_rodata_objcopy.o
> +CFLAGS_REMOVE_lkdtm_core.o     += -pg
> +CFLAGS_REMOVE_lkdtm_rodata.o   += -pg
>
>  OBJCOPYFLAGS :=
>  OBJCOPYFLAGS_lkdtm_rodata_objcopy.o := \
> --
> 2.9.0
>



-- 
Kees Cook
Chrome OS & Brillo Security

[toc] | [prev] | [next] | [standalone]


#1425240

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-06-17 17:40 +0200
Message-ID<rL42e-8iY-37@gated-at.bofh.it>
In reply to#1425238
On Fri, Jun 17, 2016 at 08:33:00AM -0700, Kees Cook wrote:
> On Fri, Jun 17, 2016 at 3:07 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> > The lkdtm_rodata file is built so that a function in it gets linked into
> > the .rodata ELF section. This works fine normally, but on 32-bit ARM
> > with really large kernels, it prevents the linker from inserting a
> > veneer for the call to __gnu_mcount_nc in case we are building with
> > "gcc -pg":
> >
> > drivers/misc/built-in.o: In function `lkdtm_rodata_do_nothing':
> > panel.c:(.rodata+0x1480): relocation truncated to fit: R_ARM_CALL against symbol `__gnu_mcount_nc' defined in .text section in arch/arm/kernel/built-in.o
> >
> > We probably never want the profiling code to be enabled for this file
> > anyway, so this just removes the option here, and for the sake of
> > consistency also in the lkdtm core module.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Fixes: 9a49a528dcf3 ("lkdtm: add function for testing .rodata section")
> 
> Looks fine to me, thanks!
> 
> Acked-by: Kees Cook <keescook@chromium.org>
> 
> Greg, can you take this into your tree for -next?

Yes,will do.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web