From: Edward O'Callaghan Date: Mon, 12 Oct 2009 04:57:20 +0000 (+0000) Subject: Haiku porting patches, Credit to Paul Davey. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=df40664a63a91a1ab4b40c7f2d356cf255071d56;p=oota-llvm.git Haiku porting patches, Credit to Paul Davey. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83823 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/autoconf/configure.ac b/autoconf/configure.ac index e24edf5e4a8..c4aad36553f 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -175,6 +175,11 @@ AC_CACHE_CHECK([type of operating system we're going to host on], llvm_cv_no_link_all_option="-Wl,--no-whole-archive" llvm_cv_os_type="MingW" llvm_cv_platform_type="Win32" ;; + *-*-haiku*) + llvm_cv_link_all_option="-Wl,--whole-archive" + llvm_cv_no_link_all_option="-Wl,--no-whole-archive" + llvm_cv_os_type="Haiku" + llvm_cv_platform_type="Unix" ;; *-unknown-eabi*) llvm_cv_link_all_option="-Wl,--whole-archive" llvm_cv_no_link_all_option="-Wl,--no-whole-archive" @@ -223,6 +228,8 @@ AC_CACHE_CHECK([type of operating system we're going to target], llvm_cv_target_os_type="Win32" ;; *-*-mingw*) llvm_cv_target_os_type="MingW" ;; + *-*-haiku*) + llvm_cv_target_os_type="Haiku" ;; *-unknown-eabi*) llvm_cv_target_os_type="Freestanding" ;; *) @@ -960,7 +967,9 @@ AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1], dnl pthread locking functions are optional - but llvm will not be thread-safe dnl without locks. if test "$ENABLE_THREADS" -eq 1 ; then - AC_CHECK_LIB(pthread,pthread_mutex_init) + AC_SEARCH_LIBS(pthread_mutex_init,pthread, + AC_DEFINE([HAVE_PTHREAD],[1], + [Have pthread])) AC_SEARCH_LIBS(pthread_mutex_lock,pthread, AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1], [Have pthread_mutex_lock])) diff --git a/lib/System/Unix/Process.inc b/lib/System/Unix/Process.inc index d7155852bf2..94e4c1bde25 100644 --- a/lib/System/Unix/Process.inc +++ b/lib/System/Unix/Process.inc @@ -91,7 +91,7 @@ Process::GetTotalMemoryUsage() malloc_statistics_t Stats; malloc_zone_statistics(malloc_default_zone(), &Stats); return Stats.size_allocated; // darwin -#elif defined(HAVE_GETRUSAGE) +#elif defined(HAVE_GETRUSAGE) && !defined(__HAIKU__) struct rusage usage; ::getrusage(RUSAGE_SELF, &usage); return usage.ru_maxrss; diff --git a/utils/unittest/googletest/include/gtest/internal/gtest-port.h b/utils/unittest/googletest/include/gtest/internal/gtest-port.h index 6a1593ef017..3e49993bff4 100644 --- a/utils/unittest/googletest/include/gtest/internal/gtest-port.h +++ b/utils/unittest/googletest/include/gtest/internal/gtest-port.h @@ -185,6 +185,8 @@ #define GTEST_OS_ZOS #elif defined(__sun) && defined(__SVR4) #define GTEST_OS_SOLARIS +#elif defined(__HAIKU__) +#define GTEST_OS_HAIKU #endif // _MSC_VER // Determines whether ::std::string and ::string are available. @@ -225,7 +227,7 @@ // TODO(wan@google.com): uses autoconf to detect whether ::std::wstring // is available. -#if defined(GTEST_OS_CYGWIN) || defined(GTEST_OS_SOLARIS) +#if defined(GTEST_OS_CYGWIN) || defined(GTEST_OS_SOLARIS) || defined(GTEST_OS_HAIKU) // At least some versions of cygwin don't support ::std::wstring. // Solaris' libc++ doesn't support it either. #define GTEST_HAS_STD_WSTRING 0