On Mon, 25 Jun 2007, Vortechz wrote:

> I hope there are people using/testing/developing rthreads out there who can
> explain to me why
> syscall getthrid fails with SIGSYS on my system, 4.1-release.
> 
> 1. I have RTHREADS defined in my kernel. I have checked that the
> rthread code is included at compile time, and I also tried this:
> 
> $ grep getthrid /bsd
> Binary file /bsd matches
> 
> 2. The code I'm trying to run: 
> http://www.nabble.com/file/p11287569/rthread.tar rthread.tar 
> It may be extremely stupid, but it compiles...
> 
> 3. I compiled and installed librthread, and copied librthread.so.1.0 in
> place of libpthread.so.7.0
> My program is linked against libpthread:
> 
> $ ldd rthtest                                                                 
>  
> rthtest:
>         Start    End      Type Open Ref GrpRef Name
>         00000000 00000000 exe  1    0   0      rthtest
>         0bd7c000 2bd85000 rlib 0    1   0      /usr/lib/libpthread.so.7.0
>         0cde0000 2ce14000 rlib 0    1   0      /usr/lib/libc.so.40.3
>         00466000 00466000 rtld 0    1   0      /usr/libexec/ld.so
> 
> 4. Output and info:
> 
> $ ./rthtest                                                                   
>  
> Bad system call (core dumped) 
> 
> $ gdb ./rthtest rthtest.core                                                  
>  
> GNU gdb 6.3
> [...GPL...]
> Core was generated by `rthtest'.
> Program terminated with signal 12, Bad system call.
> Reading symbols from /usr/lib/libpthread.so.7.0...done.
> Loaded symbols for /usr/lib/libpthread.so.7.0
> Symbols already loaded for /usr/lib/libpthread.so.7.0
> Reading symbols from /usr/lib/libc.so.40.3...done.Loaded symbols for
> /usr/lib/libc.so.40.3
> Reading symbols from /usr/libexec/ld.so...done.
> Loaded symbols for /usr/libexec/ld.so
> #0  0x02a846a1 in getthrid () from /usr/lib/libc.so.40.3
> (gdb) bt
> #0  0x02a846a1 in getthrid () from /usr/lib/libc.so.40.3
> #1  0x1c0006bb in funkythread (data=0x3c000011) at rthreadtest.c:11
> #2  0x0df40fcb in _thread_start ()
>     at /usr/src/lib/libpthread/uthread/uthread_create.c:244
> #3  0x0000001f in ?? ()
> #4  0x00000000 in ?? ()
> 
> Did I do something extremely wrong when I tried to switch to rthreads? Do I
> need to recompile
> lots of things?

No, you do not need to recompile lots of things (no userland changes
are needed). I suspect you did not run make clean or something like
that before builing bsd.

After ading option RTHREADS, you should run config, and then make
clean, make depend and make in the kernel's compile dir.

        -Otto


> 
> Don't point me to using the regular libpthread, I have good reason to try
> rthreads.
> 
> Also....don't use this post to start a troll-inducing thread about
> performance, scalability 
> and/or personal opinions about threads and their usage. Reply with useful
> information or shut up.
> 
> // Vortechz
> 
> -- 
> View this message in context: 
> http://www.nabble.com/RTHREADS-and-librthread-tf3976489.html#a11287569
> Sent from the openbsd user - misc mailing list archive at Nabble.com.

Reply via email to