Messages in this thread | | | From | Kees Cook <> | Date | Fri, 17 Jun 2016 08:33:00 -0700 | Subject | Re: [PATCH] lkdtm: avoid link error on ARM |
| |
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
| |