| Fix building on x86 when older linux headers lack __NR_fallocate define. |
| |
| URL: http://bugs.gentoo.org/274269 |
| Reported-by: Mikael Magnusson <mikachu@gmail.com> |
| |
| 2009-11-09 Mike Frysinger <vapier@gentoo.org> |
| |
| * sysdeps/unix/sysv/linux/i386/fallocate.c: Include errno.h. |
| (fallocate): Return ENOSYS if __NR_fallocate is not defined. |
| * sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise. |
| |
| diff -durN glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/fallocate.c glibc-2.10.1/sysdeps/unix/sysv/linux/i386/fallocate.c |
| --- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/fallocate.c 2009-03-02 17:11:06.000000000 +0100 |
| +++ glibc-2.10.1/sysdeps/unix/sysv/linux/i386/fallocate.c 2009-11-13 00:49:47.000000000 +0100 |
| @@ -16,6 +16,7 @@ |
| Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
| 02111-1307 USA. */ |
| |
| +#include <errno.h> |
| #include <fcntl.h> |
| #include <sysdep.h> |
| |
| @@ -28,5 +29,10 @@ |
| int |
| fallocate (int fd, int mode, __off_t offset, __off_t len) |
| { |
| +#ifdef __NR_fallocate |
| return __call_fallocate (fd, mode, offset, len); |
| +#else |
| + __set_errno (ENOSYS); |
| + return -1; |
| +#endif |
| } |
| diff -durN glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/fallocate64.c glibc-2.10.1/sysdeps/unix/sysv/linux/i386/fallocate64.c |
| --- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/fallocate64.c 2009-03-02 17:10:29.000000000 +0100 |
| +++ glibc-2.10.1/sysdeps/unix/sysv/linux/i386/fallocate64.c 2009-11-13 00:49:47.000000000 +0100 |
| @@ -16,6 +16,7 @@ |
| Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
| 02111-1307 USA. */ |
| |
| +#include <errno.h> |
| #include <fcntl.h> |
| #include <sysdep.h> |
| |
| @@ -28,5 +29,10 @@ |
| int |
| __fallocate64_l64 (int fd, int mode, __off64_t offset, __off64_t len) |
| { |
| +#ifdef __NR_fallocate |
| return __call_fallocate (fd, mode, offset, len); |
| +#else |
| + __set_errno (ENOSYS); |
| + return -1; |
| +#endif |
| } |