Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 17 Jul 2014 16:03:59 +0000
From: Pyrex <pyrex@...networks.net>
To: "john-users@...ts.openwall.com" <john-users@...ts.openwall.com>
Subject: RE: Help Compiling John on ARM w/ MPI & CUDA

OK this is the output from configure, it crashed out when attempting to compile... Any feedback?

./configure --enable-mpi
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
checking whether to compile using MPI... yes
checking for mpicc... mpicc
checking for gcc... (cached) mpicc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mpicc accepts -g... yes
checking for mpicc option to accept ISO C89... none needed
checking whether mpicc understands -c and -o together... yes
checking for function MPI_Init... yes
checking for mpi.h... yes
checking additional paths...  -L/usr/local/lib -I/usr/local/include
checking arg check macro for -m with mpicc... yes
checking arg check macro for -Q with mpicc... yes
checking if mpicc supports -funroll-loops... yes
checking if mpicc supports -Os... yes
checking if mpicc supports -finline-functions... yes
checking if mpicc supports -Wall... yes
checking if mpicc supports -Wdeclaration-after-statement... yes
checking if mpicc supports -fomit-frame-pointer... yes
checking if mpicc supports --param allow-store-data-races=0... yes
checking if mpicc supports -Wno-deprecated-declarations... yes
checking if mpicc supports -Wno-format-extra-args... yes
checking if mpicc supports -Qunused-arguments... no
checking whether ln -s works... yes
checking for grep that handles long lines and -e... /bin/grep
checking for a sed that does not truncate output... /bin/sed
checking whether make sets $(MAKE)... yes
checking how to run the C preprocessor... mpicc -E
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for sort... /usr/bin/sort
checking for ar... /usr/bin/ar
checking for find... /usr/bin/find
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking if pkg-config will be used... yes
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of char... 1
checking size of unsigned char... 1
checking size of short... 2
checking size of unsigned short... 2
checking size of int... 4
checking size of unsigned... 4
checking size of unsigned int... 4
checking size of long... 4
checking size of long long... 8
checking size of double... 8
checking size of long double... 8
checking size of int *... 4
checking size of long long *... 4
checking size of void *... 4
checking for arch.h alternative... arm32le.h
checking whether compiler understands -march=native... yes
checking for 32/64 bit... 32-bit
checking for extra ASFLAGS... None needed
checking for unaligned memory access allowed... yes
checking for byte ordering according to target triple... little
checking for OPENSSL... yes
checking for sqrt in -lm... yes
checking for deflate in -lz... yes
checking for library containing crypt... -lcrypt
checking krb5.h usability... yes
checking krb5.h presence... yes
checking for krb5.h... yes
checking for library containing krb5_is_thread_safe... -lkrb5
checking for library containing krb5_c_string_to_key... -lk5crypto
checking for library containing krb5_c_string_to_key_with_params... none required
checking for library containing krb5_free_keyblock_contents... none required
checking heim_err.h usability... no
checking heim_err.h presence... no
checking for heim_err.h... no
checking heimdal/heim_err.h usability... no
checking heimdal/heim_err.h presence... no
checking for heimdal/heim_err.h... no
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking skey.h usability... no
checking skey.h presence... no
checking for skey.h... no
checking for S/Key... using our own code
checking bzlib.h usability... no
checking bzlib.h presence... no
checking for bzlib.h... no
checking for main in -lkernel32... no
checking for dlopen in -ldl... yes
checking librexgen/api/c/librexgen.h usability... no
checking librexgen/api/c/librexgen.h presence... no
checking for librexgen/api/c/librexgen.h... no
checking pcap.h usability... yes
checking pcap.h presence... yes
checking for pcap.h... yes
checking for pcap_compile in -lpcap... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether string.h and strings.h may both be included... yes
checking for EVP_aes_256_xts... yes
checking for SHA256... yes
checking for WHIRLPOOL... yes
checking for AES_encrypt... yes
checking for EVP_sha512... yes
checking for BIO_new... yes
checking for NSS... yes
checking for mpicc option to support OpenMP... -fopenmp
checking additional paths for OpenCL... none
checking if compiler needs -Werror to reject unknown flags... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking whether we are using the Microsoft C compiler... no
checking CL/cl.h usability... no
checking CL/cl.h presence... no
checking for CL/cl.h... no
checking OpenCL/cl.h usability... no
checking OpenCL/cl.h presence... no
checking for OpenCL/cl.h... no
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking for OpenCL library... no
checking additional paths for CUDA...  -L/usr/local/cuda/lib -I/usr/local/cuda/include
checking for nvcc... /usr/local/cuda-6.0/bin/nvcc
checking for llvm-gcc-4.2... no
checking for gcc-4.6... no
checking for gcc-4.5... no
checking for gcc-4.4... no
checking for gcc-4.3... no
checking for gcc-4.2... no
checking cuda.h usability... yes
checking cuda.h presence... yes
checking for cuda.h... yes
checking for cudaGetDeviceCount in -lcudart... yes
checking OS.h usability... no
checking OS.h presence... no
checking for OS.h... no
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking net/ethernet.h usability... yes
checking net/ethernet.h presence... yes
checking for net/ethernet.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/in_systm.h usability... yes
checking netinet/in_systm.h presence... yes
checking for netinet/in_systm.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/ethernet.h usability... no
checking sys/ethernet.h presence... no
checking for sys/ethernet.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking for sys/types.h... (cached) yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking unixlib/local.h usability... no
checking unixlib/local.h presence... no
checking for unixlib/local.h... no
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for windows.h... (cached) no
checking for net/if.h... yes
checking for net/if_arp.h... yes
checking for netinet/if_ether.h... yes
checking for netinet/ip.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for int32_t... yes
checking for int64_t... yes
checking for off_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for ptrdiff_t... yes
checking for error_at_line... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for fseek64... no
checking for fseeko... yes
checking for fseeko64... yes
checking for _fseeki64... no
checking for lseek64... yes
checking for lseek... yes
checking for ftell64... no
checking for ftello... yes
checking for ftello64... yes
checking for _ftelli64... no
checking for fopen64... yes
checking for _fopen64... no
checking for memmem... yes
checking for sleep... yes
checking for atexit... yes
checking for endpwent... yes
checking for floor... no
checking for ftruncate... yes
checking for gethostbyname... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for isascii... yes
checking for mkdir... yes
checking for rmdir... yes
checking for setenv... yes
checking for putenv... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for stricmp... no
checking for strcmpi... no
checking for _stricmp... no
checking for _strcmpi... no
checking for strnicmp... no
checking for strncmpi... no
checking for _strnicmp... no
checking for _strncmpi... no
checking for strrchr... yes
checking for strcspn... yes
checking for strspn... yes
checking for strtol... yes
checking for strtoul... yes
checking for strlwr... no
checking for strupr... no
checking for bzero... yes
checking for atoll... yes
checking for _atoi64... no
checking for snprintf... yes
checking for sprintf_s... no
checking for OS-specific feature macros needed...  -D_GNU_SOURCE
checking size of size_t... 4
checking size of off_t... 4
configure: creating ./john_build_rule.h
configure: creating ./config.status
config.status: creating Makefile
config.status: creating aes/Makefile
config.status: creating aes/aesni/Makefile
config.status: creating aes/openssl/Makefile
config.status: creating escrypt/Makefile
config.status: creating autoconfig.h
config.status: linking arm32le.h to arch.h
config.status: executing default commands
configure: creating ./fmt_externs.h
configure: creating ./fmt_registers.h

