Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apache version does not install on OpenBSD #189

Closed
FooBarWidget opened this issue May 29, 2014 · 35 comments
Closed

Apache version does not install on OpenBSD #189

FooBarWidget opened this issue May 29, 2014 · 35 comments

Comments

@FooBarWidget
Copy link
Member

From damen%thecolefamily.ca@gtempaccount.com on June 11, 2008 22:14:40

What steps will reproduce the problem? 1. install tarball, and run installer:

bin/passenger-install-apache2-module

Welcome to the Passenger Apache 2 module installer, v1.0.5.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

  1. The Apache 2 module will be installed for you.
  2. You'll learn how to configure Apache.
  3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

Checking for required software...

  • GNU C++ compiler... found at /usr/bin/g++
  • Ruby development headers... found
  • OpenSSL support for Ruby... found
  • RubyGems... found
  • Rake... found at /usr/local/bin/rake
  • Apache 2... found at /usr/local/sbin/httpd2
  • Apache 2 development headers... found at /usr/local/sbin/apxs2
  • Apache Portable Runtime (APR) development headers... found at
    /usr/local/bin/apr-1-config

* fastthread... found


Compiling and installing Apache 2 module...
cd /opt/passenger-1.0.5
rake clean apache2
(in /opt/passenger-1.0.5)

In ext/apache2:

rm -rf Utils.o Logging.o Configuration.o Hooks.o mod_passenger.o
mod_passenger.so

In ext/passenger:

rm -f Makefile

In ext/boost/src:

rm -f libboost_thread.a *.o

In test:

rm -f Apache2ModuleTests *.o

In benchmark:

rm -f DummyRequestHandler

In ext/boost/src:

