]> git.pld-linux.org Git - packages/collectd.git/commitdiff
hack for mount.h conflict between linux and glibc headers
authorJan Palus <atler@pld-linux.org>
Tue, 23 Aug 2022 11:18:59 +0000 (13:18 +0200)
committerJan Palus <atler@pld-linux.org>
Tue, 23 Aug 2022 11:18:59 +0000 (13:18 +0200)
glibc 2.36 introduced new symbols to <sys/mount.h> that conflict with
<linux/mount.h> resulting in failure when both are included:

In file included from /usr/include/linux/fs.h:19,
                 from /usr/include/xfs/linux.h:36,
                 from /usr/include/xfs/xfs.h:9,
                 from /usr/include/xfs/xqm.h:9,
                 from src/utils/mount/mount.c:34:
/usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command'
   95 | enum fsconfig_command {
      |      ^~~~~~~~~~~~~~~~
In file included from ./src/utils/mount/mount.h:57,
                 from src/utils/mount/mount.c:31:
/usr/include/sys/mount.h:189:6: note: originally defined here
  189 | enum fsconfig_command
      |      ^~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:96:9: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG'
   96 |         FSCONFIG_SET_FLAG       = 0,    /* Set parameter, supplying no value */
      |         ^~~~~~~~~~~~~~~~~
/usr/include/sys/mount.h:191:3: note: previous definition of 'FSCONFIG_SET_FLAG' with type 'enum fsconfig_command'
  191 |   FSCONFIG_SET_FLAG       = 0,    /* Set parameter, supplying no value */
      |   ^~~~~~~~~~~~~~~~~
...

since <linux/mount.h> is included transitively try not to include
<sys/mount.h> if glibc >= 2.36 is detected.

collectd.spec
glibc-2.36.patch [new file with mode: 0644]

index 8a23d9936e592893e3a5cedb6e333dba5834de5a..a84f905a8795d788eeee69c3a392bb610686e30e 100644 (file)
@@ -202,6 +202,7 @@ Source5:    %{name}-apache.conf
 Source10:      %{name}-df.conf
 Source11:      %{name}-rrdtool.conf
 Patch0:                %{name}-collection.patch
+Patch1:                glibc-2.36.patch
 Patch2:                noquote.patch
 URL:           http://collectd.org/
 %{?with_ipmi:BuildRequires:    OpenIPMI-devel >= 2.0.14-3}
@@ -1370,6 +1371,7 @@ Perl files from Collectd package
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 %patch2 -p1
 
 %build
diff --git a/glibc-2.36.patch b/glibc-2.36.patch
new file mode 100644 (file)
index 0000000..17a3218
--- /dev/null
@@ -0,0 +1,14 @@
+--- collectd-5.9.2/src/utils/mount/mount.h.orig        2019-10-01 14:00:47.000000000 +0200
++++ collectd-5.9.2/src/utils/mount/mount.h     2022-08-23 13:13:10.904711606 +0200
+@@ -54,7 +54,11 @@
+ #include <sys/mnttab.h>
+ #endif
+ #if HAVE_SYS_MOUNT_H
++#if !defined(__GLIBC__) || (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 36)
+ #include <sys/mount.h>
++#else
++#include <linux/mount.h>
++#endif
+ #endif
+ #if HAVE_SYS_STATFS_H
+ #include <sys/statfs.h>
This page took 0.103827 seconds and 4 git commands to generate.