From patchwork Mon Aug 12 21:17:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Desaulniers X-Patchwork-Id: 171118 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp50799ily; Mon, 12 Aug 2019 14:17:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqxL57h/RtysXidejX9L9MpDsrSxtykOlaShzIawEFds7rbWqRgg6v4D4X0Bp6TrGS+y+7S6 X-Received: by 2002:a17:902:5998:: with SMTP id p24mr34463589pli.110.1565644677132; Mon, 12 Aug 2019 14:17:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565644677; cv=none; d=google.com; s=arc-20160816; b=tSDlom7jTPivVPKr2AbY3ZKm1yI6NrcI39iFJuiP+5CtQDV/NGQ0QgO8+zlioEwVoe OMjEPF+L48/+IfR0ewyTewGF72GTHyfdyvGsUVnNtIEJ8KCa3Q1QK06/7is8aXroWrU6 dXGYA6vbycj9UVSz1lbXbVyCGJCB0sWbmNSpvsObm9bCbr1AxWl0KHCFLmwriu3ZLNCy pHV8TiXryixy/RUNdmLvkjxmpxj+Hh3qJXKBAoWleKxGAOnZtc5GX4ErAZYZHsuBigWj G5otHhdI0UYu4MGF8B9rrodfDxc0eOo1eVop3BE45G6DPHI87j5GEJjLzsMdF1gvvr/m YWSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:mime-version :message-id:date:dkim-signature; bh=YTDGC6oAA/dTzgXBrTYj01WvG2SerqNpZqjkel+Et1E=; b=dnpi/JBBQCxb3+hf3AM2iiCTMRSUuWP+715k3LPqbVo3S0cYlUO54XALU7M/qOUj3C SiEk+mbPj2HLIibpuycSwrt0O7Ka85FdGHIX105VVvKX+fxTrb953ErQMTmBNsW3OnEl q4YsCZm7pMCw2+ahPlPXHyxwb+bsKRKQi8QlX4N3GrkJaCioTy1anpDjG0OBLTGmIIkQ APf4W00Gxo+N4X510JfEMArvqXGyBsFI1oZfqlp1bBQsqrykxr0hxe3g8oUFByhKY64W u2lbgelFQHg9/62fE7rxSHP7bZQEK9pCSkVpDml4DWc9GkNW55OjknldkSlGbPLQj/d/ 0d6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kJiV4Lw4; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x5si10209907pfq.86.2019.08.12.14.17.56; Mon, 12 Aug 2019 14:17:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kJiV4Lw4; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726500AbfHLVR4 (ORCPT + 14 others); Mon, 12 Aug 2019 17:17:56 -0400 Received: from mail-pl1-f201.google.com ([209.85.214.201]:42483 "EHLO mail-pl1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726144AbfHLVR4 (ORCPT ); Mon, 12 Aug 2019 17:17:56 -0400 Received: by mail-pl1-f201.google.com with SMTP id x1so19314086plm.9 for ; Mon, 12 Aug 2019 14:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=YTDGC6oAA/dTzgXBrTYj01WvG2SerqNpZqjkel+Et1E=; b=kJiV4Lw4QO9Q0JpAHWuuiG5fSTYnUMJQjMqJpMivZ+TP/kX/tpuILtZzbdDxWpFMTc BNwr7B5+0E36xZgzrS7yBmwWf1AMf0LCIynPY/GT25YIAKE7BReWsAQ7wT7r+FqUYUVa JkUArmrL5O5cHp9hjEVxcHsrYlefJmlO9Qxp6vKyJ73XqrgUW4MoSi3zUw4HpNUhS89m 6eeyGbNCZpOOLYC+M3U0seHB3Yk8hD4k12X+8O3IUaYPeOApzQccRT0N/2Ub2A4xdWNl n0fSfYFILO/5bAwW/o1KPzBBGn7Bmuhgb5+BVLvuWgPZDhjw6JrbBCvA/X12VHE7BcuX sqXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=YTDGC6oAA/dTzgXBrTYj01WvG2SerqNpZqjkel+Et1E=; b=J8gU4uL78Pen9t06YaEwqdmFUwJAPliyFgf8pPbOEbWv62KNll/jodqFokjpPkGeOW UFdA7xZw606QPc3LVnPXrCkTDsx3jzYFcWYgsSiLVMXdoyNL1Y6zfUFBxhC9U9gswuE5 2To5Zc3fp/5femsVW2fsz3Xk9hp5VnLJODxz+F0O2EFMgTlTmED2JKpuz+ZX/92rFfT8 Iz/z786knknNp+Nn0Fe9YTa0mqYmcq++QMIeqC7UR6fF6CwK6OU/InRDsweFWBwwbxRG WBPBUb2Ty6HFJGaSx86s8fMjZ4qqD54Z5A1mH/c60WAoW7CNL2+PfnLlPOLlR3YQfdbM 2BEA== X-Gm-Message-State: APjAAAWS06mZaUd6HERiXS/6KwNmJfaERw5ghHgnCSCX40kzrXnkoXnw dZBeNOVPQyaQfM4a2SrVw8BWcC1HaJ2hEoPVdeM0yWBDYc9WLdR9diX3Y3UoSHgtU4SgxiBQYca CD+CEyej6EegbrwhmaDZcSlwBl4CTv9PGW1hwnHzj2W54e2GYtsKZ+v13aLBzmZbS7iyT1v/6AV I2CA== X-Received: by 2002:a65:4808:: with SMTP id h8mr14748082pgs.22.1565644675027; Mon, 12 Aug 2019 14:17:55 -0700 (PDT) Date: Mon, 12 Aug 2019 14:17:50 -0700 Message-Id: <20190812211750.61025-1-ndesaulniers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog Subject: [4.14 PATCH] lkdtm: support llvm-objcopy From: Nick Desaulniers To: stable@vger.kernel.org Cc: pcc@google.com, Nick Desaulniers , Nathan Chancellor , Alan Modra , Jordan Rupprect , Kees Cook , Greg Kroah-Hartman Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org commit e9e08a07385e08f1a7f85c5d1e345c21c9564963 upstream. 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 Suggested-by: Alan Modra Suggested-by: Jordan Rupprect Suggested-by: Kees Cook Acked-by: Kees Cook Reviewed-by: Nathan Chancellor Signed-off-by: Nick Desaulniers Signed-off-by: Greg Kroah-Hartman --- This backport is for 4.14. It should allow us to use llvm-objcopy for RELR relocations on arm64 in Android. drivers/misc/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- 2.23.0.rc1.153.gdeed80330f-goog diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index ad0e64fdba34..76f6a4f628b3 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -69,8 +69,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)