From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2659 invoked by alias); 14 Oct 2014 15:07:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 2589 invoked by uid 89); 14 Oct 2014 15:07:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-HELO: homiemail-a83.g.dreamhost.com Received: from sub5.mail.dreamhost.com (HELO homiemail-a83.g.dreamhost.com) (208.113.200.129) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 14 Oct 2014 15:07:07 +0000 Received: from homiemail-a83.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a83.g.dreamhost.com (Postfix) with ESMTP id A23885E078; Tue, 14 Oct 2014 08:07:05 -0700 (PDT) Received: from redwood.eagercon.com (c-24-7-16-38.hsd1.ca.comcast.net [24.7.16.38]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: eager@eagerm.com) by homiemail-a83.g.dreamhost.com (Postfix) with ESMTPSA id B18FD5E060; Tue, 14 Oct 2014 08:07:04 -0700 (PDT) Message-ID: <543D3C18.4050609@eagercon.com> Date: Tue, 14 Oct 2014 15:07:00 -0000 From: Michael Eager User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Ajit Kumar Agarwal , Pedro Alves , Joel Brobecker CC: "gdb-patches@sourceware.org" , Vinod Kathail , Vidhumouli Hunsigida , Nagaraju Mekala Subject: Re: [Patch] Microblaze: Port of Linux gdbserver References: <25de23b98e054fd291ea232d10f2800c@BN1BFFO11FD018.protection.gbl> <5436B7D0.9060004@eagercon.com> <54371D57.2030605@eagerm.com> <34ec0544f8114711a7ac5f9bccbfba99@BY2FFO11FD025.protection.gbl> <543C10AF.4000500@eagercon.com> <3181581db5964f6bae6b554a38a3ee7d@BN1BFFO11FD010.protection.gbl> In-Reply-To: <3181581db5964f6bae6b554a38a3ee7d@BN1BFFO11FD010.protection.gbl> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2014-10/txt/msg00350.txt.bz2 On 10/13/14 20:03, Ajit Kumar Agarwal wrote: > > > On 10/13/14 09:00, Ajit Kumar Agarwal wrote: >> > >>> +#define microblaze_breakpoint_len 4 >>> >>>>> Use CAPS for macros. >>> >>> The MIPS and the ARM gdbserver code does not use the CAPS for the above macro defined. >> >>> Let's follow the GNU coding standard, even if some other targets haven't. >> >> https://gcc.gnu.org/ml/gcc-patches/2000-09/msg00901.html >> https://gcc.gnu.org/ml/gcc-patches/2000-09/msg00912.html > >> To quote your first reference: > >> "I actually think it's a mistake to spell function-like macros in ALL_CAPS, precisely because that makes changing back-and-forth unduly disruptive." > >> To quote the second reference: > >> "ALL_CAPS in cases when it's important to be aware that it's a macro, but when we make "wrappers" for efficiency purposes where we basically want to >pretend it's a function,". > >> This is not a function-like macro. In this case, it is important to be aware that this is a macro, not a variable. > > The macro microblaze_breakpoint_len is initialized in the struct linux_target_ops the_low_target. This makes it as a wrapper and the above quote is valid. > Still the CAPS is required for the above macro? You clearly do not have any understanding of what a wrapper is. A wrapper macro is one which looks like a function and calls another function or macro, passing it some arguments. Please read a definition of "wrapper" or "function-like macro": http://programmers.stackexchange.com/questions/142069/using-macro-as-an-abstraction-layer https://gcc.gnu.org/onlinedocs/cpp/Function-like-Macros.html microblaze_breakpoint_len is not initialized in any struct or anywhere else. It is a preprocessor macro definition. In C, only variables can be initialized, and that cannot happen in a struct. microblaze_breakpoint_len is used in an initializer for an instance of struct linux_target_ops. In general, macro definitions like this one should be at the top of a file, not buried in the middle of the file. You appear to be unfamiliar with common terminology like wrapper, function- like macro, or initialize, or what can or cannot be done within a struct. I suggest you study C programming. There are a number of books on advanced C programming available online. > AGAIN, please follow the GNU Coding Standard. Please make sure when replying to email that you do not confuse your responses with the text you are responding to. I don't know how you are reading or submitting email, but just about every message is garbled. USE CAPS FOR MACROS. Is that clear enough? -- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077