Configured for building John the Ripper 1.8.0.2-bleeding-jumbo:

Target CPU .................................. armv7l, 32-bit LE
AES-NI support .............................. no
Target OS ................................... linux-gnueabihf
Cross compiling ............................. no
Legacy arch header .......................... arm32le.h
OpenMPI support (default disabled) .......... yes
Fork support ................................ yes
OpenMP support .............................. yes
OpenCL support .............................. no
CUDA support ................................ yes
Generic crypt(3) format ..................... yes

Optional libraries found:
Rexgen (extra cracking mode) ................ no
GMP (performance) ........................... yes
NSS/NSPR (Mozilla format) ................... yes
Kerberos5 (krb5-18/23 formats) .............. yes (MIT)
PCAP (vncpcap2john and SIPdump) ............. yes
BZ2 (gpg2john extra decompression logic) .... yes

Install missing libraries to get any needed features that were omitted.

Configure finished.  Do 'make -s' to compile.
root@...0:~/src/magnumripper-JohnTheRipper-34995bd/src# make -s clean
root@...0:~/src/magnumripper-JohnTheRipper-34995bd/src# make -sj4
DES_std.c: In function ‘DES_std_set_key’:
DES_std.c:637:17: warning: array subscript is above array bounds [-Warray-bounds]
   while (DES_key[i++]) k += 2;
                 ^
