Skip to content

John The Ripper compile error (Gentoo)

So I was trying to build John The Ripper 1.8.0 but it failed here:

In file included from /usr/include/string.h:494,
from c3_fmt.c:20:
In function ‘strncpy’,
inlined from ‘binary’ at c3_fmt.c:173:2:
/usr/include/bits/string_fortified.h:106:10: warning: ‘__builtin_strncpy’ specified bound 128 equals destination size [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
x86_64-pc-linux-gnu-gcc DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o dummy.o batch.o
bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o m
isc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o unshadow.o unafs.o unique.o c3_fmt.o x86-64.o -Wl,-O1 -W
l,–as-needed -fopenmp -lcrypt -o ../run/john
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: john.o: in function `main’:
john.c:(.text.startup+0x89): undefined reference to `CPU_detect’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: john.c:(.text.startup+0xc0): undefined reference to `CPU_detect’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: john.c:(.text.startup+0xed): undefined reference to `CPU_detect’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: john.c:(.text.startup+0x532): undefined reference to `CPU_detect’
collect2: error: ld returned 1 exit status
make[1]: ** [Makefile:835: ../run/john] Error 1
make[1]: Leaving directory ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/work/john-1.8.0/src’
make: **
[Makefile:184: linux-x86-64] Error 2
make: Leaving directory ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/work/john-1.8.0/src’
ERROR: app-crypt/johntheripper-1.8.0::gentoo failed (compile phase):
emake failed

If you need support, post the output of `emerge –info ‘=app-crypt/johntheripper-1.8.0::gentoo’`,
the complete build log and the output of `emerge -pqv ‘=app-crypt/johntheripper-1.8.0::gentoo’`.
The complete build log is located at ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/temp/build.log’.
The ebuild environment file is located at ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/temp/environment’.
Working directory: ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/work/john-1.8.0’
* S: ‘/var/tmp/portage/app-crypt/johntheripper-1.8.0/work/john-1.8.0’

It turns out to be related to compiler options. Specifically I needed to NOT use -march=native and I needed to have “avx” in my CPU_FLAGS_X86. With those two changes I was able to compile (emerge) without further issues. After it finished compiling I switched my -march flag back to native.


No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.

Form options