Bug 26574 - Nouveau Gallium 3D driver fails to be built during building of Mesa from git.
Summary: Nouveau Gallium 3D driver fails to be built during building of Mesa from git.
Status: RESOLVED NOTABUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: GLX (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium blocker
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-15 02:41 UTC by Panos
Modified: 2010-02-15 06:29 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
The output of the building of mesa. (457.39 KB, text/plain)
2010-02-15 02:41 UTC, Panos
Details
The PKGBUILD used to build mesa-git (like .spec on Fedora) (4.21 KB, text/plain)
2010-02-15 02:42 UTC, Panos
Details

Description Panos 2010-02-15 02:41:45 UTC
Created attachment 33308 [details]
The output of the building of mesa.

Archlinux x86_64 (PKGBUILD for creating package from Mesa-git and the error output are included)

While building mesa from git, gallium3d nouveau fails to be built with this error.

make[4]: Entering directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/src/gallium/drivers/nouveau'
gcc -c -I. -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/gallium/drivers -I/src/gallium/include -I/src/gallium/auxiliary -I/src/gallium/drivers  -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71 -march=x86-64 -mtune=generic -O2 -pipe -Wall -Wmissing-prototypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71  nouveau_screen.c -o nouveau_screen.o
gcc -c -I. -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/gallium/drivers -I/src/gallium/include -I/src/gallium/auxiliary -I/src/gallium/drivers  -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71 -march=x86-64 -mtune=generic -O2 -pipe -Wall -Wmissing-prototypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71  nouveau_context.c -o nouveau_context.o
gcc -c -I. -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/gallium/drivers -I/src/gallium/include -I/src/gallium/auxiliary -I/src/gallium/drivers  -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71 -march=x86-64 -mtune=generic -O2 -pipe -Wall -Wmissing-prototypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71  nv04_surface_2d.c -o nv04_surface_2d.o
nv04_surface_2d.c: In function ‘nv04_surface_copy_swizzle’:
nv04_surface_2d.c:182: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT’ undeclared (first use in this function)
nv04_surface_2d.c:182: error: (Each undeclared identifier is reported only once
nv04_surface_2d.c:182: error: for each function it appears in.)
nv04_surface_2d.c:183: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT’ undeclared (first use in this function)
nv04_surface_2d.c:187: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_SIZE’ undeclared (first use in this function)
nv04_surface_2d.c:188: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT’ undeclared (first use in this function)
nv04_surface_2d.c:190: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER’ undeclared (first use in this function)
nv04_surface_2d.c:191: error: ‘NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE’ undeclared (first use in this function)
nv04_surface_2d.c: In function ‘nv04_surface_2d_init’:
nv04_surface_2d.c:429: error: ‘NV01_IMAGE_BLIT_OPERATION_SRCCOPY’ undeclared (first use in this function)
nv04_surface_2d.c: In function ‘nv04_surface_wrap_for_render’:
nv04_surface_2d.c:521: warning: unused variable ‘screen’
make[4]: *** [nv04_surface_2d.o] Error 1
make[4]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/src/gallium/drivers/nouveau'
make[3]: *** [default] Error 1
make[3]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/src/gallium/drivers'
make[2]: *** [default] Error 1
make[2]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/src/gallium'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/src'
make: *** [default] Error 1
Comment 1 Panos 2010-02-15 02:42:30 UTC
Created attachment 33309 [details]
The PKGBUILD used to build mesa-git (like .spec on Fedora)
Comment 2 Xavier 2010-02-15 02:56:38 UTC
(In reply to comment #1)
> Created an attachment (id=33309) [details]
> The PKGBUILD used to build mesa-git (like .spec on Fedora)
> 

This is not enough (at least for nouveau) : libdrm>=2.4.12
You need a recent libdrm-git.

But maybe you should read this page :
http://nouveau.freedesktop.org/wiki/GalliumHowto
"Warning : Nouveau's developers don't want people to build gallium drivers now, and do not support it at all.

They also don't want bug reports on gallium ATM."

"It's not recommended to install this library, but you can test if it works by setting LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to /path/to/mesa/lib."
Comment 3 Panos 2010-02-15 03:42:35 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > Created an attachment (id=33309) [details] [details]
> > The PKGBUILD used to build mesa-git (like .spec on Fedora)
> > 
> 
> This is not enough (at least for nouveau) : libdrm>=2.4.12
> You need a recent libdrm-git.
> 
> But maybe you should read this page :
> http://nouveau.freedesktop.org/wiki/GalliumHowto
> "Warning : Nouveau's developers don't want people to build gallium drivers now,
> and do not support it at all.
> 
> They also don't want bug reports on gallium ATM."
> 
> "It's not recommended to install this library, but you can test if it works by
> setting LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to /path/to/mesa/lib."
> 

I really hoped that I could try G3D Nouveau in order to make bugreports (and of course to use it because I was curious about the current results). 

With libdrm-git it seems that G3D Nouveau is built (no errors on that part), but it fails on eglgears. 

gcc -march=x86-64 -mtune=generic -O2 -pipe -Wall -Wmissing-prototypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS -DHAVE_XEXTPROTO_71 -Wl,--hash-style=gnu -Wl,--as-needed -o eglgears eglgears.o -L../../lib -lEGL -lGL -ldrm
eglgears.o: In function `T.55':
eglgears.c:(.text+0x183): undefined reference to `sincos'
eglgears.c:(.text+0x25a): undefined reference to `sincos'
eglgears.c:(.text+0x312): undefined reference to `sincos'
eglgears.c:(.text+0x36b): undefined reference to `sincos'
eglgears.c:(.text+0x3c4): undefined reference to `sincos'
eglgears.o:eglgears.c:(.text+0x41a): more undefined references to `sincos' follow
eglgears.o: In function `T.55':
eglgears.c:(.text+0x854): undefined reference to `sincosf'
eglgears.c:(.text+0x88c): undefined reference to `sincos'
eglgears.c:(.text+0x91f): undefined reference to `sincos'
eglgears.c:(.text+0xa2f): undefined reference to `sincos'
eglgears.c:(.text+0xabc): undefined reference to `sincos'
eglgears.c:(.text+0xb06): undefined reference to `sin'
eglgears.c:(.text+0xc59): undefined reference to `sincosf'
eglgears.c:(.text+0xc93): undefined reference to `sincos'
collect2: ld returned 1 exit status
make[2]: *** [eglgears] Error 1
make[2]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/progs/egl'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/flamelab/Projects/NOUVEAU/mesa-full/src/mesa-build/progs'
make: *** [default] Error 1
==> ERROR: Build Failed.
    Aborting...
What should I do ?

1)Should I abandon trying to build mesa with G3D Nouveau support since the devs don't want bugreporting right now ?
2)Should I make a bugreport for eglgears ?

Thank you.

Regards,

Panos Filip
Comment 4 Xavier 2010-02-15 06:29:46 UTC
(In reply to comment #3)
> 1)Should I abandon trying to build mesa with G3D Nouveau support since the devs
> don't want bugreporting right now ?

Yes.

> 2)Should I make a bugreport for eglgears ?
> 

I don't know, this looks strange to me. Is this a clean build ?
Remove mesa-build and try again.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.