Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 451540

Summary: app-crypt/johntheripper-1.7.9-r6 - emake linux-x86-mmx: x86-mmx.o: In function `DES_bs_crypt': (.text+0x20): multiple definition of `DES_bs_crypt'
Product: Gentoo Linux Reporter: Jeroen Roovers (RETIRED) <jer>
Component: Current packagesAssignee: Rick Farina (Zero_Chaos) <zerochaos>
Status: RESOLVED OBSOLETE    
Severity: normal CC: bircoph, crypto+disabled, david.w.noon, mbays, sam, zbox
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: app-crypt:johntheripper-1.7.9-r6:20130112-160439.log
Successful amd64 build log
app-crypt:johntheripper-1.7.9-r8:20131128-020503.log

Description Jeroen Roovers (RETIRED) gentoo-dev 2013-01-12 16:21:04 UTC
Created attachment 335340 [details]
app-crypt:johntheripper-1.7.9-r6:20130112-160439.log

i686-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 timer.o md5_go.o md5_eq.o md5.o rc4.o hmacmd5.o base64.o md4.o dynamic_fmt.o dynamic_parser.o dynamic_preloads.o dynamic_utils.o rawSHA224_fmt.o rawSHA256_fmt.o rawSHA384_fmt.o rawSHA512_fmt.o hmacMD5_fmt.o hmacSHA1_fmt.o hmacSHA224_fmt.o hmacSHA256_fmt.o hmacSHA384_fmt.o hmacSHA512_fmt.o episerver_fmt.o keepass_fmt.o pwsafe_fmt.o XSHA512_fmt.o hmailserver_fmt.o dragonfly3_fmt.o dragonfly4_fmt.o drupal7_fmt.o django_fmt.o cryptsha256_fmt.o cryptsha512_fmt.o SybaseASE_fmt.o SKEY_fmt.o ssh_fmt.o ssh2john.o pdf_fmt.o pdf2john.o pdfcrack_common.o pdfcrack_md5.o pdfparser.o pdfcrack.o pdfcrack_rc4.o unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o rar_fmt.o rar2john.o rawSHA0_fmt.o zip_fmt.o zip2john.o gladman_hmac.o gladman_pwd2key.o racf2john.o pwsafe2john.o keepass2john.o keychain2john.o wpapsk_fmt.o hccap2john.o mozilla_fmt.o KeyDBCracker.o mozilla_des.o lowpbe.o mozilla2john.o EPI_fmt_plug.o keychain_fmt_plug.o NETLMv2_fmt_plug.o odf_fmt_plug.o mskrb5_fmt_plug.o gost_fmt_plug.o osc_fmt_plug.o sapB_fmt_plug.o crc32_fmt_plug.o mysql_fmt_plug.o NETNTLM_fmt_plug.o NT_fmt_plug.o salted_sha1_fmt_plug.o PHPS_fmt_plug.o KRB5_fmt_plug.o nt2_fmt_plug.o racf_fmt_plug.o MSCHAPv2_fmt_plug.o sapG_fmt_plug.o KRB4_fmt_plug.o IPB2_fmt_plug.o rawMD4_fmt_plug.o rawSHA1_fmt_plug.o NS_fmt_plug.o pkzip_fmt_plug.o mssql05_fmt_plug.o XSHA_fmt_plug.o rawmd5u_fmt_plug.o oracle11_fmt_plug.o vnc_fmt_plug.o mysqlSHA1_fmt_plug.o gost_plug.o NETLM_fmt_plug.o NETNTLMv2_fmt_plug.o phpassMD5_fmt_plug.o PO_fmt_plug.o DOMINOSEC_fmt_plug.o HDAA_fmt_plug.o rawSHA1_linkedIn_fmt_plug.o sha1_gen_fmt_plug.o wbb3_fmt_plug.o NETSPLITLM_fmt_plug.o mssql-old_fmt_plug.o KRB5_std_plug.o sip_fmt_plug.o pixMD5_fmt_plug.o lotus5_fmt_plug.o mscash1_fmt_plug.o md4_gen_fmt_plug.o mscash2_fmt_plug.o KRB4_std_plug.o rawMD5_fmt_plug.o office_fmt_plug.o nsldap_fmt_plug.o DMD5_fmt_plug.o oracle_fmt_plug.o mediawiki_fmt_plug.o BFEgg_fmt_plug.o rawSHA1_ng_fmt.o plugin.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 misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o mkv.o mkvlib.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o unique.o  c3_fmt.o x86.o x86-mmx.o sha1-mmx.o md4-mmx.o md5-mmx.o -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed  -lssl -lcrypto -lm -lz  -fopenmp  -lcrypt -ldl -lssl -lcrypto -lm -lz  -fopenmp  -o ../run/john
x86-mmx.o: In function `DES_bs_crypt':
(.text+0x20): multiple definition of `DES_bs_crypt'
DES_bs_b.o:/var/tmp/portage/app-crypt/johntheripper-1.7.9-r6/work/john-1.7.9/src/DES_bs_b.c:1283: first defined here
x86-mmx.o: In function `DES_bs_crypt_25':
(.text+0x1de0): multiple definition of `DES_bs_crypt_25'
DES_bs_b.o:/var/tmp/portage/app-crypt/johntheripper-1.7.9-r6/work/john-1.7.9/src/DES_bs_b.c:1151: first defined here
x86-mmx.o: In function `DES_bs_crypt_LM':
(.text+0x3ec0): multiple definition of `DES_bs_crypt_LM'
DES_bs_b.o:/var/tmp/portage/app-crypt/johntheripper-1.7.9-r6/work/john-1.7.9/src/DES_bs_b.c:1456: first defined here
collect2: ld returned 1 exit status
make[1]: *** [../run/john] Error 1
make[1]: Leaving directory `/var/tmp/portage/app-crypt/johntheripper-1.7.9-r6/work/john-1.7.9/src'
make: *** [linux-x86-mmx] Error 2
make: Leaving directory `/var/tmp/portage/app-crypt/johntheripper-1.7.9-r6/work/john-1.7.9/src'


[ebuild     U  ] app-crypt/johntheripper-1.7.9-r6 [1.7.6-r1] USE="-custom-cflags mmx openmp -cuda% -minimal -mpi% -opencl% -sse2 (-altivec%)" 0 kB

Sat Jan 12 17:19:44 CET 2013
emerge --info app-crypt/johntheripper
Portage 2.2.0_alpha150 (default/linux/x86/10.0/desktop, gcc-4.6.3, glibc-2.15-r3, 3.5.7-gentoo-JeR i686)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.5.7-gentoo-JeR-i686-Intel-R-_Pentium-R-_4_CPU_2.60GHz-with-gentoo-2.1
Timestamp of tree: Sat, 12 Jan 2013 04:45:01 +0000
ld GNU ld (GNU Binutils) 2.22
distcc 3.1 i686-pc-linux-gnu [enabled]
ccache version 3.1.8 [disabled]
app-shells/bash:          4.2_p37
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/ccache:          3.1.8
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.4, 4.6.3
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.6 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo JeR
Installed sets: @system
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 --param l1-cache-size=8 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=pentium4 -O2 -pipe -Wall -g"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib/distcc/bin /usr/share/X11/app-defaults/XTerm /usr/share/X11/app-defaults/XTerm-color /usr/share/gnupg/qualified.txt /var/yp/Makefile"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=pentium4 --param l1-cache-size=8 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=pentium4 -O2 -pipe -Wall -g"
DISTDIR="/world/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=n"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distcc distlocks ebuild-locks fixlafiles merge-sync metadata-transfer news notitles parallel-fetch protect-owned sandbox sfperms sign splitdebug strict test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://mirror.cambrium.nl/pub/os/linux/gentoo/ http://mirror.leaseweb.com/gentoo/ http://gentoo.tiscali.nl/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/keeps/gentoo/packages/astrid"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/world/gentoo/portage"
PORTDIR_OVERLAY="/keeps/gentoo/local"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="256-color X \ a52 aac aalib acpi alsa amr apng asf audiofile bash-completion berkdb bl boost branding bzip2 cairo cdda cddb cdio cdr cli cpath cracklib crypt cscope css cups curl custom-cflags custom-cxxflags custom-optimization cxx dbus dga dillo dirac distinct-l divx dri dts dv dvd dvdr dvdread edl elf emboss encode exif extensions faac faad fame fbcon ffmpeg fftw flac flash fluidsynth fontconfig fontforge foomaticdb fortran freetype gallium gdbm geoip ggi gif gimpprint gles glib glut gmedia gnokii gnutls gpm graphite grp gs gstreamer gtk gtk2 hog iconv id3tag idn imlib inkjar ipv6 jingle jpeg ladspa lcms libcaca libsamplerate live llvm lm_sensors logrotate lua lzo mad matroska midi mikmod minizip mjpeg mmx mmxext mng modplug modules mozilla mozsvg mozxmlterm mp3 mp4 mpeg mplayer mudflap multislot musepack mvl mxxext ncurses nethack network network-cron nforce2 nl nls nptl nsplugin nss nvcontrol nvidia offensive ogg opengl openmp openssl optimisememory pam pango pcre pda pdf perl perl-geoipupdate physfs plotutils png ppds pppd python qpak qt3support quicktime readline realmedia rtc rtmp rtsp ruby samba savedconfig schroedinger sdl server session sftplogging shout skins smi smux snmp speex spell spidermonkey sse sse2 ssl stream svg sysfs syslog tcpd tetex tga theora threads thunar tiff truetype udev unicode upnp upower usb userlocales utils v4l v4l2 vaapi vcd vidix vim vim-syntax visualizer vlm vorbis wad web webdav-neon win32codecs winbind wmp wxwidgets x264 x86 xanim xcb xcomposite xft xml xml2 xosd xterm-color xulrunner xv xvfb xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB nl" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2013-01-12 18:45:18 UTC
After additionally setting USE=sse2, it does compile properly.

