Bug#890716: marked as done (xfsprogs: FTBFS with glibc 2.27: error: conflicting types for 'copy_file_range')

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Your message dated Mon, 25 Jan 2021 22:20:01 +0100
with message-id <312cb50d-30d2-4df3-b21b-92ca41807a9a@xxxxxxxxxxx>
and subject line xfsprogs: FTBFS with glibc 2.27: error: conflicting types for 'copy_file_range'
has caused the Debian Bug report #890716,
regarding xfsprogs: FTBFS with glibc 2.27: error: conflicting types for 'copy_file_range'
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@xxxxxxxxxxxxxxx
immediately.)


-- 
890716: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890716
Debian Bug Tracking System
Contact owner@xxxxxxxxxxxxxxx with problems
--- Begin Message ---
Source: xfsprogs
Version: 4.9.0+nmu1
Severity: important
Tags: upstream patch
User: debian-glibc@xxxxxxxxxxxxxxxx
Usertags: 2.27

xfsprogs 4.9.0+nmu1 fails to build with glibc 2.27 (2.27-0experimental0 from
experimental):

|     [CC]     copy_file_range.o
| copy_file_range.c:46:1: error: conflicting types for 'copy_file_range'
|  copy_file_range(int fd, loff_t *src, loff_t *dst, size_t len)
|  ^~~~~~~~~~~~~~~
| In file included from ../include/platform_defs.h:33:0,
|                  from ../include/project.h:21,
|                  from ../include/input.h:24,
|                  from copy_file_range.c:23:
| /usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
|  ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
|          ^~~~~~~~~~~~~~~
| ../include/buildrules:59: recipe for target 'copy_file_range.o' failed
| make[3]: *** [copy_file_range.o] Error 1
| include/buildrules:35: recipe for target 'io' failed
| make[2]: *** [io] Error 2
| Makefile:74: recipe for target 'default' failed
| make[1]: *** [default] Error 2
| make[1]: Leaving directory '/<<BUILDDIR>>/xfsprogs-4.9.0+nmu1'
| debian/rules:30: recipe for target 'built' failed
| make: *** [built] Error 2
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

A full build logs is available there:
http://aws-logs.debian.net/2018/02/07/glibc-exp/xfsprogs_4.9.0+nmu1_unstable_glibc-exp.log


glibc 2.27 added support for copy_file_range. Unfortunately xfsprogs
also have such a function to wrap the corresponding syscall.

The problem has been fixed in upstream commit 8041435d. I have
backported it and attached it as a patch to this bug.
diff -Nru xfsprogs-4.9.0+nmu1/io/copy_file_range.c xfsprogs-4.9.0+nmu2/io/copy_file_range.c
--- xfsprogs-4.9.0+nmu1/io/copy_file_range.c
+++ xfsprogs-4.9.0+nmu2/io/copy_file_range.c
@@ -42,8 +42,12 @@
 "));
 }
 
+/*
+ * Issue a raw copy_file_range syscall; for our test program we don't want the
+ * glibc buffered copy fallback.
+ */
 static loff_t
-copy_file_range(int fd, loff_t *src, loff_t *dst, size_t len)
+copy_file_range_cmd(int fd, loff_t *src, loff_t *dst, size_t len)
 {
 	loff_t ret;
 
@@ -127,7 +131,7 @@
 		copy_dst_truncate();
 	}
 
-	ret = copy_file_range(fd, &src, &dst, len);
+	ret = copy_file_range_cmd(fd, &src, &dst, len);
 	close(fd);
 	return ret;
 }

--- End Message ---
--- Begin Message --- The problem is fixed in all versions in the archive that have glibc >= 2.27, which are buster, bullseye, and sid.
--- End Message ---

[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux