Building problem with dri 7.6

Zhihao Yuan lichray at gmail.com
Wed Mar 2 00:12:56 UTC 2011


On Tue, Mar 1, 2011 at 5:33 PM, John Hein <jhein at symmetricom.com> wrote:
> Zhihao Yuan wrote at 16:38 -0600 on Mar  1, 2011:
>  > Let's me make this more clear: In my case,
>
> Don't worry - I'm clear on what is happening, although I am not clear
> about why you are doing this (see response to #2 below).
>
>
>  > 1. I can build dri 7.6 out of box with
>  > --enable-radeon-experimental-api set in libdrm.
>
> I'm sure you can.  If you do locally change the port and build with
> --enable-radeon-experimental-api, then, yes, the radeon_cs_write_table
> symbol will be defined in libdrm.
>
>
>  > 2. A drm/dri with radeon-experimental-api enabled just works. It does
>  > not require GEM/KMS.
>
> From libdrm's configure:
>
>  --enable-radeon-experimental-api
>                          Enable support for radeon's KMS API (default:
>                          disabled)
>
> Enabling the radeon KMS API may indeed compile, but it won't do you
> much good on FreeBSD [yet], as far as I understand it.
>
> Why are you doing this?  Are you seeing some tangible positive results
> when you build and use libdrm_radeon on FreeBSD?  Or are you just
> doing it because you are curious to see if it makes a difference?
>
>
>  > 3. The problem, say 'Undefined symbol "radeon_cs_write_table"' only
>  > exists when I have a libdrm 2.4.17 with
>  > --disable-radeon-experimental-api, and I want to build a dri 7.6.1. I
>  > added the 'missing' header files (since HAVE_LIBDRM_RADEON=1), and got
>  > the wrong result.
>
> Of course.  As I said, that symbol is not defined by default unless
> you go and start forcing things to compile differently in FreeBSD
> (as you did by manually pulling in some .h files).
>
> You asked the list to help you with a building problem but failed to
> emphasize that you are deliberately making changes to build things in
> an unsupported way (or more importantly why).
>
>
>  > 4. So the conclusion is, set --enable-radeon-experimental-api in
>  > libdrm, and everything works fine with WITHOUT_NOUVEAU=1. Without it,
>  > dri 7.6.1 can *not* be built. Maybe a libdrm 2.4.12 lets you to built
>  > everything else with WITHOUT_NOUVEAU=1, but I haven't test it.
>
> I built dri 7.6.1 (WITHOUT_NOUVEAU=1) and using
> --disable-radeon-experimental-api for libdrm
> 2.4.17, as have numerous other FreeBSD users.

I know what you mean, exactly. That's exactly what I want to do, build
libdrm 2.4.17 with --disable-radeon-experimental-api and
WITHOUT_NOUVEAU=1 for other ports. Yes. But I don't know why, after I
done this for libdrm, libGL, liBGLU, I found that I can not build dri
7.6.1 since HAVE_LIBDRM_RADEON is 1 in such case. As you said, it
should not be, but it does happen.

>
> The reason it did not work for you is that you got dri 7.6.1 to build
> differently than everyone else by trying to convince it to use
> libdrm_radeon (by manually copying in some headers it seems).
>
> Again, the most important question is: why are you trying to build
> and use libdrm_radeon on FreeBSD?
>

-- 
Zhihao Yuan
The best way to predict the future is to invent it.


More information about the freebsd-x11 mailing list