i apologize. please ignore my previous `patch'. my brain was
not functioning. here goes -
--- pthread.c.orig Mon May 21 11:19:33 2001
+++ pthread.c Mon May 21 11:21:18 2001
@@ -1057,6 +1057,12 @@
return pth_sleep(sec);
}
+int __pthread_usleep(unsigned int sec)
+{
+ pthread_initialize();
+ return pth_usleep(sec);
+}
+
int __pthread_sigwait(const sigset_t *set, int *sig)
{
pthread_initialize();
--- pthread.h.in.orig Mon May 21 11:18:42 2001
+++ pthread.h.in Mon May 21 11:19:27 2001
@@ -483,6 +483,7 @@
extern pid_t __pthread_fork(void);
extern unsigned int __pthread_sleep(unsigned int);
+extern int __pthread_usleep(unsigned int);
extern int __pthread_sigwait(const sigset_t *, int *);
extern pid_t __pthread_waitpid(pid_t, int *, int);
extern int __pthread_connect(int, struct sockaddr *, socklen_t);
@@ -503,6 +504,7 @@
#if _POSIX_THREAD_SYSCALL_SOFT && !defined(_PTHREAD_PRIVATE)
#define fork __pthread_fork
#define sleep __pthread_sleep
+#define usleep __pthread_usleep
#define sigwait __pthread_sigwait
#define waitpid __pthread_waitpid
#define connect __pthread_connect
also, this is required for pthreads to actually work on
OpenBSD for some reason:
--- pth_lib.c.orig Mon May 21 11:24:26 2001
+++ pth_lib.c Mon May 21 11:24:59 2001
@@ -48,12 +48,7 @@
{
pth_attr_t t_attr;
- /* support for implicit initialization calls
- and to prevent multiple explict initialization, too */
- if (pth_initialized)
- return_errno(FALSE, EPERM);
- else
- pth_initialized = TRUE;
+ pth_initialized = TRUE;
pth_debug1("pth_init: enter");
and for OpenBSD to build shared libraries you need
(these patches are seen in tons of OpenBSD ports).
--- ltconfig.orig Sat May 27 07:15:00 2000
+++ ltconfig Fri Jan 19 12:57:33 2001
@@ -1105,6 +1105,9 @@
with_gnu_ld=no
fi
;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
esac
@@ -1402,10 +1405,21 @@
;;
openbsd*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linkopts'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ if [ "`/usr/bin/file /usr/lib/libc.so.* | grep ELF`" != "" ]; then
+ export_dynamic_flag_spec='${wl}-E'
+ fi
+ ;;
+ esac
;;
os2*)
@@ -2021,13 +2035,10 @@
openbsd*)
version_type=sunos
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- need_version=no
- fi
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
+ deplibs_check_method='pass_all'
;;
os2*)
--- ltmain.sh.orig Sat Jul 29 10:51:11 2000
+++ ltmain.sh Tue Feb 20 14:08:16 2001
@@ -1079,7 +1079,18 @@ compiler."
# These systems don't actually have c library (as such)
continue
;;
+ *-*-openbsd*)
+ # Do not include libc due to us having libc/libc_r.
+ continue
+ ;;
esac
+ elif test "$arg" = "-lc_r"; then
+ case "$host" in
+ *-*-openbsd*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
elif test "$arg" = "-lm"; then
case "$host" in
*-*-cygwin* | *-*-beos*)
@@ -1091,6 +1102,10 @@ compiler."
deplibs="$deplibs $arg"
;;
+ -?thread)
+ deplibs="$deplibs $arg"
+ ;;
+
-module)
module=yes
continue
@@ -1799,6 +1814,9 @@ compiler."
# rhapsody is a little odd...
deplibs="$deplibs -framework System"
;;
+ *-*-openbsd*)
+ # do not include libc due to us having libc/libc_r.
+ ;;
*)
# Add libc to deplibs on all other systems.
deplibs="$deplibs -lc"
@@ -3567,40 +3585,6 @@ libdir='$install_libdir'\
# Exit here if they wanted silent mode.
test "$show" = : && exit 0
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- echo " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- echo " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- echo " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
- echo "See any operating system documentation about shared libraries for"
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- echo "----------------------------------------------------------------------"
exit 0
;;
thanks,
-vedge
Setting Orange, 42th day of Discord, year 3167
______________________________________________________________________
GNU Portable Threads (Pth) http://www.gnu.org/software/pth/
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager (Majordomo) [EMAIL PROTECTED]