All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <natechancellor@gmail.com>
To: Sasha Levin <sashal@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
	gregkh@linuxfoundation.org, clang-built-linux@googlegroups.com,
	stable@vger.kernel.org
Subject: Re: [PATCH v3] lkdtm: support llvm-objcopy
Date: Thu, 16 May 2019 21:09:05 -0700	[thread overview]
Message-ID: <20190517040905.GA14524@archlinux-epyc> (raw)
In-Reply-To: <20190517040613.GA13981@archlinux-epyc>

[-- Attachment #1: Type: text/plain, Size: 1223 bytes --]

On Thu, May 16, 2019 at 09:06:13PM -0700, Nathan Chancellor wrote:
> On Fri, May 17, 2019 at 12:10:02AM +0000, Sasha Levin wrote:
> > Hi,
> > 
> > [This is an automated email]
> > 
> > This commit has been processed because it contains a -stable tag.
> > The stable tag indicates that it's relevant for the following trees: all
> 
> Nick, the stable tag should probably specify 4.8+ since the commit it
> fixes came in during 4.8-rc1.
> 
> Cc: stable@vger.kernel.org # 4.8+
> 
> Might also help to add:
> 
> Fixes: 9a49a528dcf3 ("lkdtm: add function for testing .rodata section")
> 
> > 
> > The bot has tested the following trees: v5.1.2, v5.0.16, v4.19.43, v4.14.119, v4.9.176, v4.4.179, v3.18.140.
> > 
> > v5.1.2: Build OK!
> > v5.0.16: Build OK!
> > v4.19.43: Build OK!
> > v4.14.119: Failed to apply! Possible dependencies:
> >     039a1c42058d ("lkdtm: Relocate code to subdirectory")
> 
> However, it will still need a manual backport because of the lack of
> this commit. I've attached the current patch backported for reference,

Would help if I actually did this... :^)

> the git am flags '-3 -p4 --directory=drivers/misc' help get it proper
> then the conflict is rather easy to resolve.
> 
> Thanks,
> Nathan

[-- Attachment #2: 0001-lkdtm-support-llvm-objcopy.patch --]
[-- Type: text/plain, Size: 2363 bytes --]

From 10c0a74a8d92669b91b66efe6b72550fc24e8e7d Mon Sep 17 00:00:00 2001
From: Nick Desaulniers <ndesaulniers@google.com>
Date: Wed, 15 May 2019 11:24:41 -0700
Subject: [PATCH] lkdtm: support llvm-objcopy

With CONFIG_LKDTM=y and make OBJCOPY=llvm-objcopy, llvm-objcopy errors:
llvm-objcopy: error: --set-section-flags=.text conflicts with
--rename-section=.text=.rodata

Rather than support setting flags then renaming sections vs renaming
then setting flags, it's simpler to just change both at the same time
via --rename-section. Adding the load flag is required for GNU objcopy
to mark .rodata Type as PROGBITS after the rename.

This can be verified with:
$ readelf -S drivers/misc/lkdtm/rodata_objcopy.o
...
Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
...
  [ 1] .rodata           PROGBITS         0000000000000000  00000040
       0000000000000004  0000000000000000   A       0     0     4
...

Which shows that .text is now renamed .rodata, the alloc flag A is set,
the type is PROGBITS, and the section is not flagged as writeable W.

Cc: stable@vger.kernel.org
Link: https://sourceware.org/bugzilla/show_bug.cgi?id=24554
Link: https://github.com/ClangBuiltLinux/linux/issues/448
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Suggested-by: Alan Modra <amodra@gmail.com>
Suggested-by: Jordan Rupprect <rupprecht@google.com>
Suggested-by: Kees Cook <keescook@chromium.org>
Acked-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
 drivers/misc/Makefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index c3c8624f4d95..805835c2b99b 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -70,8 +70,7 @@ KCOV_INSTRUMENT_lkdtm_rodata.o	:= n
 
 OBJCOPYFLAGS :=
 OBJCOPYFLAGS_lkdtm_rodata_objcopy.o := \
-			--set-section-flags .text=alloc,readonly \
-			--rename-section .text=.rodata
+			--rename-section .text=.rodata,alloc,readonly,load
 targets += lkdtm_rodata.o lkdtm_rodata_objcopy.o
 $(obj)/lkdtm_rodata_objcopy.o: $(obj)/lkdtm_rodata.o FORCE
 	$(call if_changed,objcopy)
-- 
2.22.0.rc0


      reply	other threads:[~2019-05-17  4:09 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-13 22:21 [PATCH] lkdtm: support llvm-objcopy Nick Desaulniers
2019-05-13 22:26 ` Nick Desaulniers
2019-05-13 23:04 ` Kees Cook
2019-05-13 23:29 ` Nathan Chancellor
2019-05-13 23:38   ` Jordan Rupprecht
2019-05-13 23:47     ` Nathan Chancellor
2019-05-13 23:50   ` Nick Desaulniers
2019-05-14 18:10     ` Kees Cook
2019-05-14 20:24       ` Nick Desaulniers
2019-05-15 16:42         ` Kees Cook
2019-05-15 17:37           ` Nick Desaulniers
2019-05-15 18:12             ` [PATCH v2] " Nick Desaulniers
2019-05-15 18:19               ` Nathan Chancellor
2019-05-15 18:24                 ` [PATCH v3] " Nick Desaulniers
     [not found]                   ` <20190517001002.D1A262084A@mail.kernel.org>
2019-05-17  4:06                     ` Nathan Chancellor
2019-05-17  4:09                       ` Nathan Chancellor [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190517040905.GA14524@archlinux-epyc \
    --to=natechancellor@gmail.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ndesaulniers@google.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.