Delan Azabani
2010-Oct-31 08:44 UTC
[Nouveau] Build failure for gallium nouveau driver from git
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/
Francisco Jerez
2010-Oct-31 14:27 UTC
[Nouveau] Build failure for gallium nouveau driver from git
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>