It seems that the aes patch has still some issue here. CCing Alon Bar-Lev, he has already seen the asm code and certainly has more skills than me with asm code. x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I./.. -DOPTIMIZE_X86_64 -march=ath lon64 -Os -pipe -DNDEBUG -fomit-frame-pointer -Wa,--noexecstack -c aesopt.s -fP IC -DPIC -o .libs/aesopt.o aesopt.s: Assembler messages: aesopt.s:107: Error: suffix or operands invalid for `push' aesopt.s:108: Error: suffix or operands invalid for `push' aesopt.s:109: Error: suffix or operands invalid for `push' aesopt.s:110: Error: suffix or operands invalid for `push' aesopt.s:838: Error: suffix or operands invalid for `pop' aesopt.s:839: Error: suffix or operands invalid for `pop' aesopt.s:840: Error: suffix or operands invalid for `pop' aesopt.s:841: Error: suffix or operands invalid for `pop' aesopt.s:858: Error: suffix or operands invalid for `push' aesopt.s:859: Error: suffix or operands invalid for `push' aesopt.s:860: Error: suffix or operands invalid for `push' aesopt.s:861: Error: suffix or operands invalid for `push' aesopt.s:1597: Error: suffix or operands invalid for `pop' aesopt.s:1598: Error: suffix or operands invalid for `pop' aesopt.s:1599: Error: suffix or operands invalid for `pop' aesopt.s:1600: Error: suffix or operands invalid for `pop' aesopt.s:1626: Error: suffix or operands invalid for `push' aesopt.s:1627: Error: suffix or operands invalid for `push' aesopt.s:1628: Error: suffix or operands invalid for `push' aesopt.s:1629: Error: suffix or operands invalid for `push' aesopt.s:2357: Error: suffix or operands invalid for `pop' aesopt.s:2358: Error: suffix or operands invalid for `pop' aesopt.s:2359: Error: suffix or operands invalid for `pop' aesopt.s:2360: Error: suffix or operands invalid for `pop' aesopt.s:2377: Error: suffix or operands invalid for `push' aesopt.s:2378: Error: suffix or operands invalid for `push' aesopt.s:2379: Error: suffix or operands invalid for `push' aesopt.s:2380: Error: suffix or operands invalid for `push' aesopt.s:3116: Error: suffix or operands invalid for `pop' aesopt.s:3117: Error: suffix or operands invalid for `pop' aesopt.s:3118: Error: suffix or operands invalid for `pop' aesopt.s:3119: Error: suffix or operands invalid for `pop' make[2]: *** [aesopt.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/bee crypt-4.1.2' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/bee crypt-4.1.2' make: *** [all] Error 2 emerge --info Portage 2.1.2_pre3-r6 (default-linux/amd64/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.18-gentoo-r1 x86_64) ================================================================= System uname: 2.6.18-gentoo-r1 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.12.5 Last Sync: Mon, 23 Oct 2006 16:20:01 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS=" -march=athlon64 -Os -pipe " CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/jetty/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c" CXXFLAGS=" -march=athlon64 -Os -pipe " DISTDIR="/home/ftp/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps y" FEATURES="autoconfig ccache collision-protect cvs distlocks elog java-strict metadata-transfer multilib-strict sandbox sfperms sign strict stricter test userfetch userpriv" GENTOO_MIRRORS="http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/ ftp://ftp.unina.it/pub/linux/distributions/gentoo http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ " LANG="it_IT.utf8" LC_ALL="it_IT.utf8" LINGUAS="it" PKGDIR="/home/ftp/packages" PORTAGE_RSYNC_EXTRA_OPTS=" --timeout=400 --progress " PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/local/overlays/tinyos /usr/local/overlays/gentoo-java-experimental" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="amd64 7zip X a52 aac aalib acl acpi aiglx alsa amr aoss apache2 arts asf audiofile avahi bash-completion berkdb bitmap-fonts bl bzip2 cairo canvas caps ccache cdb cddb cdparanoia cdr chroot cli cpudetection cracklib crypt css cups curl dba dbus dga directfb djvu dlloader dmi dri dts dv dvd dvdr dvdread dynagraph elibc_glibc encode erandom esd exif expat extrafilters fame ffmpeg firefox flac fltk foomaticdb gd gdbm ggi gif gimp gimpprint glibc-omitfp glut gmp gnokii gnome gnutls gphoto2 gpm graphviz gtk gtkhtml guile hal howl-compat iconv idn ieee1394 imagemagick imlib input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog ithreads java javacomm jbig jikes jpeg jpeg2k justify kde kdeenablefinal kdehiddenvisibility kernel_linux lcms ldap libcaca libg++ libnotify linguas_it linuxthreads-tls lm_sensors logitech-mouse logrotate lzo mad mailwrapper matroska mbox mdb mhash mikmod mjpeg mmap mng motif mozsvg mp3 mpeg mpm-worker musepack musicbrainz mysql ncurses nfs nls nptl nptlonly nsplugin numeric nvidia odbc offensive ogg on-the-fly-crypt openexr opengl oss pam pcre pdf perl php png povray ppds pppd pulseaudio python qt3 qt4 quicktime rdesktop readline reflection rtc samba scanner sdl session slang smime smp sndfile snmp speex spell spl ssl subversion svg sysfs syslog tcltk tcpd test tetex tga theora threads tidy tiff timidity tk truetype truetype-fonts type1-fonts udev unicode usb userland_GNU userlocales utempter utf8 v4l v4l2 vcd vda video_cards_nv video_cards_nvidia vorbis vorbis-psy wmf xcomposite xine xinerama xml xml2 xorg xpm xscreensaver xv xvid xvmc yv12 zeroconf zlib" Unset: CTARGET, INSTALL_MASK, LDFLAGS, MAKEOPTS
I've committed a new patch. But... This is as far as I can go without upstream support. This is 32bit code, so having -march=athlon64 won't do any good to you.
(In reply to comment #1) > I've committed a new patch. > But... This is as far as I can go without upstream support. > This is 32bit code, so having -march=athlon64 won't do any good to you. > Without the new patch on 32bit chroot I've the following result: i686-pc-linux-gnu-g++ -shared -nostdlib /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../crti.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/crtbeginS.o .libs/aes.o .libs/base64.o .libs/beecrypt.o .libs/blockmode.o .libs/blockpad.o .libs/blowfish.o .libs/dhaes.o .libs/dldp.o .libs/dlkp.o .libs/dlpk.o .libs/dlsvdp-dh.o .libs/dsa.o .libs/elgamal.o .libs/endianness.o .libs/entropy.o .libs/fips186.o .libs/hmac.o .libs/hmacmd5.o .libs/hmacsha1.o .libs/hmacsha256.o .libs/md5.o .libs/hmacsha384.o .libs/hmacsha512.o .libs/memchunk.o .libs/mp.o .libs/mpbarrett.o .libs/mpnumber.o .libs/mpprime.o .libs/mtprng.o .libs/pkcs1.o .libs/pkcs12.o .libs/rsa.o .libs/rsakp.o .libs/rsapk.o .libs/sha1.o .libs/sha256.o .libs/sha384.o .libs/sha512.o .libs/sha_k.o .libs/timestamp.o .libs/cppglue.o .libs/aesopt.o .libs/blowfishopt.o .libs/mpopt.o .libs/sha1opt.o -lrt -lpthread -ldl -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.1 -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/crtendS.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../crtn.o -march=athlon64 -Wl,-soname -Wl,libbeecrypt.so.6 -o .libs/libbeecrypt.so.6.4.0 .libs/aesopt.o: In function `aesEncrypt': (.text+0x0): multiple definition of `aesEncrypt' .libs/aes.o:aes.c:(.text+0x0): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `aesEncrypt' changed from 4950 in .libs/aes.o to 3169 in .libs/aesopt.o .libs/aesopt.o: In function `aesDecrypt': (.text+0x18d8): multiple definition of `aesDecrypt' .libs/aes.o:aes.c:(.text+0x1356): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `aesDecrypt' changed from 4875 in .libs/aes.o to 3169 in .libs/aesopt.o .libs/blowfishopt.o: In function `blowfishEncrypt': (.text+0x0): multiple definition of `blowfishEncrypt' .libs/blowfish.o:blowfish.c:(.text+0xaf): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `blowfishEncrypt' changed from 974 in .libs/blowfish.o to 812 in .libs/blowfishopt.o .libs/blowfishopt.o: In function `blowfishDecrypt': (.text+0x32c): multiple definition of `blowfishDecrypt' .libs/blowfish.o:blowfish.c:(.text+0x47d): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `blowfishDecrypt' changed from 975 in .libs/blowfish.o to 812 in .libs/blowfishopt.o .libs/mpopt.o: In function `mppndiv': (.text+0x1d0): multiple definition of `mppndiv' .libs/mp.o:mp.c:(.text+0x893): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `mppndiv' changed from 88 in .libs/mp.o to 13 in .libs/mpopt.o .libs/sha1opt.o: In function `sha1Process': (.text+0x0): multiple definition of `sha1Process' .libs/sha1.o:sha1.c:(.text+0x0): first defined here /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `sha1Process' changed from 3751 in .libs/sha1.o to 3274 in .libs/sha1opt.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object. collect2: ld returned 1 exit status make[2]: *** [libbeecrypt.la] Error 1 make[2]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2' make: *** [all] Error 2 Portage 2.1.2_pre3-r5 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.18-gentoo-r1 i686) ================================================================= System uname: 2.6.18-gentoo-r1 i686 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.12.5 Last Sync: Mon, 23 Oct 2006 16:20:01 +0000 ccache version 2.4 [disabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS=" -march=athlon64 -Os -pipe " CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS=" -march=athlon64 -Os -pipe " DISTDIR="/home/ftp/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps n" FEATURES="autoconfig collision-protect cvs distlocks metadata-transfer sandbox sfperms sign strict userfetch userpriv" GENTOO_MIRRORS="http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/ ftp://ftp.unina.it/pub/linux/distributions/gentoo http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ " LANG="it_IT.utf8" LC_ALL="C" LINGUAS="it" PKGDIR="/home/ftp/packages" PORTAGE_RSYNC_EXTRA_OPTS=" --timeout=400 --progress " PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/local/overlays/tinyos /usr/local/overlays/gentoo-java-experimental" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 7zip X a52 aac aalib acl acpi aiglx alsa amr aoss apache2 arts asf audiofile avahi bash-completion berkdb bitmap-fonts bl bzip2 cairo canvas caps ccache cdb cddb cdparanoia cdr chroot cli cpudetection cracklib crypt css cups curl dba dbus dga directfb dlloader dmi dri dts dv dvd dvdr dvdread dynagraph elibc_glibc encode erandom esd exif expat extrafilters fame ffmpeg firefox flac fltk foomaticdb gd gdbm ggi gif gimp gimpprint glibc-omitfp glut gmp gnokii gnome gnutls gphoto2 gpm graphviz gtk gtkhtml guile hal iconv idn ieee1394 imagemagick imlib input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog ithreads java javacomm jbig jikes jpeg jpeg2k justify kde kdeenablefinal kdehiddenvisibility kernel_linux lcms ldap libcaca libg++ libnotify linguas_it linuxthreads-tls logitech-mouse logrotate lzo mad mailwrapper matroska mbox mdb mhash mikmod mjpeg mmap mmx mng motif mozsvg mp3 mpeg mpm-worker musepack musicbrainz mysql ncurses nfs nptl nptlonly nsplugin numeric nvidia odbc offensive ogg on-the-fly-crypt openexr opengl oss pam pcre pdf perl php png povray ppds pppd pulseaudio python qt3 quicktime rdesktop readline reflection rtc samba scanner sdl session slang smime smp sndfile snmp speex spell spl sse ssl subversion svg sysfs syslog tcltk tcpd test tetex tga theora threads tidy tiff timidity tk truetype truetype-fonts type1-fonts udev unicode usb userland_GNU userlocales utempter utf8 v4l v4l2 vcd vda video_cards_nv vorbis vorbis-psy wmf xcomposite xine xinerama xml xml2 xorg xpm xscreensaver xv xvid xvmc yv12 zeroconf zlib" Unset: CTARGET, INSTALL_MASK, LDFLAGS, MAKEOPTS I'm going to checkout from cvs and give it a new run.
(In reply to comment #1) > I've committed a new patch. > But... This is as far as I can go without upstream support. > This is 32bit code, so having -march=athlon64 won't do any good to you. > Tested, the exact above error shifted 7 lines below, starting at aesopt.s:114 on x86_64. Error still present also for i686 chroot as already reported. I'm trying other archs just now.
compile fine with -march=k8 i386, i486, i586
Succeeded in reproducing your problem.
compile fine on -march i686, pentium3, pentium-mmx and pentium-m. k8 aesopt.s file is empty. That's a good reason for the difference between k8 and athlon64 behaviour. Kugelfang is trying to amd64-ify it.
No need. Soon I have patch.
Fixed in CVS. If it does not work, I am for removing this package from this tree. We cannot replace any upstream that dump its project. Please reopen if it does not work.
Ok, aes assembler compile fine even on athlon64. Closing. Now let me going on with test fail and multilib issues, but those on other bugs.
Reopening, changing topic from build to test phase. The assembler code compile fine on athlon64, and the ebuild is quite perfect, but the test phase shows a missing symbol mpmultwo that seems to be in the aes code. -march=athlon64 I'm sending a note upstream. >>> Source compiled. Making check in . make[1]: Entering directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2' make[1]: Nothing to be done for `check-am'. make[1]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2' Making check in java make[1]: Entering directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/java' make[1]: Nothing to be done for `check'. make[1]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/java' Making check in python make[1]: Entering directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/python' Making check in test make[2]: Entering directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/python/test' PYTHONPATH="..:../.libs" python test_all.py verbose Traceback (most recent call last): File "test_all.py", line 58, in ? print_versions() File "test_all.py", line 19, in print_versions from _bc import mpw ImportError: /var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/.libs/libbeecrypt.so.6: undefined symbol: mpmultwo make[2]: *** [check] Error 1 make[2]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/python/test' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/dev-libs/beecrypt-4.1.2-r1/work/beecrypt-4.1.2/python' make: *** [check-recursive] Error 1
Hmmm! Where does the .so located on your system? PYTHONPATH="..:../.libs" python test_all.py verbose Search current: .. ../.libs
Fixed, again... :) I hope this is the final pass... I could not fix the test thing... But the assembly is included now.
Ok, your aes fixes close also the test issue. I'm proud to annunce beecrypt-4.1.2-r1 passes all portage tests on amd64 :-)