summaryrefslogtreecommitdiff
path: root/package/xenomai/xenomai-fix-lfs-issue.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/xenomai/xenomai-fix-lfs-issue.patch')
-rw-r--r--package/xenomai/xenomai-fix-lfs-issue.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/package/xenomai/xenomai-fix-lfs-issue.patch b/package/xenomai/xenomai-fix-lfs-issue.patch
new file mode 100644
index 000000000..157c8e25c
--- /dev/null
+++ b/package/xenomai/xenomai-fix-lfs-issue.patch
@@ -0,0 +1,72 @@
+From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
+Date: Sat, 5 Nov 2011 20:59:01 +0000 (+0100)
+Subject: posix: fix compilation for LFS
+X-Git-Url: http://git.xenomai.org/?p=xenomai-2.6.git;a=commitdiff_plain;h=06ae5c5e47fbfd9d8dbbe6fcf1a1db0c14bad9de;hp=8f6feff876029244dabc1257cdf13209fbd64fb5
+
+posix: fix compilation for LFS
+---
+
+diff --git a/include/posix/sys/mman.h b/include/posix/sys/mman.h
+index 455e565..a304755 100644
+--- a/include/posix/sys/mman.h
++++ b/include/posix/sys/mman.h
+@@ -63,17 +63,16 @@ int __real_shm_open(const char *name, int oflag, mode_t mode);
+
+ int __real_shm_unlink(const char *name);
+
+-#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
+ void *__real_mmap(void *addr,
+ size_t len,
+ int prot,
+ int flags,
+ int fildes,
+ long off);
+-#else
+-#define __real_mmap __real_mmap64
+-#endif
+-#ifdef _LARGEFILE64_SOURCE
++
++#if __WORDSIZE == 32
++#if defined(_LARGEFILE64_SOURCE) \
++ || defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+ void *__real_mmap64(void *addr,
+ size_t len,
+ int prot,
+@@ -82,6 +81,11 @@ void *__real_mmap64(void *addr,
+ long long off);
+ #endif
+
++#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
++#define __real_mmap __real_mmap64
++#endif
++#endif
++
+ int __real_munmap(void *addr, size_t len);
+
+ #ifdef __cplusplus
+diff --git a/include/posix/unistd.h b/include/posix/unistd.h
+index 49463a0..90cce86 100644
+--- a/include/posix/unistd.h
++++ b/include/posix/unistd.h
+@@ -54,13 +54,17 @@ int ftruncate(int fildes, off_t length);
+ extern "C" {
+ #endif
+
+-#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
+ int __real_ftruncate(int fildes, long length);
+-#else
++
++#if __WORDSIZE == 32
++#if defined(_LARGEFILE64_SOURCE) \
++ || defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
++int __real_ftruncate64(int fildes, long long length);
++#endif
++
++#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+ #define __real_ftruncate __real_ftruncate64
+ #endif
+-#ifdef _LARGEFILE64_SOURCE
+-int __real_ftruncate64(int fildes, long long length);
+ #endif
+
+ ssize_t __real_read(int fd, void *buf, size_t nbyte);