Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp209765imm; Fri, 5 Oct 2018 02:27:34 -0700 (PDT) X-Google-Smtp-Source: ACcGV60uj2hWh/2RukzDGK5xb/5mirZNP/pK6oXvlC/4Di4KmCTmZGlsnsVwh2RyvlLvdmM8YEec X-Received: by 2002:a63:4952:: with SMTP id y18-v6mr9397844pgk.32.1538731654802; Fri, 05 Oct 2018 02:27:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538731654; cv=none; d=google.com; s=arc-20160816; b=uY6K/SloQQ3S0HLovpF1ju5Pd7sPizOTP80y/+b3pKPJuLEDFzGoKfSp8Zz6B2g5A7 9oujn73rUcYrGjLuMHmsqN5ZgMb5zjWuB7cqiIW6sJpiqAcEQdXaf8AAPhUKw/X7gaZH 4iYMS6DkOEhditRn2fVhjVtljbYtOh77YsByITi60nmHNfwYvinzT7+mFXaEs66K6AQe Hjd4KlwsdEBK24+SEJ+yy4KbuLh4HNtJuxoEG6HzZc0hogYplWV79kExVvJIt1Xs8SRy m4cRslDyjc4IwaBTLGBkruRwQczj190ncHkKK4R/Iz0Vz6LNdjb+FfC5Er5kCmBC0o+i cGUw== 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:organization:from:references:cc:to:subject:reply-to :dkim-signature; bh=ObXgw73eSwKT8tdT+Jbc/zMREQmC3KRUfq92JtqcdDg=; b=CAhKCEdFOnIJPGNLDEUrqmIiLDVnSG6CApXxOLKenMpKivH4LVuodd8itjW8gDIdGm VllALkhLxLD87RsGOk0e+6k2vKpA/bqNJEuJVgTDtTYuQ/U1o6lLBsk9GnZwMXYESdnT GU326Hs0zjyOTTJPg71zV+AkC9BOsJa8JlZrkwGEGoP+uLMuQkn+5YTB4imXuJLQfmAE KJH0voy2cYCuHim6YZAZ5hbu8ZrT416bQp/gG2mirDfx2/PM/r1aH8U4ZtqoTVD9au/5 SVbwfy8sivISSbj9rYAzDGt8ejFXuqxc9aSmF5E3XrWPeBoXzGPQjZ3m40QR3zohjUut V3Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=QeXvx906; 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 a9-v6si8150556pfe.29.2018.10.05.02.27.17; Fri, 05 Oct 2018 02:27:34 -0700 (PDT) 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 (test mode) header.i=@ideasonboard.com header.s=mail header.b=QeXvx906; 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 S1728666AbeJEQZF (ORCPT + 99 others); Fri, 5 Oct 2018 12:25:05 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:47712 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727809AbeJEQZF (ORCPT ); Fri, 5 Oct 2018 12:25:05 -0400 Received: from [192.168.0.21] (cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0E8FB19E6; Fri, 5 Oct 2018 11:27:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1538731629; bh=lu2GSoBJRMytTGh30rW+64ufgUKMR+Mgyc9gMqAXliY=; h=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From; b=QeXvx90656pLyOSMte7rQ+vbYQbTzJ2irnJRsh8HA3uN7E5WuantybMdyGACNUPzo UCGAhWwNjHXFZoxPeAXnk//wmBjAs+JbShI/iC51VUy2FDSb6eebe5vdo50JPVrKJJ IyPOrXC8SLmNbEkHzvmyrt3Aycw57u2dsHwZbkME= Reply-To: kieran.bingham+renesas@ideasonboard.com Subject: Re: [PATCH] kbuild: fix kernel/bounds.c 'W=1' warning To: Arnd Bergmann , David Laight Cc: Andrew Morton , Linux-Renesas , "# 3.4.x" , Linux Kernel Mailing List , Linux Kbuild mailing list , Masahiro Yamada References: <20180921142234.16882-1-kieran.bingham+renesas@ideasonboard.com> <20181005083313.2088252-1-arnd@arndb.de> <08b190b9dabd4625ae3d636b88b43ccb@AcuMS.aculab.com> From: Kieran Bingham Organization: Ideas on Board Message-ID: <56169e56-2cbd-dc70-e324-44f8e511a1e7@ideasonboard.com> Date: Fri, 5 Oct 2018 10:27:06 +0100 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: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/10/18 10:07, Arnd Bergmann wrote: > On Fri, Oct 5, 2018 at 10:52 AM David Laight wrote: >> >> From: Arnd Bergmann >>> Sent: 05 October 2018 09:33 >>> >>> Building any configuration with 'make W=1' produces a warning: >>> >>> kernel/bounds.c:16:6: warnign: no previous prototype for 'foo' [-Wmissing-prototypes] >>> >>> When also passing -Werror, this prevents us from building any >>> other files. Nobody ever calls the function, but we can't make >>> it 'static' either since we want the compiler output. >>> >>> Calling it 'main' instead however avoids the warning, because gcc >>> does not insist on having a declaration for main. >> >> Ugg. >> main() might be special in other ways too. >> It wouldn't surprise me if some linkers don't do special stuff for it. I worried about this but didn't think it would be too much of an issue. But perhaps we should check... as bounds.s.foo and bounds.s.main: diff -Nurp bounds.s.* --- bounds.s.foo 2018-10-05 10:20:53.269941404 +0100 +++ bounds.s.main 2018-10-05 10:20:31.375891260 +0100 @@ -108,11 +108,12 @@ .global _mcount #NO_APP + .section .text.startup,"ax",@progbits .align 2 .p2align 3,,7 - .global foo - .type foo, %function -foo: + .global main + .type main, %function +main: stp x29, x30, [sp, -16]! //,,, add x29, sp, 0 //,, // /home/linuxembedded/iob/renesas/vsp1/sources/linux/kernel/bounds.c:17: { @@ -139,10 +140,11 @@ foo: .ascii "->SPINLOCK_SIZE 56 sizeof(spinlock_t)" // // 0 "" 2 -// /home/linuxembedded/iob/renesas/vsp1/sources/linux/kernel/bounds.c:26: } +// /home/linuxembedded/iob/renesas/vsp1/sources/linux/kernel/bounds.c:28: } #NO_APP + mov w0, 0 //, ldp x29, x30, [sp], 16 //,,, ret - .size foo, .-foo + .size main, .-main .ident "GCC: (Ubuntu/Linaro 7.3.0-16ubuntu3) 7.3.0" .section .note.GNU-stack,"",@progbits compiled with aarch64-linux-gnu-gcc, and with no debug enabled. Other than the entry point rename (and section name) and the return value being added, I can't see anything problematic here. And as far as I know - this file gets processed after to extract definitions which should be independent. This file is not executed or further compiled as far as I am aware. -- Kieran >> >> What is wrong with just putting and extra "void foo(void);" before >> the function? > > Greg objected to that on the basis that we don't want declarations > in .c files -- they should be in a shared header: > > https://lkml.org/lkml/2018/9/21/735 > > I don't see what could go wrong here with calling it main(), after > all we are just interested in the assembler output, not even > creating an object file. > > Arnd >