a couple of issues with libthr

Kip Macy kip.macy at gmail.com
Thu Jul 27 06:39:11 UTC 2006


checkdll isn't threaded, it looks like this is port foot shooting that
libpthread somehow manages to workaround. So the only real issue is
libthr breaking backward compatibility.

 -Kip
On 7/26/06, Kip Macy <kip.macy at gmail.com> wrote:
> I have no idea why libc_r.so is involved. This is downright bizarre:
>
>
> (gdb) bt
> #0  0x28174623 in kill () at kill.S:2
> #1  0x280a3b32 in _raise (sig=6) at
> /usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_sig.c:175
> #2  0x281732d4 in abort () from /lib/libc.so.7
> #3  0x280a86c7 in _thread_exit (
>     fname=0x280a901c
> "/usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_spinlock.c",
> lineno=75,
>     msg=0x280a8ff8 "Spinlock called when not threaded.")
>     at /usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_exit.c:55
> #4  0x280a321c in _spinlock (lck=0x2893aa60)
>     at /usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_spinlock.c:77
> #5  0x280a3243 in _spinlock_debug (lck=0x2893aa60,
>     fname=0x28937008 "/usr/src/lib/libc_r/uthread/uthread_fd.c", lineno=150)
>     at /usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_spinlock.c:86
> #6  0x2893409a in _thread_fd_table_init () from /usr/lib/libc_r.so.6
> #7  0x28932938 in _thread_init () from /usr/lib/libc_r.so.6
> #8  0x289292d6 in _thread_init_hack () from /usr/lib/libc_r.so.6
> #9  0x289354a5 in _find_thread () from /usr/lib/libc_r.so.6
> #10 0x28925c71 in _init () from /usr/lib/libc_r.so.6
> #11 0xbfbfbdd0 in ?? ()
> #12 0x2806f118 in ?? () from /libexec/ld-elf.so.1
> #13 0xbfbfbda8 in ?? ()
> #14 0x2804f175 in objlist_call_init (list=0x2806f118)
>     at /usr/home/kmacy/freebsd/usr/src/libexec/rtld-elf/rtld.c:1404
> #15 0x280524a5 in dlopen (name=0x2806d060 "ä6\a(\004", mode=2)
>     at /usr/home/kmacy/freebsd/usr/src/libexec/rtld-elf/rtld.c:1796
> #16 0x080488b0 in main ()
> Current language:  auto; currently asm
> (gdb) #
>                                vt-x# gdb
> ./work/soltools/unxfbsdi.pro/bin/checkdll
> vt-x# ldd ./work/soltools/unxfbsdi.pro/bin/checkdll
> ./work/soltools/unxfbsdi.pro/bin/checkdll:
>         libm.so.4 => /lib/libm.so.4 (0x28085000)
>         libpthread.so.2 => /usr/lib/libthr.so.2 (0x2809b000)
>         libc.so.7 => /lib/libc.so.7 (0x280ac000)
> vt-x#
> >
> > When compiling openoffice.org I get the following failure:
> > rm -f ../../../unxfbsdi.pro/lib/check_libmozabdrv2.so
> > mv ../../../unxfbsdi.pro/lib/libmozabdrv2.so
> > ../../../unxfbsdi.pro/lib/check_libmozabdrv2.so
> > /usr/home/kmacy/freebsd/usr/ports/editors/openoffice.org-2.0-devel/work/solenv/bin/checkdll.sh
> > -L../../../unxfbsdi.pro/lib -L../lib
> > -L/usr/home/kmacy/freebsd/usr/ports/editors/openoffice.org-2.0-devel/work/solenv/unxfbsdi/lib
> > -L/usr/home/kmacy/freebsd/usr/ports/editors/openoffice.org-2.0-devel/work/solver/680/unxfbsdi.pro/lib
> > -L/usr/home/kmacy/freebsd/usr/ports/editors/openoffice.org-2.0-devel/work/solenv/unxfbsdi/lib
> > -L/usr/local/diablo-jdk1.5.0/lib
> > -L/usr/local/diablo-jdk1.5.0/jre/lib/i386
> > -L/usr/local/diablo-jdk1.5.0/jre/lib/i386/client
> > -L/usr/local/diablo-jdk1.5.0/jre/lib/i386/native_threads
> > -L/usr/X11R6/lib ../../../unxfbsdi.pro/lib/check_libmozabdrv2.so
> > Checking DLL ../../../unxfbsdi.pro/lib/check_libmozabdrv2.so ...Fatal
> > error 'Spinlock called when not threaded.' at line 75 in file
> > /usr/home/kmacy/freebsd/usr/src/lib/libthr/thread/thr_spinlock.c
> > (errno = 2)
> > Abort trap (core dumped)
> > dmake:  Error code 1, while making '../../../unxfbsdi.pro/lib/libmozabdrv2.so'
> >
> > Any suggestions?
> >
>


More information about the freebsd-threads mailing list