summaryrefslogtreecommitdiffstats
path: root/package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch
diff options
context:
space:
mode:
authorPeter Korsgaard <peter@korsgaard.com>2018-09-07 13:08:31 +0200
committerPeter Korsgaard <peter@korsgaard.com>2018-09-07 13:13:17 +0200
commit721e4cbb529d247c9c1ebef68275e70a3086ae0b (patch)
tree2967ef4e10e2592661f664df4515d67dbc80cfe5 /package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch
parent89920e9735cb561dccf1e1f81d35788fd10a655b (diff)
parentcec266ee1f708f11cc679cb4f81613fa4186003c (diff)
downloadbuildroot-721e4cbb529d247c9c1ebef68275e70a3086ae0b.tar.gz
buildroot-721e4cbb529d247c9c1ebef68275e70a3086ae0b.zip
Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch')
-rw-r--r--package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch b/package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch
new file mode 100644
index 0000000000..70c35c66e2
--- /dev/null
+++ b/package/systemd/0004-meson-unify-linux-stat.h-check-with-other-checks-and.patch
@@ -0,0 +1,77 @@
+From 17bd864a04a0583cfb343c5621b591bdd76d79ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Wed, 18 Jul 2018 17:26:17 +0200
+Subject: [PATCH] meson: unify linux/stat.h check with other checks and use
+ _GNU_SOURCE
+
+Using _GNU_SOURCE is better because that's how we include the headers in the
+actual build, and some headers define different stuff when it is defined.
+sys/stat.h for example defines 'struct statx' conditionally.
+
+(cherry picked from commit 9c869d08d82c73f62ab3527567858ce4b0cf1257)
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ meson.build | 20 ++++++++++++++------
+ src/basic/missing.h | 2 +-
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index a0e724070..5dcabdc6c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -421,11 +421,9 @@ decl_headers = '''
+ #include <uchar.h>
+ #include <linux/ethtool.h>
+ #include <linux/fib_rules.h>
+-#include <linux/stat.h>
+ #include <sys/stat.h>
+ '''
+ # FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
+-# FIXME: these should use -D_GNU_SOURCE, since that is defined at build time
+
+ foreach decl : ['char16_t',
+ 'char32_t',
+@@ -436,13 +434,23 @@ foreach decl : ['char16_t',
+ ]
+
+ # We get -1 if the size cannot be determined
+- have = cc.sizeof(decl, prefix : decl_headers) > 0
++ have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
++
++ if decl == 'struct statx'
++ if have
++ want_linux_stat_h = false
++ else
++ have = cc.sizeof(decl,
++ prefix : decl_headers + '#include <linux/stat.h>',
++ args : '-D_GNU_SOURCE') > 0
++ want_linux_stat_h = have
++ endif
++ endif
++
+ conf.set10('HAVE_' + decl.underscorify().to_upper(), have)
+ endforeach
+
+-conf.set10('HAVE_STRUCT_STATX_IN_SYS_STAT_H', cc.sizeof('struct statx', prefix : '''
+-#include <sys/stat.h>
+-''', args : '-D_GNU_SOURCE') > 0)
++conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
+
+ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
+ ['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
+diff --git a/src/basic/missing.h b/src/basic/missing.h
+index 14ad3d491..9044683b1 100644
+--- a/src/basic/missing.h
++++ b/src/basic/missing.h
+@@ -24,7 +24,7 @@
+ #include <uchar.h>
+ #include <unistd.h>
+
+-#if !HAVE_STRUCT_STATX_IN_SYS_STAT_H
++#if WANT_LINUX_STAT_H
+ #include <linux/stat.h>
+ #endif
+
+--
+2.14.4
+
OpenPOWER on IntegriCloud