Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2119431imu; Sat, 12 Jan 2019 16:15:13 -0800 (PST) X-Google-Smtp-Source: ALg8bN5qFxJk9ATJpINgKezik6/zoKoD2ucUqm99wiDsIyDXvg1FW0z/hpdVsrwVPg4hnv5j8m+T X-Received: by 2002:a17:902:2:: with SMTP id 2mr20693397pla.228.1547338513613; Sat, 12 Jan 2019 16:15:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547338513; cv=none; d=google.com; s=arc-20160816; b=tPF8UatntTb65vWvP8vYzDZQ+6Xsf0zWNB104AN1U1hMmI1KLnwrxvYEY3N1m3TeMM QwR44ED2zATduMl1Piyh/0QXexQYmwU+t3MJCMFa+99jttLvt4Wqc/a3man/C4ZZiKas GGOUc59XU+DsAnV9khzM0dFLNbi5gPHDRlt+Frw34l2dTkdgwd6MxuKXYkJ7nCEV7THN YyKg7jFGxjHDyXq1DelkqglHnRYuBUYfaLUecWulogCL2omQg60K8qkuKLCkY3S4PQUm 1M3SNcIz5ZvFyqEkn4NGRd8zC/+uPMXC5btr7OsXvng0bJt/ynV2HwngluJ9hRYbJJay 8V6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :dkim-signature; bh=3NxPxNIGiSzNWT0s/W2ZCnb7jgAT5mi9uinyciQgQYg=; b=yrzYEt8CjzvdPC4L/PaAZ+gJ9Z4iQnLZ/Hv+VNWKepub4C9sAgVZxgxpZohSQj8Ox7 gONK77UC/UN99XWjuUeaDAGSZlSoK6iR1oYTp+9fRGtFNNSlrYU3Y0LhxKW6nws12G1k TBju3aOtRL+OGYLOPyUgKJg6hLqzrPxItA1nlL6egHl10l+fofKaQxacIlxhkjq9wLv8 pOQ2OYGk0wIGxBcb54/Nz2xabIgSD7eJ2bTjnHZFG5UiuU5qaVgq0cwauPln+B1TJrcb 9UlEM6FwzaTMHZQixOHJxAI0p5uA4K0wUK4fGwLH6eqk4sSZaTnSt5ndDQ+H8NNRdGTL OnHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sholland.org header.s=fm1 header.b=0qS+OE57; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=A+CivTrQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7si21796763pgq.545.2019.01.12.16.14.57; Sat, 12 Jan 2019 16:15:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=@sholland.org header.s=fm1 header.b=0qS+OE57; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=A+CivTrQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726551AbfALXcs (ORCPT + 99 others); Sat, 12 Jan 2019 18:32:48 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:33635 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726399AbfALXcr (ORCPT ); Sat, 12 Jan 2019 18:32:47 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 1F8F621AAD; Sat, 12 Jan 2019 18:32:44 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sat, 12 Jan 2019 18:32:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-type:content-transfer-encoding; s=fm1; bh=3 NxPxNIGiSzNWT0s/W2ZCnb7jgAT5mi9uinyciQgQYg=; b=0qS+OE57rXAooGNNb rArDHRPMKxhpX6VJabM+AShz7kU6/Oeh7Tmygg8qW8qceWcVDssd98RYODtl0OiX U4jJlNe7TpRyqyI3+x89Gey7KZkRqN0ewHSwgIxXIymgB0EzTLBF1fDoVhWcyjCg yMlxMew7SXyDwv4NcofqibWbDkZT4OSR6HfwUewnYFLRiLB15WIZsdh4j+KA4rNQ rXuqGi550bQw6RyKBNfNUlNxPaLeI/q5NEuVBjn05VQAMAOqop3gMTOdzh5rnyGe XIR3Ekx6hd/dM24y/wVPn+L8GE0isQ42+YrK9mU9MiCyQ1xpdqb8UE61J6rwqQbW nICyQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=3NxPxNIGiSzNWT0s/W2ZCnb7jgAT5mi9uinyciQgQ Yg=; b=A+CivTrQx9vckpl+WJviaMFcSaWU7ZvGAHAEIdpjMSGxsBueqYAPwgjyJ dt4+w8UbZ45wKUB9RQVlNerNlvAyiSxG65RozHESfPM8QJu0BLEVg8buarL2soLv SBDPyKI+k/0v5fbBwyOmQ+I0KBZbd/7U5ciO8Af90wd5D5BafnAsAUKCUQVlciFm I+Ihd3TPEF+BWEdZ97evxxr/bucSR4tS20N8Br6vRrll3dnZqlW7c1PQwGw0XBc2 owuO7mMk6u7aKVxV2gnpDkMKcGrIcekZazMyo1tm5kpMK/Y9lblFMwFOMVTGMUcV GmuUCjOnABgRTvAeUvVPYHYhwnqpQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledrfeejgddujeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefuvfhfhffkff gfgggjtgfgsehtjeertddtfeejnecuhfhrohhmpefurghmuhgvlhcujfholhhlrghnugcu oehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucffohhmrghinhepkhgvrhhnvg hlrdhorhhgnecukfhppeejtddrudefhedrudegkedrudehudenucfrrghrrghmpehmrghi lhhfrhhomhepshgrmhhuvghlsehshhholhhlrghnugdrohhrghenucevlhhushhtvghruf hiiigvpedt X-ME-Proxy: Received: from [192.168.50.162] (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) by mail.messagingengine.com (Postfix) with ESMTPA id 3C994100E5; Sat, 12 Jan 2019 18:32:42 -0500 (EST) Subject: Re: [PATCH v5 1/2] powerpc/32: add stack protector support To: Christophe Leroy , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Masahiro Yamada Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, "Jason A. Donenfeld" References: <8e81b0647fea15e533a73ad4e9063c059fdfc6df.1537987712.git.christophe.leroy@c-s.fr> From: Samuel Holland Message-ID: Date: Sat, 12 Jan 2019 17:32:40 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <8e81b0647fea15e533a73ad4e9063c059fdfc6df.1537987712.git.christophe.leroy@c-s.fr> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello all, On 09/27/18 02:05, Christophe Leroy wrote: [..snip..] > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile > index 07d9dce7eda6..45b8eb4d8fe7 100644 > --- a/arch/powerpc/Makefile > +++ b/arch/powerpc/Makefile > @@ -112,6 +112,9 @@ KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION) > KBUILD_ARFLAGS += --target=elf$(BITS)-$(GNUTARGET) > endif > > +cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard=tls > +cflags-$(CONFIG_STACKPROTECTOR) += -mstack-protector-guard-reg=r2 > + > LDFLAGS_vmlinux-y := -Bstatic > LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie > LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y) > @@ -404,6 +407,13 @@ archclean: > > archprepare: checkbin > > +ifdef CONFIG_STACKPROTECTOR > +prepare: stack_protector_prepare > + > +stack_protector_prepare: prepare0 > + $(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h)) > +endif > + This breaks when building out-of-tree kernel modules. GCC is not getting passed the -mstack-protector-guard-offset argument, so the default offset is used. The kernel then panics the first time a function with stack protector is called. I'm seeing this on powerpc64. It looks like it was reported for powerpc on kernel bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201891 Linux 4.20 does not have a "prepare" target when KBUILD_EXTMOD is set. One is added by: commit e07db28eea38ed4e332b3a89f3995c86b713cb5b Author: Masahiro Yamada Date: Thu Nov 22 08:11:54 2018 +0900 kbuild: fix single target build for external module However, after cherry-picking that patch, the build fails because it's missing prepare0. I applied the patch below and I successfully built an out-of-tree module with CONFIG_STACKPROTECTOR=y. diff --git a/Makefile b/Makefile index 826826553085..f0a93e1ba1b6 100644 --- a/Makefile +++ b/Makefile @@ -1596,9 +1596,10 @@ help: @echo '' # Dummies... -PHONY += prepare scripts -prepare: +PHONY += prepare prepare0 scripts +prepare: prepare0 $(cmd_crmodverdir) +prepare0: ; scripts: ; endif # KBUILD_EXTMOD The context has been changed some in later patches, but I think a change like this one should go into 5.0, and it e07db28eea38 should go into 4.20.y. Thanks, Samuel