[Nouveau] Build failure for gallium nouveau driver from git

Delan Azabani delan at azabani.com
Sun Oct 31 01:44:35 PDT 2010


The latest git version of freedesktop/mesa/mesa (building for gallium
driver according to nouveau wiki/GalliumHowto) does not compile. The
messages shown are:

nouveau_screen.c: In function ‘nouveau_screen_init’:
nouveau_screen.c:239: warning: passing argument 4 of
‘nouveau_channel_alloc’ makes pointer from integer without a cast
/usr/include/nouveau/nouveau_channel.h:51: note: expected ‘struct
nouveau_channel **’ but argument is of type ‘int’
nouveau_screen.c:239: error: too many arguments to function
‘nouveau_channel_alloc’

I'm running Ubuntu 10.10 with the latest git libdrm installed. Nvidia
proprietary drivers are not installed; running distribution-packaged
2D-only nouveau driver. By the way, my understanding of the code is
limited, so the things I try to fix the problem with are probably silly.

This line seems to be the culprit:

ret = nouveau_channel_alloc(dev, 0xbeef0201, 0xbeef0202, 512*1024,
&screen->channel);

Even though nouveau_context.c has a similar call with the same number of
arguments, it isn't an error. I also couldn't find the function
definition for nouveau_channel_alloc anywhere. Naively, I remove the
last argument so it looks like this:

ret = nouveau_channel_alloc(dev, 0xbeef0201, 0xbeef0202, 512*1024);

The error disappears, and the compile continues. Another error now:

nv50_surface.c: In function ‘nv50_surface_set’:
nv50_surface.c:95: error: ‘NOUVEAU_BO_TILE_LAYOUT_MASK’ undeclared
(first use in this function)
nv50_surface.c:95: error: (Each undeclared identifier is reported only once
nv50_surface.c:95: error: for each function it appears in.)
make[4]: *** [nv50_surface.o] Error 1
make[4]: *** Waiting for unfinished jobs....
nv50_transfer.c: In function ‘nv50_transfer_rect_m2mf’:
nv50_transfer.c:48: error: ‘NOUVEAU_BO_TILE_LAYOUT_MASK’ undeclared
(first use in this function)
nv50_transfer.c:48: error: (Each undeclared identifier is reported only once
nv50_transfer.c:48: error: for each function it appears in.)
nv50_transfer.c: In function ‘nv50_upload_sifc’:
nv50_transfer.c:283: error: ‘NOUVEAU_BO_TILE_LAYOUT_MASK’ undeclared
(first use in this function)
make[4]: *** [nv50_transfer.o] Error 1

Don't know how to fix that one. Even the nouveau_channel_alloc error,
which I 'fixed', seems odd because it was called elsewhere just the same
without fail.

-- 
Thanks and best regards,
Delan Azabani
http://azabani.com/


More information about the Nouveau mailing list