Re: [PATCH v2 1/6] Bypass GCC attributes on NonStop platform where used.
- From
Stefan Beller <sbeller@google.com>
- Date
- Jan 19, 2018, 19:25 UTC
- Message-ID
- <CAGZ79kY4HzL8ed23RmoCU0izjsRKsZ0Mkzcmpm3+ugu7qZtcLA@mail.gmail.com>
- In-Reply-To
- <20180119173406.13324-3-randall.s.becker@rogers.com>
On Fri, Jan 19, 2018 at 9:34 AM, <randall.s.becker@rogers.com> wrote:
Show 6 quoted lines
> From: "Randall S. Becker" <rsbecker@nexbridge.com> > > * remote.c: force ignoring of GCC __attribute construct not supported > by c99 by defining it as an empty CPP macro. > > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
I do not know about the __TANDEM symbol, but some research[1] indicates it is a macro specifically for case of cross platform support:
You can use the __TANDEM symbol to increase the portability
of your programs. Enclose system-dependent source text in an
if section that uses #ifdef or #ifndef to test for the existence of the
__TANDEM symbol.It seems to not be used outside of the NonStop port[2], so the code seems ok. (I would have used #ifdef, as I thought this is more prevalent in our code base and for consistency we'd rather want to use one thing only, bug "git grep '#if defined'" proves me wrong)
However the commit message is hard to understand (say for somebody who will find this commit in 2 years using git-blame).
Maybe:
In NonStop HPE (version X, all versions?) there is no support for the
__attribute macro. By redefining the __attribute to an empty macro, the
code compiles on NonStop HPE. Use the system specific __TANDEM
macro to guard it for just this platform.as that will help those people in the future not having to do the research?
[1] http://h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c02121175-1.pdf [2] https://sourceforge.net/p/predef/wiki/OperatingSystems/?version=44
Thanks, Stefan
Show 22 quoted lines
> ---
> remote.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/remote.c b/remote.c
> index 4e93753e1..c18f9de7f 100644
> --- a/remote.c
> +++ b/remote.c
> @@ -11,6 +11,10 @@
> #include "mergesort.h"
> #include "argv-array.h"
>
> +#if defined (__TANDEM)
> +#define __attribute(a)
> +#endif
> +
> enum map_direction { FROM_SRC, FROM_DST };
>
> static struct refspec s_tag_refspec = {
> --
> 2.16.0.31.gf1a482c
>