Bug 93547

Summary: Built failed for "Mesa (master): nouveau: remove use of deprecated nouveau_device:: drm_version"
Product: Mesa Reporter: davidtecher <davidtecher>
Component: Drivers/DRI/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Nouveau Project <nouveau>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description davidtecher 2015-12-31 10:54:18 UTC
I was trying to rebuilt Mesa from Git (31-Dec-2015).

There were two errors.

1. The following file 

#include "...nouveau.h"

was missing in both

- src/gallium/drivers/nouveau/nouveau_screen.c

- src/mesa/drivers/dri/nouveau/nouveau_screen.c

Compiler complained that 'nouveau_drm_new', 'nouveau_device_new', 'nouveau_destroy_screen' were functions implicitly declared

So I had (Sorry I am not a programer :( )

#include "/usr/include/libdrm/nouveau/nouveau.h"

To fix the problem. And it was OK.

2. The second issue is for the commit provided on 22-Dec-2015

/bin/bash ../../../../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"11.2.0-devel\" -DPACKAGE_STRING=\"Mesa\ 11.2.0-devel\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" -DPA
KAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"11.2.0-devel\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D
AVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_
OPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_FUNC_ATTRIBUTE_PURE=1 -DHAVE_FUNC_ATTRI
UTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -DHAVE_SHA1_IN_LIBNETTLE=1 -I.  -I./include -I../../../../src -I../../../../include -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../.
/../../src/gallium/drivers -I../../../../src/gallium/winsys -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_
LOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DHAVE_SHA1 -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include/libdr
  -I/usr/include/libdrm -I/usr/include/libdrm/nouveau -I/usr/include/libdrm    -Og -ggdb -g -gdwarf-2 -gstrict-dwarf -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-math-errno -fno-trapping-math -fno-builtin-memcmp
 -MT nv50/nv50_push.lo -MD -MP -MF $depbase.Tpo -c -o nv50/nv50_push.lo nv50/nv50_push.c &&\
mv -f $depbase.Tpo $depbase.Plo
nv50/nv50_miptree.c: In function 'nv50_miptree_create':
nv50/nv50_miptree.c:342:25: error: dereferencing pointer to incomplete type
    bool compressed = drm->version >= 0x01000101;
                         ^
Makefile:1251: recipe for target 'nv50/nv50_miptree.lo' failed
make[3]: *** [nv50/nv50_miptree.lo] Error 1
Comment 1 Karol Herbst 2015-12-31 11:00:24 UTC
do you have libdrm from master installed? nouveau needs at least 2.4.66 now anyway.
Comment 2 davidtecher 2015-12-31 21:32:13 UTC
Yes both drm and nouveau are synch'ed with their own master.

I tested/built drm/nouveau with the latest versions and got this issue

I am not a expert but could it be related to the kernel version that I am using. I am on Kernel 4.1.13
Comment 3 Ilia Mirkin 2016-07-09 04:36:09 UTC
This issue generally happens when you don't use packages, but rather "make install" directly onto your system. What ended up happening is that a file moved between versions of libdrm, and you probably have a stale version of one of the header files which is getting included.

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.