uClibc can be built without Largefile support, add the corresponding guards. uClibc does not have __libc_malloc()/__libc_free(), add guard.
libsanitizer/ChangeLog 2013-03-24 Bernhard Reutner-Fischer <al...@gcc.gnu.org> * sanitizer_common/sanitizer_allocator.cc (libc_malloc, libc_free): Guard with !uClibc. * interception/interception_type_test.cc <OFF64_T>: add LFS guard. * sanitizer_common/sanitizer_platform_limits_posix.cc <struct_stat64_sz, struct_rlimit64_sz, struct_statfs64_sz>: Likewise. Signed-off-by: Bernhard Reutner-Fischer <rep.dot....@gmail.com> --- libsanitizer/interception/interception_type_test.cc | 2 +- libsanitizer/sanitizer_common/sanitizer_allocator.cc | 4 +++- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libsanitizer/interception/interception_type_test.cc b/libsanitizer/interception/interception_type_test.cc index f664eee..91fab63 100644 --- a/libsanitizer/interception/interception_type_test.cc +++ b/libsanitizer/interception/interception_type_test.cc @@ -22,7 +22,7 @@ COMPILER_CHECK(sizeof(SSIZE_T) == sizeof(ssize_t)); COMPILER_CHECK(sizeof(PTRDIFF_T) == sizeof(ptrdiff_t)); COMPILER_CHECK(sizeof(INTMAX_T) == sizeof(intmax_t)); -#ifndef __APPLE__ +#if !defined __APPLE__ && (defined __USE_LARGEFILE64 && defined __off64_t_defined) COMPILER_CHECK(sizeof(OFF64_T) == sizeof(off64_t)); #endif diff --git a/libsanitizer/sanitizer_common/sanitizer_allocator.cc b/libsanitizer/sanitizer_common/sanitizer_allocator.cc index a54de9d..e17cf22 100644 --- a/libsanitizer/sanitizer_common/sanitizer_allocator.cc +++ b/libsanitizer/sanitizer_common/sanitizer_allocator.cc @@ -9,11 +9,13 @@ // run-time libraries. // This allocator that is used inside run-times. //===----------------------------------------------------------------------===// + +#include <features.h> #include "sanitizer_common.h" // FIXME: We should probably use more low-level allocator that would // mmap some pages and split them into chunks to fulfill requests. -#if defined(__linux__) && !defined(__ANDROID__) +#if defined(__linux__) && !defined(__ANDROID__) && !defined __UCLIBC__ extern "C" void *__libc_malloc(__sanitizer::uptr size); extern "C" void __libc_free(void *ptr); # define LIBC_MALLOC __libc_malloc diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc index c4be1aa..c5e8f19 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc @@ -32,7 +32,9 @@ namespace __sanitizer { unsigned struct_utsname_sz = sizeof(struct utsname); unsigned struct_stat_sz = sizeof(struct stat); +#ifdef __USE_LARGEFILE64 unsigned struct_stat64_sz = sizeof(struct stat64); +#endif unsigned struct_rusage_sz = sizeof(struct rusage); unsigned struct_tm_sz = sizeof(struct tm); @@ -43,7 +45,7 @@ namespace __sanitizer { unsigned struct_epoll_event_sz = sizeof(struct epoll_event); #endif // __linux__ -#if defined(__linux__) && !defined(__ANDROID__) +#if defined(__linux__) && !defined(__ANDROID__) && defined __USE_LARGEFILE64 unsigned struct_rlimit64_sz = sizeof(struct rlimit64); unsigned struct_statfs64_sz = sizeof(struct statfs64); #endif // __linux__ && !__ANDROID__ -- 1.7.10.4