dynamic_fmt.c:6525:12: warning: ‘isMD5Func’ defined but not used [-Wunused-function]
 static int isMD5Func(DYNAMIC_primitive_funcp p) {
            ^
dynamic_fmt.c:6711:12: warning: ‘LCM’ defined but not used [-Wunused-function]
 static int LCM(int a, int b) {
            ^
nvcc fatal   : Value 'sm_10' is not defined for option 'gpu-architecture'
make[1]: *** [cuda_common.o] Error 255
make[1]: *** Waiting for unfinished jobs....
make: *** [default] Error 2

________________________________
From: Pyrex
Sent: Thursday, July 17, 2014 9:22 AM
To: john-users@...ts.openwall.com
Subject: RE: [john-users] Help Compiling John on ARM w/ MPI & CUDA

I apologize my phone only displayed a small portion of this email. I am building a large cluster of NVIDIA Jetson TK1 Dev Boards. I am doing this mostly for learning purposes but I'd like to try a benchmark using JtR against the cluster. However, I have only been able to get simple CPU based attacks working thus far. I appreciate the feedback and I am using an older version of JtR jumbo which is "7". I will try compiling the bleeding edge version and see how that goes.

-Pyrex
________________________________
From: Pyrex
Sent: Thursday, July 17, 2014 8:44 AM
To: john-users@...ts.openwall.com
Subject: RE: [john-users] Help Compiling John on ARM w/ MPI & CUDA

They claim they do support OpenCL but it's in beta form at the moment.

-Pyrex
________________________________
From: Solar Designer<mailto:solar@...nwall.com>
Sent: ‎7/‎17/‎2014 7:50 AM
To: john-users@...ts.openwall.com<mailto:john-users@...ts.openwall.com>
Subject: Re: [john-users] Help Compiling John on ARM w/ MPI & CUDA

On Wed, Jul 16, 2014 at 10:27:49PM +0000, Pyrex wrote:
> I am attempting to compile John on ARM with MPI and CUDA support

What hardware do you have?

Does NVIDIA also support OpenCL on their ARM devices, like it does on x86?
We have more OpenCL than CUDA kernels in JtR bleeding-jumbo, and some of
them are better optimized than their CUDA counterparts (so are faster even
on NVIDIA devices).

> however, it doesn't even support the ARM architecture.

What version of JtR are you using?

For 1.8.0, there's john-1.8.0-arm.diff.gz here:

http://download.openwall.net/pub/projects/john/1.8.0/

It adds NEON support for DES-based hashes.  If you don't need that, then
"make generic" works fine (takes longer to build, though).

For CUDA/OpenCL, as well as to have support for many more hash and
cipher types, you need jumbo.  In current bleeding-jumbo, the ./configure
script should take care of everything, but there's also Makefile.legacy,
with which you may explicitly build as:

make -f Makefile.legacy linux-arm32le-neon

or:

make -f Makefile.legacy linux-arm32le

These "legacy" builds won't try to enable CUDA.  For that, just use
./configure and it _might_ detect your CUDA even on ARM (I think we've
never tested that combination so far).

https://github.com/magnumripper/JohnTheRipper/tarball/bleeding-jumbo

> I was able to compile it using "generic" as my compile option "make generic" and I was also able to get MPI working by editing the Makefile and commenting the MPI references.

Are you building a cluster of many ARM boards?

> I cannot get CUDA working.... I tried copy / pasting some of the extra flags I saw in the other compile options but I came up with nothing that works... Would anyone be able to help me? I would very much appreciate it!

First, please try bleeding-jumbo.  It sounds like you're experimenting
with an older version now.  Then please report your results for
bleeding-jumbo in here, including some specifics - e.g., the portion of
./configure script output where it probes for CUDA, or whatever else you
find relevant.  (And as I have mentioned, it is actually more important
to get OpenCL going.)

Thanks,

Alexander
No malware was found: Scanned by TiSnetworks E-Mail Security Systems.


Content of type "text/html" skipped

No malware was found: Scanned by TiSnetworks E-Mail Security Systems.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.