Discussion:
[john-users] implicit declaration of function `_mm_set_epi64x'
a***@lx42.de
2017-10-26 14:00:13 UTC
Permalink
Hello,

I am trying to compile jtr on an old Solaris machine:
SunOS uzktr 5.10 Generic_147441-01 i86pc i386 i86pc

It seems there is a compiler macro missing, is there a possibility to
have a fallback to a non-optimized code or is it possible to
deactivate this feature?
I deactivated a few plugs using
#ifdef ABC
to see how far it goes and it looks very promising, of course i cannot
link them together for the binary.


Regards,
Alexander



127 nfs__uzktr /nfs__share/ae/cc/uzktr/JohnTheRipper/src>make
/bin/sh: git: not found
make find_version
/bin/sh: git: not found
make[1]: Entering directory `/nfs__share/ae/cc/uzktr/JohnTheRipper/src'
echo "#define JTR_GIT_VERSION JOHN_VERSION" > version.h.new
diff >/dev/null 2>/dev/null version.h.new version.h && rm -f
version.h.new || mv -f version.h.new version.h
make[1]: Leaving directory `/nfs__share/ae/cc/uzktr/JohnTheRipper/src'
/bin/sh: git: not found
make[1]: Entering directory `/nfs__share/ae/cc/uzktr/JohnTheRipper/src'
gcc -DAC_BUILT -msse2 -DJOHN_SSE2 -c
-I/nfs__share/ae/cc/uzktr/curl/include -I/usr/local/include
-DARCH_LITTLE_ENDIAN=1 -DJOHN_SYSTEMWIDE
-DJOHN_SYSTEMWIDE_EXEC='"/nfs__share/ae/cc/uzktr/curl/bin"'
-DJOHN_SYSTEMWIDE_HOME='"/nfs__share/ae/cc/uzktr/curl/share/john"'
-Wall -Wdeclaration-after-statement -fomit-frame-pointer
-Wno-deprecated-declarations -Wunused-but-set-variable -std=gnu89
-Isx_prefix/include -Lsx_prefix/lib -D_REENTRANT -pthreads -DHAVE_HT
-I/usr/local/include -funroll-loops rawSHA512_ng_fmt_plug.c -o
rawSHA512_ng_fmt_plug.o
rawSHA512_ng_fmt_plug.c:36: warning: ignoring #pragma GCC optimize
rawSHA512_ng_fmt_plug.c: In function `crypt_all':
rawSHA512_ng_fmt_plug.c:313: warning: implicit declaration of function
`_mm_set_epi64x'
rawSHA512_ng_fmt_plug.c:313: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:314: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:320: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:323: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:326: warning: implicit declaration of function
`_mm_set1_epi64x'
rawSHA512_ng_fmt_plug.c:326: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:327: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:328: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:329: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:330: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:331: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:332: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:333: error: incompatible types in assignment
rawSHA512_ng_fmt_plug.c:335: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:336: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:337: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:338: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:339: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:340: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:341: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:342: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:343: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:344: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:345: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:346: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:347: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:348: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:349: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:350: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:352: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:353: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:354: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:355: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:356: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:357: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:358: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:359: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:360: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:361: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:362: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:363: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:364: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:365: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:366: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:367: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:369: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:370: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:371: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:372: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:373: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:374: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:375: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:376: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:377: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:378: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:379: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:380: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:381: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:382: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:383: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:384: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:386: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:387: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:388: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:389: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:390: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:391: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:392: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:393: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:394: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:395: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:396: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:397: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:398: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:399: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:400: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:401: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:403: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:404: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:405: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:406: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:407: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:408: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:409: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:410: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:411: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:412: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:413: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:414: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:415: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:416: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:417: error: incompatible type for argument 2
of `_mm_add_epi64'
rawSHA512_ng_fmt_plug.c:418: error: incompatible type for argument 2
of `_mm_add_epi64'
make[1]: *** [rawSHA512_ng_fmt_plug.o] Error 1
make[1]: Leaving directory `/nfs__share/ae/cc/uzktr/JohnTheRipper/src'
make: *** [default] Error 2
2 nfs__uzktr /nfs__share/ae/cc/uzktr/JohnTheRipper/src>
Solar Designer
2017-10-26 19:25:30 UTC
Permalink
Post by a***@lx42.de
SunOS uzktr 5.10 Generic_147441-01 i86pc i386 i86pc
Can you show the options to (if any) and the output of "./configure"?
What's your gcc version?
Post by a***@lx42.de
It seems there is a compiler macro missing,
Or rather, missing support for some of the x86 SIMD intrinsics that we
use. You could probably get around this by installing newer gcc.
Post by a***@lx42.de
is there a possibility to
have a fallback to a non-optimized code or is it possible to
deactivate this feature?
Something like this might work to produce a non-SIMD build:

make distclean
./configure --disable-native-tests CFLAGS='-O2 -mno-sse2 -mno-mmx -U__SSE__'

IIRC, the last "-U__SSE__" was needed specifically on Linux with glibc,
where fully disabling compilation of SSE intrinsics didn't work, so you
might instead have better luck with the cleaner "-mno-sse" since you're
on a different system.
Post by a***@lx42.de
rawSHA512_ng_fmt_plug.c:313: warning: implicit declaration of function
`_mm_set_epi64x'
If this intrinsic is the only one missing, you could define its
equivalent e.g. using one of the examples from:

https://stackoverflow.com/questions/23480188/initializing-an-m128-type-from-a-64-bit-unsigned-int

But probably more are missing as well.

Alexander

Loading...