[ebuild   R   ] app-crypt/johntheripper-1.7.9-r6  USE="mmx openmp sse2 -cuda -custom-cflags -minimal -mpi -opencl"
Comment 2 David W Noon 2013-01-12 19:22:00 UTC
While SSE2 is fine for Pentium 4 processors, those of us with Athlon, Duron or Pentium III cannot use that option.  So, MMX is still broken for us.
Comment 3 Rick Farina (Zero_Chaos) gentoo-dev 2013-01-12 19:25:15 UTC
since I am unable to replicate on amd64 can you please attach the full build log of the successful (USE=sse2) run?
Comment 4 Agostino Sarubbo gentoo-dev 2013-01-12 21:03:21 UTC
same USE combo works here
Comment 5 Vicente Olivert Riera (RETIRED) gentoo-dev 2013-01-12 21:04:32 UTC
Same USE combo, works fine here on x86.
Comment 6 David W Noon 2013-01-13 14:25:53 UTC
(In reply to comment #3)
> since I am unable to replicate on amd64 can you please attach the full build
> log of the successful (USE=sse2) run?

I will take you at your word that you mean "successful" rather than "unsuccessful".  I will attach the build log from my amd64 box, which worked.  My problems are on an older x86 box that does not have SSE2 instructions.
Comment 7 David W Noon 2013-01-13 14:26:57 UTC
Created attachment 335482 [details]
Successful amd64 build log
Comment 8 Rick Farina (Zero_Chaos) gentoo-dev 2013-01-13 17:45:30 UTC
(In reply to comment #6)
> (In reply to comment #3)
> > since I am unable to replicate on amd64 can you please attach the full build
> > log of the successful (USE=sse2) run?
> 
> I will take you at your word that you mean "successful" rather than
> "unsuccessful".  I will attach the build log from my amd64 box, which
> worked.  My problems are on an older x86 box that does not have SSE2
> instructions.

I know it works on amd64, I can't make it fail on amd64.

What I need is a log from someone on x86 who has SSE2 and can disable that flag (for a failed build log) then enable that flag (for a successful build log) and paste both so I can figure out wtf is happening here.

If anyone can provide a fail and success from the same box that would be really really helpful. Otherwise I'll have to refer this issue to upstream and they will likely want the same.
Comment 9 Jeroen Roovers (RETIRED) gentoo-dev 2013-01-14 15:24:16 UTC
Whether or not DES_bs_crypt* is defined in src/x86-mmx.h depends on:

#if defined(__MMX__) && defined (_OPENMP)
#define DES_BS_ASM                      0

The only way this gets enabled is through the ebuild, with a blanket:
   use openmp && OMP="-fopenmp"


So it seems USE=mmx and USE=openmp should be mutually exclusive. Since the ebuild already does USE flag handling completely the wrong way, I hesitate to add a patch to work around yet another problem in the ebuild.
Comment 10 Jeroen Roovers (RETIRED) gentoo-dev 2013-11-28 00:52:13 UTC
*** Bug 492748 has been marked as a duplicate of this bug. ***
Comment 11 Martin Bays 2013-11-28 02:13:06 UTC
Created attachment 364118 [details]
app-crypt:johntheripper-1.7.9-r8:20131128-020503.log

Here's the log of a successful compile after enabling sse2; a failed compile
without sse2 on the same box is attached to the inadvertant dup 492748.
Comment 12 Yarda 2019-07-24 09:29:12 UTC
I compiled app-crypt/johntheripper-1.8.0 successfully with USE="-openmp" CPU_FLAGS_X86="mmx sse2",