From 99e4b132c271774580bfded4ab21ccc48fb2f012 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 6 Mar 2018 12:32:06 +0100 Subject: [PATCH] fix build failure with glibc-2.25+ ../../../gl/lib/mountlist.c: In function 'read_file_system_list': ../../../gl/lib/mountlist.c:532:26: warning: implicit declaration of function 'makedev' [-Wimplicit-function-declaration] me->me_dev = makedev (devmaj, devmin); ^~~~~~~ [...] gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -mcet -fcf-protection -D__SUPPORT_SNAN__ -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o find ftsfind.o ./libfindtools.a ../lib/libfind.a ../gl/lib/libgnulib.a -lselinux -lm -lm ../gl/lib/libgnulib.a(mountlist.o): In function `read_file_system_list': /home/kdudka/fedora/findutils/findutils-4.6.0/build/gl/lib/../../../gl/lib/mountlist.c:532: undefined reference to `makedev' collect2: error: ld returned 1 exit status --- findutils-4.6.0-gnulib-makedev.patch | 80 ++++++++++++++++++++++++++++ findutils.spec | 3 ++ 2 files changed, 83 insertions(+) create mode 100644 findutils-4.6.0-gnulib-makedev.patch diff --git a/findutils-4.6.0-gnulib-makedev.patch b/findutils-4.6.0-gnulib-makedev.patch new file mode 100644 index 0000000..5ed4b48 --- /dev/null +++ b/findutils-4.6.0-gnulib-makedev.patch @@ -0,0 +1,80 @@ +From 80628047a6cc83f82e0c410a82b8f7facd9d50f2 Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Wed, 14 Sep 2016 19:21:42 -0500 +Subject: [PATCH] mountlist: include sysmacros.h for glibc + +On Fedora rawhide (glibc 2.25), './gnulib-tool --test mountlist' +reports: +../../gllib/mountlist.c: In function 'read_file_system_list': +../../gllib/mountlist.c:534:13: warning: '__makedev_from_sys_types' is deprecated: + In the GNU C Library, `makedev' is defined by . + For historical compatibility, it is currently defined by + as well, but we plan to remove this soon. + To use `makedev', include directly. + If you did not intend to use a system-defined macro `makedev', + you should #undef it after including . + [-Wdeprecated-declarations] + me->me_dev = makedev (devmaj, devmin); + ^~ +In file included from /usr/include/features.h:397:0, + from /usr/include/sys/types.h:25, + from ./sys/types.h:28, + from ../../gllib/mountlist.h:23, + from ../../gllib/mountlist.c:20: +/usr/include/sys/sysmacros.h:89:1: note: declared here + __SYSMACROS_DEFINE_MAKEDEV (__SYSMACROS_FST_IMPL_TEMPL) + ^ + +Fix it by including the right headers. We also need a fix to +autoconf's AC_HEADER_MAJOR, but that's a separate patch. + +* m4/mountlist.m4 (gl_PREREQ_MOUTLIST_EXTRA): Include +AC_HEADER_MAJOR. +* lib/mountlist.c (includes): Use correct headers. + +Signed-off-by: Eric Blake + +Upstream-commit: 4da63c5881f60f71999a943612da9112232b9161 +Signed-off-by: Kamil Dudka +--- + gl/lib/mountlist.c | 6 ++++++ + gl/m4/mountlist.m4 | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/gl/lib/mountlist.c b/gl/lib/mountlist.c +index c3d2852..0b6f92e 100644 +--- a/gl/lib/mountlist.c ++++ b/gl/lib/mountlist.c +@@ -37,6 +37,12 @@ + # include + #endif + ++#if MAJOR_IN_MKDEV ++# include ++#elif MAJOR_IN_SYSMACROS ++# include ++#endif ++ + #if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */ + # if HAVE_SYS_UCRED_H + # include /* needed on OSF V4.0 for definition of NGROUPS, +diff --git a/gl/m4/mountlist.m4 b/gl/m4/mountlist.m4 +index ec58dc8..82b2dcb 100644 +--- a/gl/m4/mountlist.m4 ++++ b/gl/m4/mountlist.m4 +@@ -1,4 +1,4 @@ +-# serial 11 ++# serial 12 + dnl Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -15,5 +15,6 @@ AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA], + [ + dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h. + AC_CHECK_HEADERS([sys/mntent.h]) ++ AC_HEADER_MAJOR()dnl for use of makedev () + gl_FSTYPENAME + ]) +-- +2.16.2 + diff --git a/findutils.spec b/findutils.spec index d58d263..a2ec894 100644 --- a/findutils.spec +++ b/findutils.spec @@ -31,6 +31,9 @@ Patch5: findutils-4.6.0-man-exec.patch # make sure that find -exec + passes all arguments (upstream bug #48030) Patch6: findutils-4.6.0-exec-args.patch +# fix build failure with glibc-2.25+ +Patch7: findutils-4.6.0-gnulib-makedev.patch + # avoid SIGSEGV in case the internal -noop option is used (#1346471) Patch9: findutils-4.6.0-internal-noop.patch