Bug 86760 - mesa doesn't build: recipe for target 'r600_llvm.lo' failed
Summary: mesa doesn't build: recipe for target 'r600_llvm.lo' failed
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-27 01:47 UTC by Jos van Wolput
Modified: 2014-11-27 04:12 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Jos van Wolput 2014-11-27 01:47:59 UTC
Build failure in mesa 07ae697... (r600g: merge the TXQ and BUFFER constant buffers, committer Dave Airlie)
make ends with the following error:
-----
CC r600_llvm.lo
r600_llvm.c: In function 'llvm_emit_tex':
r600_llvm.c:26:61: error: 'R600_TXQ_CONST_BUFFER' undeclared (first use in this function)
 #define CONSTANT_TXQ_BUFFER (CONSTANT_BUFFER_0_ADDR_SPACE + R600_TXQ_CONST_BUFFER)
                                                             ^
r600_llvm.c:693:46: note: in expansion of macro 'CONSTANT_TXQ_BUFFER'
     llvm_load_const_buffer(bld_base, offset, CONSTANT_TXQ_BUFFER),
                                              ^
r600_llvm.c:26:61: note: each undeclared identifier is reported only once for each function it appears in
 #define CONSTANT_TXQ_BUFFER (CONSTANT_BUFFER_0_ADDR_SPACE + R600_TXQ_CONST_BUFFER)
                                                             ^
r600_llvm.c:693:46: note: in expansion of macro 'CONSTANT_TXQ_BUFFER'
     llvm_load_const_buffer(bld_base, offset, CONSTANT_TXQ_BUFFER),
                                              ^
Makefile:813: recipe for target 'r600_llvm.lo' failed
make[3]: *** [r600_llvm.lo] Error 1
-----
Comment 1 Alexandre Demers 2014-11-27 03:06:54 UTC
Dave, compared to your original patch (http://patchwork.freedesktop.org/patch/37363/), it seems the changes in src/gallium/drivers/r600/r600_llvm.c are missing in the commit.
Comment 2 Dave Airlie 2014-11-27 03:18:35 UTC
oops pushing fix now.
Comment 3 Jos van Wolput 2014-11-27 04:03:49 UTC
(In reply to Dave Airlie from comment #2)
> oops pushing fix now.
Dave,
it still doesn't build after your fix!
Now getting the following error (after make clean):
make
-----
  CC       r600_llvm.lo
r600_llvm.c: In function 'llvm_emit_tex':
r600_llvm.c:692:5: error: too many arguments to function 'llvm_load_const_buffer'
     llvm_load_const_buffer(bld_base, offset, LLVM_R600_BUFFER_INFO_CONST_BUFFER,
     ^
r600_llvm.c:29:21: note: declared here
 static LLVMValueRef llvm_load_const_buffer(
                     ^
r600_llvm.c:693:42: error: expected ')' before ';' token
     lp_build_const_int32(gallivm, 0), "");
                                          ^
r600_llvm.c:691:26: error: too few arguments to function 'LLVMBuildExtractElement'
    LLVMValueRef ZLayer = LLVMBuildExtractElement(gallivm->builder,
                          ^
In file included from ../../../../src/gallium/drivers/radeon/radeon_llvm.h:30:0,
                 from r600_llvm.h:7,
                 from r600_llvm.c:1:
/usr/lib/llvm-3.5/include/llvm-c/Core.h:2700:14: note: declared here
 LLVMValueRef LLVMBuildExtractElement(LLVMBuilderRef, LLVMValueRef VecVal,
              ^
r600_llvm.c:698:3: error: expected ',' or ';' before '}' token
   }
    CC       r600_llvm.lo
r600_llvm.c: In function 'llvm_emit_tex':
r600_llvm.c:692:5: error: too many arguments to function 'llvm_load_const_buffer'
     llvm_load_const_buffer(bld_base, offset, LLVM_R600_BUFFER_INFO_CONST_BUFFER,
     ^
r600_llvm.c:29:21: note: declared here
 static LLVMValueRef llvm_load_const_buffer(
                     ^
r600_llvm.c:693:42: error: expected ')' before ';' token
     lp_build_const_int32(gallivm, 0), "");
                                          ^
r600_llvm.c:691:26: error: too few arguments to function 'LLVMBuildExtractElement'
    LLVMValueRef ZLayer = LLVMBuildExtractElement(gallivm->builder,
                          ^
In file included from ../../../../src/gallium/drivers/radeon/radeon_llvm.h:30:0,
                 from r600_llvm.h:7,
                 from r600_llvm.c:1:
/usr/lib/llvm-3.5/include/llvm-c/Core.h:2700:14: note: declared here
 LLVMValueRef LLVMBuildExtractElement(LLVMBuilderRef, LLVMValueRef VecVal,
              ^
r600_llvm.c:698:3: error: expected ',' or ';' before '}' token
   }
   ^
r600_llvm.c:691:17: warning: unused variable 'ZLayer' [-Wunused-variable]
    LLVMValueRef ZLayer = LLVMBuildExtractElement(gallivm->builder,
                 ^
r600_llvm.c:701:13: error: invalid storage class for function 'emit_cndlt'
 static void emit_cndlt(
             ^
r600_llvm.c:715:13: error: invalid storage class for function 'dp_fetch_args'
 static void dp_fetch_args(
             ^
r600_llvm.c:752:2: error: initializer element is not constant
  .fetch_args = dp_fetch_args,
  ^
r600_llvm.c:752:2: error: (near initialization for 'dot_action.fetch_args')
r600_llvm.c:892:1: error: expected declaration or statement at end of input
 }
 ^
Makefile:813: recipe for target 'r600_llvm.lo' failed
make[3]: *** [r600_llvm.lo] Error 1
 ^
r600_llvm.c:691:17: warning: unused variable 'ZLayer' [-Wunused-variable]
    LLVMValueRef ZLayer = LLVMBuildExtractElement(gallivm->builder,
                 ^
r600_llvm.c:701:13: error: invalid storage class for function 'emit_cndlt'
 static void emit_cndlt(
             ^
r600_llvm.c:715:13: error: invalid storage class for function 'dp_fetch_args'
 static void dp_fetch_args(
             ^
r600_llvm.c:752:2: error: initializer element is not constant
  .fetch_args = dp_fetch_args,
  ^
r600_llvm.c:752:2: error: (near initialization for 'dot_action.fetch_args')
r600_llvm.c:892:1: error: expected declaration or statement at end of input
 }
 ^
Makefile:813: recipe for target 'r600_llvm.lo' failed
make[3]: *** [r600_llvm.lo] Error 1
-----
Comment 4 Dave Airlie 2014-11-27 04:12:19 UTC
this time for sure,

I don't advice using the llvm compiler backend for r600 btw.


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.