On Fri, 2016-03-11 at 10:09 +0800, Chih-Wei Huang wrote: > 2016年3月10日 下午6:47於 "Marek Olšák" <mar...@gmail.com>寫道: > > > > > > Those functions are only supported by LLVM 3.7 and later, and if > > you > > have such a version, the AMDGPU backend must be enabled in your > > LLVM > > build. > Yes, I knew that. > But seems you misunderstood my question. > > It's a compile time error instead of a linking time error: > > external/mesa/src/gallium/drivers/radeon/radeon_llvm_emit.c: In > function 'init_r600_target': > external/mesa/src/gallium/drivers/radeon/radeon_llvm_emit.c:106:2: > error: implicit declaration of function > 'LLVMInitializeAMDGPUTargetInfo' > [-Werror=implicit-function-declaration] > LLVMInitializeAMDGPUTargetInfo(); > ^ > external/mesa/src/gallium/drivers/radeon/radeon_llvm_emit.c:107:2: > error: implicit declaration of function 'LLVMInitializeAMDGPUTarget' > [-Werror=implicit-function-declaration] > LLVMInitializeAMDGPUTarget(); > ^ > external/mesa/src/gallium/drivers/radeon/radeon_llvm_emit.c:108:2: > error: implicit declaration of function > 'LLVMInitializeAMDGPUTargetMC' > [-Werror=implicit-function-declaration] > LLVMInitializeAMDGPUTargetMC(); > ^ > external/mesa/src/gallium/drivers/radeon/radeon_llvm_emit.c:109:2: > error: implicit declaration of function > 'LLVMInitializeAMDGPUAsmPrinter' > [-Werror=implicit-function-declaration] > LLVMInitializeAMDGPUAsmPrinter(); > ^ > > cc1: some warnings being treated as errors > > > Some proposed patches on the mesa side: > > https://sourceforge.net/p/android-x86/external_mesa/ci/f6611f58cf89a4 > 0e013b20180604f65707b6e73e/ > (add a header to declare the functions) > > https://github.com/maurossi/mesa/commit/deb3a6ebb7fdba688b0331bd0e4b2 > 7acfc9d869f > (disable implicit declaration warnings) > > But I'm still not sure whether if it should be fixed on the mesa > side. > > So my question is, what kind of fix do we want (i.e., acceptable by > the upstream)?
this is the result of using llvm without AMDGPU backend. the header "llvm-c/Target.h" includes "llvm/Config/Targets.def" and declares functions based on backends listed there (selected at llvm build time). Your "llvm/Config/Targets.def" needs to include this line: LLVM_TARGET(AMDGPU) otherwise the functions are not declared. probably the only patch needed on mesa side is to detect this at configure time. regards, Jan > > > > > On Thu, Mar 10, 2016 at 10:04 AM, Chih-Wei Huang > > <cwhu...@android-x86.org> wrote: > > > > > > Hi devs, > > > On building 64-bit Android-x86 mesa with amdgpu support, > > > we got some errors about the symbols LLVMInitializeAMDGPU* > > > are not defined. (missing prototypes) > > > > > > It's easy to fix the errors by adding the definition of > > > the function prototypes. > > > However, I'm curious in which side it should be fixed? > > > The mesa or llvm? > > > > > > Does the llvm forgot to provide a header for these functions? > > > Or the functions are internal APIs of llvm that should not be > > > used > > > by mesa directly? > > > > > > Any comment? > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: This is a digitally signed message part
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev