mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Linux: Fix __glibc_has_include use for <sys/stat.h> and statx
The identifier linux is used as a predefined macro, so the actually used path is 1/stat.h or 1/stat64.h. Using the quote-based version triggers a file lookup for /usr/include/bits/linux/stat.h (or whatever directory is used to store bits/statx.h), but since bits/ is pretty much reserved by glibc, this appears to be acceptable. This is related to GCC PR 80005: incorrect macro expansion of the argument of __has_include. Suggested by Zack Weinberg. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
parent
8d141877e0
commit
48c3c12389
@ -1,3 +1,8 @@
|
||||
2019-06-14 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/bits/statx.h: Use string literal in
|
||||
argument to __glibc_has_include to inhibit macro expansion.
|
||||
|
||||
2019-06-14 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* misc/sys/cdefs.h (__glibc_has_include): Do not use a
|
||||
|
@ -23,8 +23,11 @@
|
||||
#endif
|
||||
|
||||
/* Use the Linux kernel header if available. */
|
||||
#if __glibc_has_include (<linux/stat.h>)
|
||||
# include <linux/stat.h>
|
||||
|
||||
/* Use "" to work around incorrect macro expansion of the
|
||||
__has_include argument (GCC PR 80005). */
|
||||
#if __glibc_has_include ("linux/stat.h")
|
||||
# include "linux/stat.h"
|
||||
# ifdef STATX_TYPE
|
||||
# define __statx_timestamp_defined 1
|
||||
# define __statx_defined 1
|
||||
|
Loading…
Reference in New Issue
Block a user