We got nominated! Help us out and vote for GitHub as Best Bootstrapped Startup of 2008. (You can vote once a day.) [ hide ]

public
Description: Phusion Passenger (mod_rails)
Homepage: http://www.modrails.com/
Clone URL: git://github.com/FooBarWidget/passenger.git
Click here to lend your support to: passenger and make a donation at www.pledgie.com !
Apparently OpenBSD doesn't support __thread correctly.
Hongli Lai (Phusion) (author)
Sat Jun 28 09:11:18 -0700 2008
commit  c7283e5f09b30381c0e8dff5587176c1e22d1fae
tree    72bcf788722f0fa7670b84667b2cfbcb44818d22
parent  70de1b24680c60846f293a278cdc0081eedbe372
...
54
55
56
 
 
57
58
59
 
 
60
61
62
...
54
55
56
57
58
59
60
 
61
62
63
64
65
0
@@ -54,9 +54,12 @@ static initialize_backtrace_support_for_this_thread main_thread_initialization("
0
 
0
 // FreeBSD 5 supports the __thread keyword, but doesn't initialize such
0
 // variables to the correct default value.
0
+// GCC on OpenBSD supports __thread, but any access to such a variable
0
+// results in a segfault.
0
 // Solaris does support __thread, but often it's not compiled into default GCC
0
 // packages (not to mention it's not available for Sparc). Playing it safe...
0
-#if defined(GCC_IS_3_3_OR_HIGHER) && !defined(__FreeBSD__) && !defined(__SOLARIS__)
0
+#if defined(GCC_IS_3_3_OR_HIGHER) && !defined(__FreeBSD__) && \
0
+ !defined(__SOLARIS__) && !defined(__OpenBSD__)
0
   static __thread spin_lock *backtrace_lock = NULL;
0
   static __thread vector<trace_point *> *current_backtrace = NULL;
0
   

Comments

    No one has commented yet.