This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch] Microblaze: Port of Linux gdbserver


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]