g++ -O2 -fPIC -I../.. -D_REENTRANT -DNDEBUG -c *.cpp
In file included from ../../boost/thread/detail/config.hpp:21,
from barrier.cpp:7:
../../boost/config/requires_threads.hpp:29:4: #error "Threading support
unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
In file included from ../../boost/thread/barrier.hpp:12,
from barrier.cpp:8:
../../boost/thread/mutex.hpp:59: error: cv_state' was not declared in this scope ../../boost/thread/mutex.hpp:59: error:state' was not declared in this scope
../../boost/thread/mutex.hpp:59: error: invalid data member initialization
../../boost/thread/mutex.hpp:59: error: (use =' to initialize static data members) ../../boost/thread/mutex.hpp:59: error: variable or fielddo_lock' declared
void
../../boost/thread/mutex.hpp:59: error: declaration of int boost::mutex::do_lock' ../../boost/thread/mutex.hpp:57: error: conflicts with previous declaration
void boost::mutex::do_lock()'
../../boost/thread/mutex.hpp:60: error: cv_state' was not declared in this scope ../../boost/thread/mutex.hpp:60: error:state' was not declared in this scope
../../boost/thread/mutex.hpp:60: error: invalid data member initialization
../../boost/thread/mutex.hpp:60: error: variable or field do_unlock' declared void ../../boost/thread/mutex.hpp:60: error: declaration ofint
boost::mutex::do_unlock'
../../boost/thread/mutex.hpp:58: error: conflicts with previous declaration void boost::mutex::do_unlock()' ../../boost/thread/mutex.hpp:101: error:cv_state' was not declared in this
scope
../../boost/thread/mutex.hpp:101: error: state' was not declared in this scope ../../boost/thread/mutex.hpp:101: error: invalid data member initialization ../../boost/thread/mutex.hpp:101: error: variable or fielddo_lock' declared
void
../../boost/thread/mutex.hpp:101: error: declaration of int boost::try_mutex::do_lock' ../../boost/thread/mutex.hpp:98: error: conflicts with previous declaration
void boost::try_mutex::do_lock()'
../../boost/thread/mutex.hpp:102: error: cv_state' was not declared in this scope ../../boost/thread/mutex.hpp:102: error:state' was not declared in this scope
../../boost/thread/mutex.hpp:102: error: invalid data member initialization
../../boost/thread/mutex.hpp:102: error: variable or field do_unlock' declared void ../../boost/thread/mutex.hpp:102: error: declaration ofint
boost::try_mutex::do_unlock'
../../boost/thread/mutex.hpp:100: error: conflicts with previous declaration void boost::try_mutex::do_unlock()' ../../boost/thread/mutex.hpp:145: error:cv_state' was not declared in this
scope
../../boost/thread/mutex.hpp:145: error: state' was not declared in this scope ../../boost/thread/mutex.hpp:145: error: invalid data member initialization ../../boost/thread/mutex.hpp:145: error: variable or fielddo_lock' declared
void
../../boost/thread/mutex.hpp:145: error: declaration of int boost::timed_mutex::do_lock' ../../boost/thread/mutex.hpp:141: error: conflicts with previous declaration
void boost::timed_mutex::do_lock()'
../../boost/thread/mutex.hpp:146: error: cv_state' was not declared in this scope ../../boost/thread/mutex.hpp:146: error:state' was not declared in this scope
../../boost/thread/mutex.hpp:146: error: invalid data member initialization
../../boost/thread/mutex.hpp:146: error: variable or field do_unlock' declared void ../../boost/thread/mutex.hpp:146: error: declaration ofint
boost::timed_mutex::do_unlock'
../../boost/thread/mutex.hpp:144: error: conflicts with previous declaration void boost::timed_mutex::do_unlock()' ../../boost/thread/detail/lock.hpp: In instantiation ofboost::detail::thread::lock_opsboost::mutex':
../../boost/thread/detail/lock.hpp:76: instantiated from void boost::detail::thread::scoped_lock<Mutex>::lock() [with Mutex = boost::mutex]' ../../boost/thread/detail/lock.hpp:66: instantiated from boost::detail::thread::scoped_lock::scoped_lock(Mutex&, bool) [with
Mutex = boost::mutex]'
barrier.cpp:26: instantiated from here
../../boost/thread/detail/lock.hpp:29: error: no type named cv_state' in
class boost::mutex'
../../boost/thread/detail/lock.hpp:48: error: no type named cv_state' in
class boost::mutex'
../../boost/thread/detail/lock.hpp:52: error: no type named cv_state' in
class boost::mutex'
../../boost/thread/condition.hpp: In member function void boost::condition::do_wait(M&) [with M = boost::mutex]': ../../boost/thread/condition.hpp:93: instantiated fromvoid
boost::condition::wait(L&) [with L =
boost::detail::thread::scoped_lockboost::mutex]'
barrier.cpp:38: instantiated from here
../../boost/thread/condition.hpp:146: error: no type named lock_state' in
class boost::detail::thread::lock_opsboost::mutex'
../../boost/thread/condition.hpp:147: error: `state' undeclared (first use this
function)
../../boost/thread/condition.hpp:147: error: (Each undeclared identifier is
reported only once for each function it appears in.)
In file included from ../../boost/thread/detail/config.hpp:21,
from condition.cpp:7:
../../boost/config/requires_threads.hpp:...

Original issue: http://code.google.com/p/phusion-passenger/issues/detail?id=88

@FooBarWidget
Copy link
Member Author

From honglilai on June 15, 2008 01:53:21

Have you tried version 2.0 RC 1 as well?

@FooBarWidget
Copy link
Member Author

From averageyeo on June 18, 2008 13:50:36

Confirming it doesn't work in 2.0 RC1.

@FooBarWidget
Copy link
Member Author

From honglilai on July 24, 2008 07:18:37

Could you try the latest git version? A number of OpenBSD fixes have been committed.

@FooBarWidget
Copy link
Member Author

From averageyeo on July 24, 2008 12:51:44

Tried with latest git version; get a bit farther, but now have this error:

./bin/passenger-install-apache2-module

Welcome to the Phusion Passenger Apache 2 module installer, v2.0.2.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

  1. The Apache 2 module will be installed for you.
  2. You'll learn how to configure Apache.
  3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

Checking for required software...

  • GNU C++ compiler... found at /usr/bin/g++
  • Ruby development headers... found
  • OpenSSL support for Ruby... found
  • RubyGems... found
  • Rake... found at /usr/local/bin/rake
  • Apache 2... found at /usr/sbin/httpd
  • Apache 2 development headers... found at /usr/sbin/apxs
  • Apache Portable Runtime (APR) development headers... found at
    /usr/local/bin/apr-1-config
  • fastthread... found

* rack... found

WARNING: Apache doesn't seem to be compiled with the 'prefork' or 'worker' MPM

Passenger has only been tested on Apache with the 'prefork' and the 'worker'
MPM. Your Apache installation is compiled with the '' MPM. We recommend
you to abort this installer and to recompile Apache with either the 'prefork'
or the 'worker' MPM.

Press Ctrl-C to abort this installer (recommended).
Press Enter if you want to continue with installation anyway.


Compiling and installing Apache 2 module...
cd /usr/src/passenger
rake clean apache2
(in /usr/src/passenger)
rake aborted!
Could not find 'apachectl' or 'apache2ctl'.
/usr/src/passenger/Rakefile:35
(See full trace by running task with --trace)


It looks like something went wrong

Please read our Users guide for troubleshooting tips:

/usr/src/passenger/doc/Users guide.html

If that doesn't help, please use our support facilities at: http://www.modrails.com/ We'll do our best to help you.

@FooBarWidget
Copy link
Member Author

From aschrafl on November 08, 2008 06:54:50

tested it on OpenBSD 4.4 AMD64 MT.
still not working. Tried to use the openbsd boost package. could not get it to work.

@FooBarWidget
Copy link
Member Author

From aschrafl on November 08, 2008 07:55:57

got the newest dev version form git repository and it works.

@FooBarWidget
Copy link
Member Author

From aschrafl on November 08, 2008 08:27:10

an other update: can compile and install but httpd2 segfaults after startup.

@FooBarWidget
Copy link
Member Author

From ecgrieco on January 29, 2009 10:12:24

Still seeing the segfault on start for Apache 2.2.8 and OpenBSD 4.4.

Using passenger git revision ae6c3e2

@FooBarWidget
Copy link
Member Author

From ecgrieco on March 11, 2009 11:34:06

Tested on Apache 2.2.11, OpenBSD 4.4 using passenger git revision
3cf3391 .

Still seeing a segfault on launch of Apache.

gdb is not giving me anything useful, need to rebuild Apache with debug smybols.

@FooBarWidget
Copy link
Member Author

From ecgrieco on March 11, 2009 14:46:47

Rebuilt Apache 2.2.11 with debugging info (CPPFLAGS="-O0 -ggdb -g3").

before the passenger config lines are added to the httpd.conf file:
httpd runs properly

once the passengner config lines are added to the httpd.conf file:
httpd crashes when launched directly
httpd crashes when launched via "apachectl start"
httpd crashes when launched via "apachectl configtest"
httpd does not crash when launched via gdb
httpd does crash when launched via gdb and run with the -t switch (see below)

(gdb) r -t
Starting program: /usr/local/bin/httpd -t
Syntax OK
[New process 1233]
Cannot access memory at address 0x297a9100
(gdb) bt
Cannot access memory at address 0x297a9100
(gdb) bt
#0 0x0fa19a19 in _dl_debug_state () from /usr/libexec/ld.so
#1 0x0fa1bdf4 in dlclose () from /usr/libexec/ld.so
#2 0x05c372c5 in dso_cleanup () from /usr/local/lib/libapr-1.so.3.0
#3 0x05c3b9a5 in run_cleanups () from /usr/local/lib/libapr-1.so.3.0
#4 0x05c3b267 in apr_pool_destroy () from /usr/local/lib/libapr-1.so.3.0
#5 0x05c3b2db in apr_pool_destroy () from /usr/local/lib/libapr-1.so.3.0
#6 0x1c01726e in destroy_and_exit_process ()
#7 0x1c017dfa in main ()

I don't really have the time to debug this but if anyone has suggestions as to where
to look next post a comment here and I'll check it.

@FooBarWidget
Copy link
Member Author

From honglilai on March 11, 2009 15:36:35

I think it's related to the way static C++ objects are initialized on OpenBSD. We'll
probably need to refactor some stuff in OXT in order to fix this.

@FooBarWidget
Copy link
Member Author

From ecgrieco on March 11, 2009 16:12:53

Well, the sooner the better. I hear good things about Passenger but as it does not
work on OpenBSD I cannot use it.

Let me know if there is any way I can assist you.

@FooBarWidget
Copy link
Member Author

From honglilai on March 12, 2009 06:41:56

Actually, upon further investigation, I have reason to suspect that this is a bug in
OpenBSD. It seems that the act of linking to the pthread library causes Apache to
crash, for no apparent reason.

Consider the following minimal Apache module which does absolutely nothing (mod_dummy.c):

#include <httpd.h>
#include <http_config.h>

module AP_MODULE_DECLARE_DATA passenger_module = {
STANDARD20_MODULE_STUFF,
NULL, NULL, NULL, NULL,
NULL, NULL
};

If you compile it with

g++ -shared mod_dummy.c -fPIC -o mod_dummy.so -D_POSIX_THREADS -D_REENTRANT
-I/usr/local/include/apr-1/ -I/usr/local/include/db4 -I/usr/local/include
-I/usr/local/include/apache2 -L/usr/local/lib -lapr-1 -laprutil-1

then Apache will start up just fine. But if you compile it with '-lpthread' then
Apache will segfault upon the loading the module:

g++ -shared mod_dummy.c -fPIC -o mod_dummy.so -D_POSIX_THREADS -D_REENTRANT
-I/usr/local/include/apr-1/ -I/usr/local/include/db4 -I/usr/local/include
-I/usr/local/include/apache2 -L/usr/local/lib -lapr-1 -laprutil-1 -lpthread

Not linking to pthread is not an option because Phusion Passenger uses threading
functions, and Apache itself isn't linked to pthread.

@FooBarWidget
Copy link
Member Author

From bernd.ahlers on March 12, 2009 20:04:03

I fixed the segfault by building apache2 with threaded apr and apr-util.
(diff against 4.5 or -current attached)

A WIP port of passenger can be found here: http://gitorious.org/projects/openbsd-ports-wip/repos/mainline/trees/master/www/ruby-passenger The apache2 now starts with the passenger module loaded but if I try to open an
application the browser just hangs and nothing happens. hmpf

Here's the apache error log:

[ pid=14033 file=Hooks.cpp:762 time=2009-03-13 03:53:46.271 ]:
Initializing Phusion Passenger...
[ [p ipdi=d1=41063734 2f ifliel=eH=oAopkpsl.iccpapt:1047 time=2009-0i3o-n1P3o
o0l3S:e5r3v:e4r6E.x2e9c3u t]a:b
l e .Scpp:309 time=2009-03-13 03:53:46.299 ]:
hSuhtuttitng down Phusion Passenger...
ing down server.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.312 ]:
Client thread 0x7c94fa80 interrupted.
[ pid=14033 file=ApplicationPoolServer.h:510 time=2009-03-13 03:53:46.314 ]:
Waiting for existing ApplicationPoolServerExecutable (PID 16742) to exit...
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.315 ]:
Client thread 0x7c94fb20 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.316 ]:
Client thread 0x7c94fa00 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.316 ]:
Client thread 0x7c94f660 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.317 ]:
Client thread 0x7c94f960 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.317 ]:
Client thread 0x7c94f5a0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.318 ]:
Client thread 0x7c94f5c0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.318 ]:
Client thread 0x7c94f6e0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.319 ]:
Client thread 0x7c94f580 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.319 ]:
Client thread 0x7c94f2e0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.323 ]:
Client thread 0x7c94f2c0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.352 ]:
Client thread 0x7c94f440 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.354 ]:
Client thread 0x7c94f600 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.354 ]:
Client thread 0x7c94f4a0 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.354 ]:
Client thread 0x7c94f520 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:532 time=2009-03-13 03:53:46.355 ]:
Client thread 0x7c94f020 interrupted.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:334 time=2009-03-13 03:53:46.355 ]:
Server shutdown complete.
[ pid=16742 file=SpawnManager.h:468 time=2009-03-13 03:53:46.356 ]:
Shutting down spawn manager (PID 20643).
[ pid=16742 file=SpawnManager.h:471 time=2009-03-13 03:53:46.357 ]:
Spawn manager exited.
[ pid=16742 file=ApplicationPoolServerExecutable.cpp:685 time=2009-03-13 03:53:46.357 ]:
Cannot send file descriptor with sendmsg(): Resource temporarily unavailable (35)
in 'int Server::start()' (ApplicationPoolServerExecutable.cpp:656)

[ pid=14033 file=ApplicationPoolServer.h:528 time=2009-03-13 03:53:46.359 ]:
ApplicationPoolServerExecutable exited.
[ pid=3779 file=Hooks.cpp:762 time=2009-03-13 03:53:47.405 ]:
Initializing Phusion Passenger...
[Fri Mar 13 03:53:47 2009] [notice] Digest: generating secret for digest
authentication ...
[Fri Mar 13 03:53:47 2009] [notice] Digest: done
[Fri Mar 13 03:53:47 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11
OpenSSL/0.9.8j DAV/2 Phusion_Passenger/2.1.1 configured -- resuming normal operations

Attachment: apache-httpd-2.2.11_1.20090313.diff

@FooBarWidget
Copy link
Member Author

From honglilai on March 13, 2009 01:42:31

Labels: OpSys-BSD Portability

@FooBarWidget
Copy link
Member Author

From nadims on May 14, 2009 19:00:46

Still not working with 4.5 release of may 2009. I tried both using apache2 2.2.9 from pkgs and apache 2 2.2.11
from ports. It crashes apache at boot. The problem seems to be the way OpenBSD handles the -pthread, which
from some investigation from my part seems that threads in are emulated via software in userland, and not in
the kernel.

@FooBarWidget
Copy link
Member Author

From honglilai on May 17, 2009 07:41:28

What about the Nginx version, does that work?

@FooBarWidget
Copy link
Member Author

From nadims on May 19, 2009 22:38:29

It seems to compile okey, but when it compiles Nginx it crashes when adding the passenger module. I am
attaching the log. nginx_build.txt

Information where it says about phtreads being user-level library in openbsd. http://www.openbsd.org/cgi-bin/man.cgi?query=pthreads&sektion=3 Reading more into it, a whole lots of ports have problems because of the way pthread is handle in openbsd.
Hope this helps because I really want to get this going on openbsd. I have all my servers openbsd because of
the security, and because the OS has such a low resource footprint, letting me use more of the hardware for
serving apps.

Attachment: nginx_build.txt

@FooBarWidget
Copy link
Member Author

From nadims on May 19, 2009 22:44:09

Another link describing the pthread problem http://kernigh.pbworks.com/OpenBSD OpenBSD has an inferior implementation of pthreads(3).

OpenBSD, like other systems that resemble Unix, provides the pthreads interface for multithreaded
programming, which allows one process to run multiple threads at the same time, while the threads share the
memory and the open files.

The other systems provide kernel threads through pthreads. OpenBSD still provides pthreads through a user-
mode library, with no kernel support; so threads above OpenBSD have problems or limitations. The most
obvious limitation is that the OpenBSD pthreads library confines all threads of a process to one processor.
Another limitation, which seems arbitrary, is that programs using OpenBSD pthreads cannot use
sigaltstack(2). This causes problems like Ruby Bug #1239.

@FooBarWidget
Copy link
Member Author

From honglilai on May 20, 2009 01:46:53

@nadims: The Nginx build problem should be fixed now. Please try the latest Git version.

@FooBarWidget
Copy link
Member Author

From nadims on May 20, 2009 13:42:12

I got the git version, and it now passes the part were it crashed before, but now it
crashes in the final merge of all the objects. I am attaching the log. Hope this
helps. If you need me to try anything else please advise.

Attachment: nginx_build2.txt

@FooBarWidget
Copy link
Member Author

From honglilai on May 20, 2009 14:14:26

Looks like it needs to link to the math library. Can you modify ext/nginx/config and
make it link to -lm as well?

@FooBarWidget
Copy link
Member Author

From nadims on May 20, 2009 16:13:01

Adding -lm fixed it, it now compiles, installs and works.

This is on a stock Openbsd 4.5 released on May 2009.

Nginx and Passenger and Rails = Works (using git version and adding -lm)

Woooohooooo..... I tested my first ruby app and it seems to work. Thanks alot for
your help. Hope the fixes get included to the mainline so other people using openbsd
can try passenger.

@FooBarWidget
Copy link
Member Author

From nadims on May 20, 2009 16:18:35

By the way, I am up for testing whenever you want to test the Apache Module version
on OpenBSD. Again Thanks.

@FooBarWidget
Copy link
Member Author

From honglilai on May 20, 2009 16:26:45

I'll whip up an Nginx patch when I have the time. Could you post the output of the
'uname' command on OpenBSD?

@FooBarWidget
Copy link
Member Author

From nadims on May 20, 2009 17:19:54

18:07:43 #uname
OpenBSD
19:18:33 #uname -a
OpenBSD www.test.com 4.5 GENERIC#1749 i386

@FooBarWidget
Copy link
Member Author

From honglilai on May 21, 2009 01:01:24

Can you check whether commit 3642bc9 compiles correctly out of the box?

@FooBarWidget
Copy link
Member Author

From nadims on May 21, 2009 10:19:22

I checked that commit, and it works out of the box, no more modifications needed.

@FooBarWidget
Copy link
Member Author

From honglilai on May 21, 2009 10:38:39

Summary: Apache version does not install on OpenBSD

@FooBarWidget
Copy link
Member Author

From redelman on June 16, 2009 10:40:28

With passenger 2.2.2 and latest git as of today, on OpenBSD 4.5-stable (for amd64)
with Apache 2.2.9 (from ports), passenger fails to load with lots of undefined
symbols. All related to not being linked against stdc++. I added -lstdc++ to the link
line and all those errors disappeared. 'apachectl2 configtest' reported 'OK' and
immediately segfaulted. I have attached the core file.

Attachment: httpd2.core

@FooBarWidget
Copy link
Member Author

From honglilai on February 04, 2013 02:38:12

Last time I checked OpenBSD did not have a sane threading system, which Phusion Passenger relies on. This issue should be rechecked with the latest OpenBSD version.

@FooBarWidget
Copy link
Member Author

From nadims on February 04, 2013 03:48:15

Latest OpenBSD 5.2 has pthreads support. Look at the change log at http://www.openbsd.org/52.html pthreads(3) support:
The most significant change in this release is the replacement of the user-level uthreads by kernel-level rthreads, allowing multithreaded programs to utilize multiple CPUs/cores.
Use PTHREAD_MUTEX_STRICT_NP as default mutex type.
Added pthread spinlock and barrier routines.
Added pthread_mutex_timedlock(3) and sem_timedwait(3).
Added pthread_condattr_setclock(3).
Added support for live multi-threaded debugging in gdb(1).
Improved handling for rusage totals and interval timers in threaded processes.
Changed the RLIMIT_NPROC rlimit to count processes instead of threads.
Added a new system limit kern.maxthread for the max number of threads.
Closed race conditions in thread creation, and in fork(2) and open(2) in a threaded process.
Improved handling of threaded processes in ps(1), top(1), and fstat(1).
Changed the lock around dlopen() to be recursive, so that dl*() operations from atexit() handlers don't deadlock.
Many fixes to pthread attribute and mutex error checking and cancellation handling.

@FooBarWidget
Copy link
Member Author

From nadims on February 04, 2013 03:51:24

I can try it on a latest version (5.2) if you like?

@FooBarWidget
Copy link
Member Author

From honglilai on February 04, 2013 03:57:24

Yes please try git master on latest OpenBSD.

@FooBarWidget
Copy link
Member Author

From honglilai on February 04, 2013 15:31:57

Git master is confirmed to work on OpenBSD 5.2.

Status: Fixed
Labels: Milestone-4.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant