Building problem with dri 7.6
John Hein
jhein at symmetricom.com
Tue Mar 1 17:35:48 UTC 2011
Zhihao Yuan wrote at 15:31 -0600 on Feb 28, 2011:
> I posted this on freebsd-multimedia before. I guess I was in a wrong place.
>
> I have observed the building issue for a long time.
>
> ~> uname -a
> FreeBSD compaq.yuetime 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu Feb 24
> 18:11:55 CST 2011 root at compaq.yuetime:/usr/obj/usr/src/sys/HOUKAGO
> amd64
> My card is Ati Mobile Radeon X1600.
>
> I built and installed libdrm 2.4.17, libGL, libGLU, libglut 7.6.1, so
> far so good. When I want to
> sudo make WITHOUT_NOUVEAU=1
> for a dri 7.6.1,
> I got some error message says "can't find radeon_cs_int.h", which
> means Mesa need the definition of struct radeon_cs_int (and
> radeon_bo_int, actually). So I extract these definitions (included in
> the attachment) and put them in the correct places, so that the
> package is successfully built.
> But, when I test it, I got the following error:
>
> ~> env LIBGL_DEBUG=verbose glxinfo | grep rendering
> libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0)
> libGL: OpenDriver: trying /usr/local/lib/dri/r300_dri.so
> libGL error: dlopen /usr/local/lib/dri/r300_dri.so failed
> (/usr/local/lib/dri/r300_dri.so: Undefined symbol
> "radeon_cs_write_table")
> libGL error: unable to load driver: r300_dri.so
> libGL: OpenDriver: trying /usr/local/lib/dri/swrast_dri.so
> direct rendering: Yes
>
> I tried to disable the 'inline' for the related functions, but I can't
> got it work. DRI 7.4.4.2 works fine with other 7.6.1 libs, but 7.4 is
> relatively old.
Your attachment did not make it. However, as the graphics/dri &
graphics/libdrm ports exist today, it seems to be that graphics/dri
should not even be trying to include radeon_cs_int.h
The code has:
work/Mesa-7.6.1/src/mesa/drivers/dri/r600/r600_cmdbuf.c-#ifdef HAVE_LIBDRM_RADEON
work/Mesa-7.6.1/src/mesa/drivers/dri/r600/r600_cmdbuf.c:#include "radeon_cs_int.h"
And looking at the configure script for graphics/dri,
HAVE_LIBDRM_RADEON will only be defined if you somehow got the radeon
flavor of libdrm installed (or at least appear to be installed by the
graphics/dri configure script). However the libdrm port is built
with:
--disable-radeon-experimental-api
If you have bypassed that or gotten libdrm_radeon installed some other
way, this could explain why you are seeing build and dynamic linking
trouble where other people are not.
FWIW, I see no reference to "radeon_cs_write_table" in r300_dri.so
installed here (part of dri-7.6.1,2).
nm -oCD /usr/local/lib/dri/r300* | grep radeon_cs_
/usr/local/lib/dri/r300_dri.so:0006e180 T radeon_cs_begin
/usr/local/lib/dri/r300_dri.so:0006e110 T radeon_cs_create
/usr/local/lib/dri/r300_dri.so:0006e230 T radeon_cs_destroy
/usr/local/lib/dri/r300_dri.so:0006e200 T radeon_cs_emit
/usr/local/lib/dri/r300_dri.so:0006e1c0 T radeon_cs_end
/usr/local/lib/dri/r300_dri.so:0006e260 T radeon_cs_erase
/usr/local/lib/dri/r300_dri.so:0005b9f0 T radeon_cs_manager_legacy_ctor
/usr/local/lib/dri/r300_dri.so:0005ba70 T radeon_cs_manager_legacy_dtor
/usr/local/lib/dri/r300_dri.so:0006e290 T radeon_cs_need_flush
/usr/local/lib/dri/r300_dri.so:0006e2c0 T radeon_cs_print
/usr/local/lib/dri/r300_dri.so:0006e2f0 T radeon_cs_set_limit
/usr/local/lib/dri/r300_dri.so:0006db10 T radeon_cs_space_add_persistent_bo
/usr/local/lib/dri/r300_dri.so:0006dd40 T radeon_cs_space_check
/usr/local/lib/dri/r300_dri.so:0006dcd0 T radeon_cs_space_check_with_bo
/usr/local/lib/dri/r300_dri.so:0006dd70 T radeon_cs_space_reset_bos
/usr/local/lib/dri/r300_dri.so:0006e320 T radeon_cs_space_set_flush
/usr/local/lib/dri/r300_dri.so:0006e140 T radeon_cs_write_reloc
More information about the freebsd-x11
mailing list