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]

Reply via email to