On Sunday 15 August 2004 09:39, Stefan Ehmann wrote: > On Sun, 2004-08-15 at 02:56, Johan Pettersson wrote: > > On Sat, 14 Aug 2004 19:34:24 +0100 > > > > Doug Rabson <dfr_at_nlsystems.com> wrote: > > > The latest 6113 build of the nvidia graphics drivers has just > > > appeared > > > > > > on nvidia's web site. Check out > > > http://www.nvidia.com/object/freebsd_1.0-6113.html if you are > > > currently using the nvidia proprietary drivers. This driver works > > > nicely on FreeBSD-current and while this version is not > > > thread-safe, it does not conflict with libpthread or libthr's use > > > of %gs so you don't have to map everything down to libc_r any > > > more :-). > > > > > > There will be a thread-safe driver available for FreeBSD-current > > > sometime after I commit the pthread parts of the TLS support > > > code. > > > > Im running the new driver on a recent -CURRENT and xorg 6.7.0. When > > starting zsnes I get this: > > > > beard ~> zsnes > > Fatal error 'Exceeded maximum lock level' at line 261 in file > > /usr/src/lib/libpthread/thread/thr_cancel.c (errno = 0) Bus error > > (core dumped) > > beard ~> > > Same error message here when starting neverball. If I map > libpthread->libc_r it's working again. > > xawtv also stopped working. Fortunately setting -xvport manually did > fix that. This might be because libGL calls libpthread's version of open() before libpthread has initialised properly. This patch might fix it - it fixes neverball's map compiler for me but I haven't actually run neverball itself. Index: thr_kern.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_kern.c,v retrieving revision 1.109 diff -u -r1.109 thr_kern.c --- thr_kern.c 7 Aug 2004 15:15:38 -0000 1.109 +++ thr_kern.c 8 Aug 2004 09:57:55 -0000 _at__at_ -2382,7 +2382,7 _at__at_ if ((thread == NULL) && ((thread = malloc(sizeof(struct pthread))) != NULL)) { bzero(thread, sizeof(struct pthread)); - if ((thread->tcb = _tcb_ctor(thread)) == NULL) { + if ((thread->tcb = _tcb_ctor(thread, curthread == NULL)) == NULL) { free(thread); thread = NULL; } else { Index: thr_open.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_open.c,v retrieving revision 1.16 diff -u -r1.16 thr_open.c --- thr_open.c 9 Dec 2003 02:20:56 -0000 1.16 +++ thr_open.c 15 Aug 2004 09:19:42 -0000 _at__at_ -45,11 +45,15 _at__at_ int __open(const char *path, int flags,...) { - struct pthread *curthread = _get_curthread(); + struct pthread *curthread; int ret; int mode = 0; va_list ap; + if (_thr_initial == NULL) + _libpthread_init(NULL); + + curthread = _get_curthread(); _thr_cancel_enter(curthread); /* Check if the file is being created: */Received on Sun Aug 15 2004 - 07:24:02 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:06 UTC