summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author <shinichiro.hamaji@gmail.com>2012-11-22 12:09:13 +0000
committer <shinichiro.hamaji@gmail.com>2012-11-22 12:09:13 +0000
commit96dac4fd0267b3a7c3331c8011f43d8381a966ca (patch)
tree777b510a715f2ee70533726a183a0deded61a32b /src
parent711fcd27dec96995dfe3e2e542d9a0e991f08bdf (diff)
downloadglog-96dac4fd0267b3a7c3331c8011f43d8381a966ca.tar.gz
glog-96dac4fd0267b3a7c3331c8011f43d8381a966ca.tar.bz2
glog-96dac4fd0267b3a7c3331c8011f43d8381a966ca.zip
Fixed files to support FreeBSD amd64 based on patches at:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/glog/files/ Since FreeBSD do not have gettid system call unlikely to MacOSX, I modified utilities.h not to use that on FreeBSD: * FreeBSD lacks gettid syscall. http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/syscalls.master?rev=1.276;content-type=text%2Fplain * MacOSX gettid == 286. http://www.opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master As for the fix of stacktrace, we use a different approach. Even in FreeBSD, package gcc44/gcc46 has unwind.h. As a result, checking unwind.h should be natural solution. This patch was given by yyanagisawa git-svn-id: https://google-glog.googlecode.com/svn/trunk@116 eb4d4688-79bd-11dd-afb4-1d65580434c0
Diffstat (limited to 'src')
-rw-r--r--src/utilities.cc6
-rw-r--r--src/utilities.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/utilities.cc b/src/utilities.cc
index 27b2a90..a037480 100644
--- a/src/utilities.cc
+++ b/src/utilities.cc
@@ -233,8 +233,8 @@ bool PidHasChanged() {
}
pid_t GetTID() {
- // On Linux and FreeBSD, we try to use gettid().
-#if defined OS_LINUX || defined OS_FREEBSD || defined OS_MACOSX
+ // On Linux and MacOSX, we try to use gettid().
+#if defined OS_LINUX || defined OS_MACOSX
#ifndef __NR_gettid
#ifdef OS_MACOSX
#define __NR_gettid SYS_gettid
@@ -256,7 +256,7 @@ pid_t GetTID() {
// the value change to "true".
lacks_gettid = true;
}
-#endif // OS_LINUX || OS_FREEBSD
+#endif // OS_LINUX || OS_MACOSX
// If gettid() could not be used, we use one of the following.
#if defined OS_LINUX
diff --git a/src/utilities.h b/src/utilities.h
index 42785dc..5f79968 100644
--- a/src/utilities.h
+++ b/src/utilities.h
@@ -106,7 +106,7 @@
#elif !defined(NO_FRAME_POINTER)
# if defined(__i386__) && __GNUC__ >= 2
# define STACKTRACE_H "stacktrace_x86-inl.h"
-# elif defined(__x86_64__) && __GNUC__ >= 2
+# elif defined(__x86_64__) && __GNUC__ >= 2 && HAVE_UNWIND_H
# define STACKTRACE_H "stacktrace_x86_64-inl.h"
# elif (defined(__ppc__) || defined(__PPC__)) && __GNUC__ >= 2
# define STACKTRACE_H "stacktrace_powerpc-inl.h"