From patchwork Wed Nov 9 04:34:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 9418469 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1D1A76048E for ; Wed, 9 Nov 2016 04:34:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0316729103 for ; Wed, 9 Nov 2016 04:34:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E94C729108; Wed, 9 Nov 2016 04:34:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0A78429103 for ; Wed, 9 Nov 2016 04:34:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751800AbcKIEeU (ORCPT ); Tue, 8 Nov 2016 23:34:20 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:36681 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751783AbcKIEeT (ORCPT ); Tue, 8 Nov 2016 23:34:19 -0500 Received: by mail-pf0-f193.google.com with SMTP id n85so22014517pfi.3 for ; Tue, 08 Nov 2016 20:34:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IpntQPeLwYUScaPxARVnt8uEv24yu5hESXpQn6ZL18Y=; b=oduGXVfUvQCaufvDTTPIiizDmOq3Y6vL3QL11HTNfHSwmjKx/FAJ4TrqmDYSNw/Wu5 Y0qCiGjIg9OacQUmzhIAsXub8+kYdqOkcpWRcI38fmiWajNHD1mFAh4uTT8xh0YJygXs sECm4uyPdOJhihz1mH3rlpwe8xxmRn2lKl7/MGGHXCenaRCbTUIemaMT2k/ndcfqZo+5 IeXH+srOyYpwMjSj3zJrd35SJNidIC8g+UlCb1wVHR7/dODpeN1F7omOi4XTflm8Pn/K O3PXPzRIc2XdsdNeZ1KMUHMbXq3ZD8mAdQ3AQSZPmRnxY18NkDl0BTTEc+sqidbEoYqK Z/EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IpntQPeLwYUScaPxARVnt8uEv24yu5hESXpQn6ZL18Y=; b=X8XDgifAjfVt9vRxXbOAaaxLh/kmnjV2csbZL1O6w0jtW6qbyLO7MrTLTAUFiCg54X BlvF1JBwlQ6L3v2Ruy/Uk0IMZ5RXdqesoiGWtITvXK7j+js+nuGx/Aflt/FkOPco9j0n tOLiBd2SxkX5Dth+dahlm0DtZdLCAS2c9iMygeRVhZIefPUOUHI3tI7Nmw+QMv2UbSOD UOmUlPzwnxoYfFhtwzDPjiaIiiPmf8wqDKVIwYCIK8WMsAhZlok+tlevW8SdVIfvH3DZ Ml3R2pK6VVdwCVPikChbzqhLEwOOe6jsbZC0MFjSdALi3jZje1+v5n1RsIRoe9SMgfhN A4Zg== X-Gm-Message-State: ABUngvd5DBs+VlS4MBql5jPDhE3EmqV3D5lS0wid6Ig03sDNQdKbFT2qNkKul25KZfUKlA== X-Received: by 10.98.7.83 with SMTP id b80mr29595984pfd.79.1478666059000; Tue, 08 Nov 2016 20:34:19 -0800 (PST) Received: from roar.au.ibm.com ([122.99.82.10]) by smtp.gmail.com with ESMTPSA id yk6sm51598153pab.43.2016.11.08.20.34.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Nov 2016 20:34:18 -0800 (PST) From: Nicholas Piggin To: Michal Marek Cc: Nicholas Piggin , =?UTF-8?q?Philip=20M=C3=BCller?= , Adam Borowski , linux-kbuild@vger.kernel.org Subject: [PATCH] kbuild: be more careful about matching preprocessed asm ___EXPORT_SYMBOL Date: Wed, 9 Nov 2016 15:34:05 +1100 Message-Id: <20161109043405.16344-1-npiggin@gmail.com> X-Mailer: git-send-email 2.10.2 MIME-Version: 1.0 Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The CRC code for asm exports grabs the preprocessed asm, finds the ___EXPORT_SYMBOL and turns those into EXPORT_SYMBOL in a C program that can be preprocessed and parsed to create the CRC signatures from the type. The existing regex matching and replacement is too strict, and doesn't deal well with whitespace among other things. The line " EXPORT_SYMBOL(sym)" in a .S file would not match due to initial whitespace, for example, which resulted in x86's ___preempt_schedule failing to get CRCs. Reported-by: Philip Müller Signed-off-by: Nicholas Piggin --- scripts/Makefile.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 3e223c2..7675d11 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -332,8 +332,8 @@ cmd_gensymtypes_S = \ (echo "\#include " ; \ echo "\#include " ; \ $(CPP) $(a_flags) $< | \ - grep ^___EXPORT_SYMBOL | \ - sed 's/___EXPORT_SYMBOL \([a-zA-Z0-9_]*\),.*/EXPORT_SYMBOL(\1);/' ) | \ + grep "\<___EXPORT_SYMBOL\>" | \ + sed 's/.*___EXPORT_SYMBOL[[:space:]]*\([a-zA-Z0-9_]*\)[[:space:]]*,.*/EXPORT_SYMBOL(\1);/' ) | \ $(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \ $(GENKSYMS) $(if $(1), -T $(2)) \ $(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \