Hello,
First off, I want to say thank you for fixing a number of stability issues between 177.80 and 180.22 – I can see a big difference in functionality and performance between the 2 driver versions.
I manually updated the x11/nvidia-driver to latest stable (180.22), and I’m running into a compile error when updating graphics/mesa-demos (Xorg was recently updated from 7.3 to 7.4 so I have to recompile it):
/usr/bin/ld: warning: libm.so.3, needed by /usr/local/lib/libGL.so, may conflict with libm.so.5
/usr/bin/ld: warning: libc.so.5, needed by /usr/local/lib/libGLcore.so.1, may conflict with libc.so.7
/usr/local/lib/compat/libc.so.5: warning: WARNING! setkey(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: this program uses gets(), which is unsafe.
/usr/local/lib/compat/libc.so.5: warning: warning: mktemp() possibly used unsafely; consider using mkstemp()
/usr/local/lib/compat/libc.so.5: warning: WARNING! des_setkey(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: WARNING! encrypt(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: tmpnam() possibly used unsafely; consider using mkstemp()
/usr/local/lib/compat/libc.so.5: warning: warning: this program uses f_prealloc(), which is not recommended.
/usr/local/lib/compat/libc.so.5: warning: WARNING! des_cipher(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: tempnam() possibly used unsafely; consider using mkstemp()
cc -I../../include -D_THREAD_SAFE -I/usr/local/include -I/usr/local/include -O2 -pipe -fno-strict-aliasing -march=prescott -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fPIC -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -L/usr/local/lib glthreads.c -L../../lib -lGL -lm -o glthreads
/usr/bin/ld: warning: libm.so.3, needed by /usr/local/lib/libGL.so, may conflict with libm.so.5
/usr/bin/ld: warning: libc.so.5, needed by /usr/local/lib/libGLcore.so.1, may conflict with libc.so.7
/usr/local/lib/compat/libc.so.5: warning: WARNING! setkey(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: this program uses gets(), which is unsafe.
/usr/local/lib/compat/libc.so.5: warning: warning: mktemp() possibly used unsafely; consider using mkstemp()
/usr/local/lib/compat/libc.so.5: warning: WARNING! des_setkey(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: WARNING! encrypt(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: tmpnam() possibly used unsafely; consider using mkstemp()
/usr/local/lib/compat/libc.so.5: warning: warning: this program uses f_prealloc(), which is not recommended.
/usr/local/lib/compat/libc.so.5: warning: WARNING! des_cipher(3) not present in the system!
/usr/local/lib/compat/libc.so.5: warning: warning: tempnam() possibly used unsafely; consider using mkstemp()
/var/tmp//ccetQeqk.o(.text+0xaf9): In function `main':
: undefined reference to `pthread_create'
gmake[2]: *** [glthreads] Error 1
gmake[2]: Leaving directory `/usr/ports/graphics/mesa-demos/work/Mesa-7.3/progs/xdemos'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/mesa-demos/work/Mesa-7.3/progs'
gmake: *** [default] Error 1
*** Error code 2
Stop in /usr/ports/graphics/mesa-demos.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.95976.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=mesa-demos-7.0.4 UPGRADE_PORT_VER=7.0.4 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! graphics/mesa-demos (mesa-demos-7.0.4) (linker error)
Now I know what the issue is (in part):
emulators/compat5x doesn't have -lpthread support in C out of the box, so when it comes down to compiling other programs like mesa-demos that depend upon libGL.so, it's calling up the nVidia version and failing as shown above.
So here are my requests:
- Please update the need for supported libraries from 5.x to 6.x at the very least (7.x would be better, but there are a number of folks still using 6.x); 5.x has been EOL'ed as of last year.
- Please remove the GIANT lock from the driver code because as of 7.0 many improvements have been made to the FreeBSD ULE scheduler where having GIANT locked drivers is now becoming a hinderance, and needs to be taken care of as quickly as possible.
- If at all possible, please don't modify libGL.so and libGLU.so because it creates a maintenance headache, and increases the possibility for serious system regression when upgrading to later versions of X.org, as they may be ABI incompatible.
It would be incredibly nice if you guys could opensource the driver (like Intel) – or at least provide the specs to knowledgeable individuals so they could partly maintain the OS internals (ATI) – instead of forcing the support end on you folks, but I know the business people are the ones that make the calls, not you.
Thanks,
-Garrett
gcooper {at} {SPAMFREE} freebsd {dot} org
[root@orangebox /scratch/ports/x11/nvidia-driver]# uname -a
FreeBSD orangebox.gateway.2wire.net 8.0-CURRENT FreeBSD 8.0-CURRENT #6: Mon Jan 12 21:37:37 PST 2009 gcooper@orangebox.gateway.2wire.net:/usr/obj/usr/src/sys/ORANGEBOX i386
[root@orangebox /scratch/ports/x11/nvidia-driver]# dmesg | grep GTS
nvidia0: <GeForce 8800 GTS> on vgapci0
[root@orangebox /scratch/ports/x11/nvidia-driver]# grep CPU: /var/log/dmesg.yesterday
CPU: Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz (2671.62-MHz 686-class CPU)