|
Message-ID: <1417114684.63100.32.camel@btw.pki2.com> Date: Thu, 27 Nov 2014 10:58:04 -0800 From: Dennis Glatting <dg@...2.com> To: Patrick Proniewski <patpro@...pro.net> Cc: john-users@...ts.openwall.com Subject: Re: OpenMP on FreeBSD ? On Thu, 2014-11-27 at 19:14 +0100, Patrick Proniewski wrote: > On 27 nov. 2014, at 17:09, Dennis Glatting wrote: > > >> Any idea why the FreeBSD port fails using OpenMP code? > > > > Compile with GCC5. Clang does not support OpenMP. > > Thank you, it worked (almost). Compilation is ok and openmp is properly taken into account. Unfortunately when I try the binary, an error occurs: > > john --test > /usr/lib/libgomp.so.1: version GOMP_4.0 required by /usr/ports/security/john/work/john-1.7.9-jumbo-7/run/john not found > > Of course. > /usr/lib/libgomp.so.1 is in the base system and provides GOMP_1. > /usr/local/lib/gcc5/libgomp.so.1 is installed with gcc5 port and provides GOMP_4.0.1. > > I'll have to tweak settings at compile time to use library provided with gcc5 at runtime automatically. In the mean time, using LD_LIBRARY_PATH helps: > > LD_LIBRARY_PATH=/usr/local/lib/gcc5 john --format=des --test > Benchmarking: Traditional DES [128/128 BS SSE2-16]... (2xOMP) DONE > Many salts: 3129K c/s real, 1641K c/s virtual > Only one salt: 2991K c/s real, 1587K c/s virtual > > > patpro You need to either set LD_LIBRARY_PATH to where the library resides or include something like this is LDFLAGS (against GCC 4.9). -Wl,-rpath=/usr/local/lib -Wl,-rpath=/usr/local/lib/gcc49 I have OpenMP under FreeBSD running on several servers but I am also using bleeding edge (1Sep2014) from the git hub and cobbled Makefile.legacy (Kerberos has to be explicitly disabled and it is better if a few other things are explicitly specified). Below is a couple of items from my Makefile.legacy. There's probably a few things I forgot to include here. For performance reasons you should try various compilation flags and run speed tests. I also recommend testing different versions of GCC. Flags specific to your processor helps too. CC = gcc49 CXX = g++49 OMPFLAGS = -fopenmp -msse4.2 -g -Ofast HAVE_LIBGMP = -DHAVE_LIBGMP GMP_LDFLAGS = -lgmp HAVE_KRB5 = KRB5_LDFLAGS = LDFLAGS = -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz \ $(OMPFLAGS) $(NSS_LDFLAGS) $(GMP_LDFLAGS) $(KRB5_LDFLAGS) \ $(JOHN_LDFLAGS) $(REXGEN_LDFLAGS) \ -g -Wl,-rpath=/usr/local/lib -Wl,-rpath=/usr/local/lib/gcc49 freebsd-x86-64-dpg: $(LN) x86-64.h arch.h @echo "#define JOHN_BLD" '"'$@'"' > john_build_rule.h $(MAKE_ORIG) $(PROJ) \ JOHN_OBJS="$(JOHN_OBJS) \ c3_fmt.o x86-64.o sse-intrinsics-64.o " \ CFLAGS="${CFLAGS} -D__BSD_VISIBLE -DHAVE_CRYPT \ -DUSING_ICC_S_FILE -mxop -mavx -march=native " \ ASFLAGS="$(ASFLAGS) -mxop -mavx -march=bdver2 " \ LDFLAGS="$(LDFLAGS) -lcrypt " \ AESNI_ARCH=64 @echo "Failing after this point just means some helper tools did not bui ld:" $(MAKE_ORIG) @echo "All done" -- Dennis Glatting <dg@...2.com>
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.