This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] <sys/cdefs.h>: Inhibit macro expansion for __glibc_has_include
- From: Florian Weimer <fweimer at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 14 Jun 2019 16:09:41 +0200
- Subject: Re: [PATCH] <sys/cdefs.h>: Inhibit macro expansion for __glibc_has_include
- References: <87a7em6ben.fsf@oldenburg2.str.redhat.com>
* Florian Weimer:
> This is currently ineffective with GCC because of GC PR 80005, but
> it makes sense to anticipate a fix for this defect.
>
> Suggested by Zack Weinberg.
>
> 2019-06-12 Florian Weimer <fweimer@redhat.com>
>
> * misc/sys/cdefs.h (__glibc_has_include): Do not use a
> function-like macro, so that __has_include can inhibit expansion
> of its argument.
>
> diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
> index 638872b87b..ed146ce20b 100644
> --- a/misc/sys/cdefs.h
> +++ b/misc/sys/cdefs.h
> @@ -413,7 +413,7 @@
> #endif
>
> #ifdef __has_include
> -# define __glibc_has_include(header) __has_include (header)
> +# define __glibc_has_include __has_include
> #else
> # define __glibc_has_include(header) 0
> #endif
This is what I plan to commit shortly.
I don't want to mention the GCC PR in the public header because it will
be outdated soon (I hope).
Thanks,
Florian
<sys/cdefs.h>: Inhibit macro expansion for __glibc_has_include
This is currently ineffective with GCC because of GCC PR 80005, but
it makes sense to anticipate a fix for this defect.
Suggested by Zack Weinberg.
2019-06-14 Florian Weimer <fweimer@redhat.com>
* misc/sys/cdefs.h (__glibc_has_include): Do not use a
function-like macro, so that __has_include can inhibit expansion
of its argument.
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 638872b87b..f1bd994a10 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -413,7 +413,9 @@
#endif
#ifdef __has_include
-# define __glibc_has_include(header) __has_include (header)
+/* Do not use a function-like macro, so that __has_include can inhibit
+ macro expansion. */
+# define __glibc_has_include __has_include
#else
# define __glibc_has_include(header) 0
#endif