[Nouveau] Build failure for gallium nouveau driver from git

Francisco Jerez currojerez at riseup.net
Sun Oct 31 07:27:05 PDT 2010


Delan Azabani <delan at azabani.com> writes:

> 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.
>
nouveau_channel_alloc() is defined in libdrm_nouveau. If you're sure you
built it from git, you have a stale version installed somewhere else,
'find / |grep nouveau_channel.h" will tell you where.

I don't know for sure because I'm not an Ubuntu user, but most likely
the distro-provided 2D driver is going to be too old to be compatible
with libdrm-git and you'll have to build it from sources as well.

> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20101031/b19aa977/attachment.pgp>


More information about the Nouveau mailing list