summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2018-07-15 22:43:35 -0700
committerSven Eden <sven.eden@prydeworx.com>2018-10-29 10:18:21 +0100
commite644f2ca294b161b65b95d924aa35d2ffcb28abe (patch)
treeb248ba00aee47bba8c469f0cc72ccd9ad9bc6615 /src/basic
parent2e2fcdca834119eaf45336a959327d94e989b29e (diff)
build-sys: Detect whether struct statx is defined in sys/stat.h
Starting with glibc 2.27.9000-36.fc29, include file sys/stat.h will have a definition for struct statx, in which case include file linux/stat.h should be avoided, in order to prevent a duplicate definition. In file included from ../src/basic/missing.h:18, from ../src/basic/util.h:28, from ../src/basic/hashmap.h:10, from ../src/shared/bus-util.h:12, from ../src/libsystemd/sd-bus/bus-creds.c:11: /usr/include/linux/stat.h:99:8: error: redefinition of ‘struct statx’ struct statx { ^~~~~ In file included from /usr/include/sys/stat.h:446, from ../src/basic/util.h:19, from ../src/basic/hashmap.h:10, from ../src/shared/bus-util.h:12, from ../src/libsystemd/sd-bus/bus-creds.c:11: /usr/include/bits/statx.h:36:8: note: originally defined here struct statx ^~~~~ Extend our meson.build to look for struct statx when only sys/stat.h is included and, in that case, do not include linux/stat.h anymore. Tested that systemd builds correctly when using a glibc version that includes a definition for struct statx. glibc Fedora RPM update: https://src.fedoraproject.org/rpms/glibc/c/28cb5d31fc1e5887912283c889689c47076278ae glibc upstream commit: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fd70af45528d59a00eb3190ef6706cb299488fcd (cherry picked from commit 75720bff62a84896e9a0654afc7cf9408cf89a38)
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/missing.h2
-rw-r--r--src/basic/xattr-util.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/basic/missing.h b/src/basic/missing.h
index fb1478548..eddbb275e 100644
--- a/src/basic/missing.h
+++ b/src/basic/missing.h
@@ -27,6 +27,8 @@
/// Additional includes needed by elogind
#include "musl_missing.h"
+#if !HAVE_STRUCT_STATX_IN_SYS_STAT_H
+#endif
#if HAVE_AUDIT
#include <libaudit.h>
diff --git a/src/basic/xattr-util.c b/src/basic/xattr-util.c
index a9ec8e106..d3d0194c4 100644
--- a/src/basic/xattr-util.c
+++ b/src/basic/xattr-util.c
@@ -2,7 +2,6 @@
#include <errno.h>
#include <fcntl.h>
-//#include <linux/stat.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>