Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1424885 > unrolled thread
| Started by | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| First post | 2016-06-17 12:10 +0200 |
| Last post | 2016-06-17 17:40 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
[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
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-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]
| From | Kees Cook <keescook@chromium.org> |
|---|---|
| Date | 2016-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]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-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