xenomai-fix-lfs-issue.patch 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
  2. Date: Sat, 5 Nov 2011 20:59:01 +0000 (+0100)
  3. Subject: posix: fix compilation for LFS
  4. X-Git-Url: http://git.xenomai.org/?p=xenomai-2.6.git;a=commitdiff_plain;h=06ae5c5e47fbfd9d8dbbe6fcf1a1db0c14bad9de;hp=8f6feff876029244dabc1257cdf13209fbd64fb5
  5. posix: fix compilation for LFS
  6. ---
  7. diff --git a/include/posix/sys/mman.h b/include/posix/sys/mman.h
  8. index 455e565..a304755 100644
  9. --- a/include/posix/sys/mman.h
  10. +++ b/include/posix/sys/mman.h
  11. @@ -63,17 +63,16 @@ int __real_shm_open(const char *name, int oflag, mode_t mode);
  12. int __real_shm_unlink(const char *name);
  13. -#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
  14. void *__real_mmap(void *addr,
  15. size_t len,
  16. int prot,
  17. int flags,
  18. int fildes,
  19. long off);
  20. -#else
  21. -#define __real_mmap __real_mmap64
  22. -#endif
  23. -#ifdef _LARGEFILE64_SOURCE
  24. +
  25. +#if __WORDSIZE == 32
  26. +#if defined(_LARGEFILE64_SOURCE) \
  27. + || defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
  28. void *__real_mmap64(void *addr,
  29. size_t len,
  30. int prot,
  31. @@ -82,6 +81,11 @@ void *__real_mmap64(void *addr,
  32. long long off);
  33. #endif
  34. +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
  35. +#define __real_mmap __real_mmap64
  36. +#endif
  37. +#endif
  38. +
  39. int __real_munmap(void *addr, size_t len);
  40. #ifdef __cplusplus
  41. diff --git a/include/posix/unistd.h b/include/posix/unistd.h
  42. index 49463a0..90cce86 100644
  43. --- a/include/posix/unistd.h
  44. +++ b/include/posix/unistd.h
  45. @@ -54,13 +54,17 @@ int ftruncate(int fildes, off_t length);
  46. extern "C" {
  47. #endif
  48. -#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
  49. int __real_ftruncate(int fildes, long length);
  50. -#else
  51. +
  52. +#if __WORDSIZE == 32
  53. +#if defined(_LARGEFILE64_SOURCE) \
  54. + || defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
  55. +int __real_ftruncate64(int fildes, long long length);
  56. +#endif
  57. +
  58. +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
  59. #define __real_ftruncate __real_ftruncate64
  60. #endif
  61. -#ifdef _LARGEFILE64_SOURCE
  62. -int __real_ftruncate64(int fildes, long long length);
  63. #endif
  64. ssize_t __real_read(int fd, void *buf, size_t nbyte);