CL Build Failure
#1
Hi,

I'm new to hashcat and for me it is the first time using this software. So I copied the shadow file from my linux laptop and I'm trying to crack it from my Windows Desktop.

It appears this error and I coudn't understand the problem.

Thank you in advance
Lorenzo

Code:
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL>"../hashcat64.exe" -m 1800 -a 3 -o D:\Users\Lorenzo\Desktop\laptop\soluzione -d 1 D:\Users\Lorenzo\Desktop\laptop\hash
hashcat (v3.10) starting...

OpenCL Platform #1: Advanced Micro Devices, Inc.
================================================
- Device #1: Hawaii, 4048/8192 MB allocatable, 44MCU
- Device #2: WARNING: Not a native Intel OpenCL runtime, expect massive speed loss
            You can use --force to override this but do not post error reports if you do so
- Device #2: Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz, skipped

Hashes: 1 hashes; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Applicable Optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Brute-Force
* Uses-64-Bit
Watchdog: Temperature abort trigger set to 90c
Watchdog: Temperature retain trigger set to 75c

- Device #1: Kernel m01800.e812b21e.kernel not found in cache! Building may take a while...


ERROR: clBuildProgram(): CL_BUILD_PROGRAM_FAILURE


D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:186:21: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'const u64 *' (aka 'const unsigned long *') changes address space of poin
ter
 sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                   ^~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:34: note: passing argument to parameter 'w' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                ^
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:186:38: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'u64 *' (aka 'unsigned long *') changes address space of pointer
 sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                                    ^~~~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:45: note: passing argument to parameter 'digest' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                           ^
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:209:23: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'const u64 *' (aka 'const unsigned long *') changes address space of poin
ter
   sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                     ^~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:34: note: passing argument to parameter 'w' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                ^
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:209:40: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'u64 *' (aka 'unsigned long *') changes address space of pointer
   sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                                      ^~~~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:45: note: passing argument to parameter 'digest' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                           ^
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:231:21: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'const u64 *' (aka 'const unsigned long *') changes address space of poin
ter
 sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                   ^~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:34: note: passing argument to parameter 'w' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                ^
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:231:38: error: passing '__generic u64 *' (aka '__generic unsigned long *') to parameter of type 'u64 *' (aka 'unsigned long *') changes address space of pointer
 sha512_transform (sha512_ctx->buf, sha512_ctx->state);
                                    ^~~~~~~~~~~~~~~~~
D:\Users\Lorenzo\Downloads\Chrome\hashcat-3.10\OpenCL\\OCL8312T5.cl:61:45: note: passing argument to parameter 'digest' here
void sha512_transform (const u64 w[16], u64 digest[8])
                                           ^
6 errors generated.

error: Clang front-end compilation failed!
Frontend phase failed compilation.
Error: Compiling CL to IR



ERROR: clCreateKernel(): CL_INVALID_KERNEL_NAME
#2
It's a bug in latest AMD drivers (amd-gpu-pro). I've added a workaround to the latest hashcat version on GitHub.
#3
Thank you very much. I'm going to recompile it this night!
#4
You can also use precompiled betas from here: https://hashcat.net/beta/
#5
I have the same problem on my linux laptop with AMD GPU and CPU.

Code:
~/Downloads/hashcat/hashcat-3.30# ./hashcat64.bin -a 0 -m 400 example400.hash example.dict
hashcat (v3.30) starting...

OpenCL Platform #1: Mesa
========================
* Device #1: AMD ARUBA (DRM 2.43.0, LLVM 3.8.0), 256/1024 MB allocatable, 4MCU
* Device #2: AMD TURKS (DRM 2.43.0, LLVM 3.8.0), 256/1024 MB allocatable, 6MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable Optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Slow-Hash-SIMD

Watchdog: Hardware Monitoring Interface not found on your system
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled

Initializing device kernels and memory...clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

input.cl:20:1: error: OpenCL does not support the 'static' storage class specifier
input.cl:118:1: error: OpenCL does not support the 'static' storage class specifier

* Device #1: Kernel /root/Downloads/hashcat/hashcat-3.30/OpenCL/m00400.cl build failure. Proceeding without this device.

clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

input.cl:20:1: error: OpenCL does not support the 'static' storage class specifier
input.cl:118:1: error: OpenCL does not support the 'static' storage class specifier

* Device #2: Kernel /root/Downloads/hashcat/hashcat-3.30/OpenCL/m00400.cl build failure. Proceeding without this device.

Started: Wed Feb  1 20:33:05 2017
Stopped: Wed Feb  1 20:33:09 2017

With the beate the same error.

Can you help me?
#6
The MESA OpenCL runtime is broken like hell. You need to upgrade to a newer GPU to use the vendor drivers which include the vendors own OpenCL runtime.