Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 156375 - media-video/mplayer-1.0_rc1 fails to compile w/ MMX on amd64
Summary: media-video/mplayer-1.0_rc1 fails to compile w/ MMX on amd64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL: http://svn.mplayerhq.hu/mplayer/trunk...
Whiteboard:
Keywords:
: 167521 168439 (view as bug list)
Depends on:
Blocks: 157891
  Show dependency tree
 
Reported: 2006-11-26 23:27 UTC by Blu3
Modified: 2007-03-25 15:08 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Blu3 2006-11-26 23:27:07 UTC
cc -c -I. -I.. -I../osdep  -I../libavutil -Wdeclaration-after-statement  -march=opteron -Os -pipe -D__STDC_LIMIT_MACROS -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I/usr/X11R6/include -I/usr/include/ -I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include -I/usr/include/dvdnav  -I/usr/include/freetype2 -I/usr/lib64/live/liveMedia/include              -I/usr/lib64/live/UsageEnvironment/include              -I/usr/lib64/live/BasicUsageEnvironment/include              -I/usr/lib64/live/groupsock/include -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12   -DMPG12PLAY -o osd.o osd.c
{standard input}: Assembler messages:
{standard input}:1295: Error: can't encode register '%ch' in an instruction requiring REX prefix.
{standard input}:1296: Error: can't encode register '%ah' in an instruction requiring REX prefix.
{standard input}:1297: Error: can't encode register '%dh' in an instruction requiring REX prefix.
make[1]: *** [osd.o] Error 1
make[1]: Leaving directory `/var/tmp/portage/media-video/mplayer-1.0_rc1/work/MPlayer-1.0rc1/libvo'
make: *** [libvo/libvo.a] Error 2

!!! ERROR: media-video/mplayer-1.0_rc1 failed.
Call stack:
  ebuild.sh, line 1568:   Called dyn_compile
  ebuild.sh, line 937:   Called src_compile
  mplayer-1.0_rc1.ebuild, line 439:   Called die


reference URLs:
http://lists.mplayerhq.hu/pipermail/mplayer-users/2006-October/063464.html
Comment 1 Blu3 2006-11-26 23:30:02 UTC
Portage 2.1.2_rc2-r2 (default-linux/amd64/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.19-rc5 x86_64)
=================================================================
System uname: 2.6.19-rc5 x86_64 AMD Opteron(tm) Processor 148
Gentoo Base System version 1.12.6
Last Sync: Sat, 25 Nov 2006 19:00:03 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-java/java-config: 1.3.7, 2.0.30
dev-lang/python:     2.4.4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
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.16.1, 2.16.1-r2, 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=opteron -Os -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=opteron -Os -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig candy distlocks metadata-transfer parallel-fetch sandbox sfperms strict userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-z,now"
LINGUAS="en_US"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
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/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="16bit 64bit GAPING_SECURITY_HOLE X X509 a52 aac aalib acl acpi acpi4linux activefilter aim aimextras aio akode allegro alsa amarok amd amd64 amr amrr ao aoss aotuv apache2 arts artswrappersuid artworkextra asf asterisk async atm audacious auth authfile automount avantgo background bash-completion bashlogger bcmath bgpclassless bigpatch bittorrent bl bluetooth bonjour bonobo bootsplash boundschecking buttons bzip2 bzlib c++ cairo calendar canvas cap capi caps carbone_theme cdda cddb cdio cdparanoia cdrom cg cgi checkpath chipcard chm chroot clearcase cli codecs config_wizard cpudetection cpulimit cracklib crypt css csv ctype cups curl curlwrappers custom-cflags customlog cvs cvsgraph daap dar32 dar64 dba dbox2 dbus dbx dcc debugger dga dhcp dio discard-path disk-cache diskio distcache divx4linux djbfft dlloader dmalloc dnd dpms dri dts dv dvb dvd dvdr dvdread dxr3 dynagraph dynamic eap-tls ecc edl effects elf elibc_glibc emboss emoticon emul-linux-x86 encode enscript epiphany epson erandom escreen ethereal evo evo2 evolution exif exscalibar extensions extrafilters extraicons extramodules extras faac faad fam fame fat fax festival ffmpeg fftw figlet fits fix-connected-rt flac flash flatfile flexresp flood fltk fluidsynth fmod follow-xff font-server fontconfig foomaticdb force-cgi-redirect fping fpx freetts freetype frontendonly ftp ftruncate galago gb gd gdb geometry geos gif gimp gimpprint gitsendemail glade glgd glib glibc-compat20 glibc-omitfp glitz glx gmail gmailtimestamps gmp gnokii gnome gnome-print gnomecanvas gnomedb gnuplot gnutls gpg2-experimental gphoto2 gpm gps grammar graphicsmagick graphviz grass gs gsl gsm gssapi gstreamer gtk gtk2 gtkspell gzip h323 hal hardened hash hbci hddtemp hdf hdf5 hesiod hfs high-ints hostap hpn html http httpd ibam icecast iconv icp icq id3 ide idea idled ieee1394 iksemel imagemagick imap imlib imlib2 inkjar inline inode input_devices_keyboard input_devices_mouse insecure-drivers insecure-patches insecure-savers iproute2 ipv6 irda irmc isdnlog j2ee jabber jasper java javacomm javamail javascript jbig john jp2 jpeg jpeg2k jumpplay kadu-modules kadu-voice kcal kde kdeenablefinal kdepim kdgraphics kerberos kernel_linux kexi keyscrub kipi koffice-plugin lame lcms ldap ldapsam libcaca libclamav libdsk libg++ libgd libgda libsamplerate libvisual lids linguas_en_US linuxkeys linuxthreads-tls live lm_sensors logitech-mouse logrotate ltsp lzo lzw lzw-tiff mad madwifi mbox mbrola md5sum mem-cache memlimit menubar messages mew mfd-rewrites mgetty mhash mime mimencode ming mixer mjpeg mmap mng modplug moneyplex monkey mounts-check mozcalendar mozdevelop mozilla moznoirc mozp3p mozsha1 mozsvg mozxmlterm mp3 mp4 mp4live mpeg mpeg2 mpeg4 mpi mplayer mschap msdav msn mudflap multicall multipath multislot musepack musicbrainz mythtv nagios-dns nagios-ntp nagios-ping nagios-ssh ncurses net netcdf netclient netpbm netserver network new-login nforce2 ngui nntp no-old-linux nodrm normalizemime nptl nptlonly nsplugin nspr ntfs ntlm nvidia nviz nvram oav objc objc++ objc-gc odbc offensive ofx ogg oggvorbis on-the-fly-crypt openal openexr opengl openssl operanom2 ortp osc oscar ospfapi overload pam pam_chroot pam_console pam_timestamp pango parse-clocks patch patented pcap pcapnav pch pci pcntl pcre pda pdf pear perl pg-hier pg-vacuumdelay php pic pie player plib plx pmu png pnp portaudio posix postfix postgres povray ppds pppd prelude print priority python qt3 qt4 quicktime quotas quotes radiotap rar rc5 rcu rdesktop readline realms reflection reiser4 reiserfs remote replytolist rpm rrdtool rss rtc samba sametime sasl scanner scp screen sdl sendfile sensord serial server session setup-plugin sftp sftplogging sguil shape shaper shared sharedext sharedmem shorten shout silc simplexml skey skins slp smartcard smime smp sms smtp smux sndfile snmp snortsam soap sockets socks5 softfax soundtouch sourcecaps sox spamassassin speech speex spell spf spl spreadsheet sql ssl stats stlport stream subp subtitles subversion suid svgz svn-mirror swat symlink sysfs syslog sysvipc szip t1lib tabs tcpd tcpmd5 tcsim tga theora thesaurus thumbnail tidy tiff timidity tokenizer tomsfastmath tos transcode transparent-proxy truetype truetype-fonts ttcp type1 type1-fonts udev underscores ups usb userfiles userland_GNU utempter uudeview v4l v4l2 vcd vcdimager vdr verbose vfat vhosts video_cards_nv video_cards_nvidia video_cards_v4l visualization vlm vmdb vmdbpostgres vnc voice vorbis watchdog wddx webdav wifi winbind wma wma123 wmf wordexp wordperfect wv wxwindows x11vnc x264 xanim xchat xchatdccserver xcomposite xface xgetdefault xinerama xml xmldoclet xmlreader xmlrpc xmlwriter xorg xosd xpm xprint xrandr xscreensaver xsl xslt xtended xv xvid xvmc yaepg yahoo yiff yv12 zero-penalty-hit zeroconf zip zlib zvbi"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Blu3 2006-11-26 23:30:46 UTC
from config.h


/* Extension defines */
#define HAVE_3DNOW 1    // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
#define HAVE_3DNOWEX 1  // only define if you have 3DNOWEXT (AMD Athlon, etc.)
#define HAVE_MMX 1      // only define if you have MMX (newer x86 chips, not P54C/PPro)
#define HAVE_MMX2 1     // only define if you have MMX2 (Athlon/PIII/4/CelII)
#define HAVE_SSE 1      // only define if you have SSE (Intel Pentium III/4 or Celeron II)
#define HAVE_SSE2 1     // only define if you have SSE2 (Intel Pentium 4)
Comment 3 Reimar Döffinger 2006-11-29 05:40:29 UTC
This only happens when compiling with -O0 or -Os
Comment 4 Reimar Döffinger 2006-11-29 05:51:01 UTC
Probably fixed in MPlayer SVN r21385, but compiling with -Os is probably not a good choice and not officially supported by MPlayer developers.
Comment 5 Vitaliy V. Osypenko 2007-01-25 09:59:39 UTC
(In reply to comment #3)
> This only happens when compiling with -O0 or -Os
> 

Same bug with -02
Comment 6 Simon Stelling (RETIRED) gentoo-dev 2007-02-06 21:01:40 UTC
I can't reproduce this, not even with exactly the same USE and CFLAGS. Can you please attach your /var/tmp/portage/media-video/mplayer-1.0_rc1/work/MPlayer-1.0rc1/configure.log?
Comment 7 Tres 'RiverRat' Melton 2007-02-15 20:33:39 UTC
From the ebuild:
        # mplayer now contains SIMD assembler code for amd64
        # AMD64 Team decided to hardenable SIMD assembler for all users
        # Danny van Dyk <kugelfang@gentoo.org> 2005/01/11
        if use amd64; then
                myconf="${myconf} --enable-sse --enable-sse2 --enable-mmx"
        fi
...
        myconf="${myconf} $(use_enable 3dnowext)"; 
...
        myconf="${myconf} $(use_enable mmxext)"


Now the funny question is why are mmxext and 3dnowext not checked for specific chip support.  Without digging into the asm I can't tell how safe that is but I'm guessing that the ./configure script takes care of them and disables them in favor of the superior SSE2+ extensions.  I'm not positive though.

This bug should be closed.
Comment 8 Simon Stelling (RETIRED) gentoo-dev 2007-02-15 20:52:22 UTC
> Now the funny question is why are mmxext and 3dnowext not checked for specific
> chip support.

In case you meant "why isn't the ebuild checking the CPU's capabilities?" the answer is easy: because it can't. It's not guaranteed that the package will be used only on the machine it was compiled.
Comment 9 Blu3 2007-02-15 21:11:38 UTC
I would rather have a distro that figured these things out then a one-size-fits all binary, i.e. all other non-source distributions.  Isn't this sort of the idea behind Gentoo?  If I am building for other cpus/archs, then I should be using the cross compile toolkit/flags/etc.

It's not that the mmx/sse flags can't be determined, it's that the ebuild maintainers don't want to. :P

We could be pedantically frustrating about it and add --i'm-compiling-this-package-for-this-machine-like-99.9999%-of-all-compiles-done-on-gentoo and --i'm-compiling-this-package-for-another-machine (AKA crosscompile toolkit)

The vast majority of Gentoo users are compiling their software for use on the machine they are compiling it on.  Why not make portage more intelligent and assume this.  For those that are compiling packages for other machines, they are likely well aware of how to cross compile.

After all, if you are compiling for another machine.  It's highly unlikely that mmx/sse are the only characteristics differing between the CPUs.

:-/
Comment 10 Simon Stelling (RETIRED) gentoo-dev 2007-02-15 22:44:15 UTC
(In reply to comment #9)
> I would rather have a distro that figured these things out then a one-size-fits
> all binary, i.e. all other non-source distributions.  Isn't this sort of the
> idea behind Gentoo?  If I am building for other cpus/archs, then I should be
> using the cross compile toolkit/flags/etc.
> 
> It's not that the mmx/sse flags can't be determined, it's that the ebuild
> maintainers don't want to. :P

That one can be, because it is common among all x86_64 machines. The other two aren't, unfortunately.

> The vast majority of Gentoo users are compiling their software for use on the
> machine they are compiling it on.  Why not make portage more intelligent and
> assume this.  For those that are compiling packages for other machines, they
> are likely well aware of how to cross compile.

This is not about cross-compiling, it is about differences between processors that even have the same name. If we assume something that is not sure, mplayer would just explode in some cases, which I think no Gentoo user would want.

However, before someone is going to turn this into a "Gentoo is all about choice" discussion: Be assured that the hardcoding will be gone as soon as 2007.0 is released, because that's first release which ships a portage capable of masking/forcing USE flags on a per-package basis. So with 2007.0 you'll have the choice.

Happy end.
Comment 11 Tres 'RiverRat' Melton 2007-02-16 06:17:53 UTC
>> Now the funny question is why are mmxext and 3dnowext not checked for specific
>> chip support.

>In case you meant "why isn't the ebuild checking the CPU's capabilities?" the>
>answer is easy: because it can't. It's not guaranteed that the package will be
>used only on the machine it was compiled.

No, I was referring more along the lines of 

if use x86 || use amd64 && use mmxext; then
     myconf="${myconf} $(use_enable mmxext)"
fi

to prevent them from being enabled on a ppc/sparc/etc platform.

Again, this bug should be closed as "Problem doesn't really exist"
Comment 12 Blu3 2007-02-16 06:25:44 UTC
Actually, the problem really did exist which is why I reported it.  I stopped using -Os and the problem went away.  I haven't had the time to go back and break it again but that's not really important.  Just don't use -Os for that version.
Comment 13 Simon Stelling (RETIRED) gentoo-dev 2007-02-16 09:46:33 UTC
(In reply to comment #11)
> to prevent them from being enabled on a ppc/sparc/etc platform.

That is already done in the profiles. The arch-specific USE flags are masked everywhere except on the arches they work on.

I believe this bug is not really resolved, but since I can't reproduce it, it's pretty hard to fix. I'd probably need a full $WORKDIR dump to analyze it more, so closing as NEEDINFO.
Comment 14 Tres 'RiverRat' Melton 2007-02-16 17:16:29 UTC
Blu3,
    Ok, I'm sorry about saying that the bug did not exist, I see it did.  It has been fixed upstream and you can see that and a note of your problem here:

http://svn.mplayerhq.hu/mplayer/trunk/libvo/osd_template.c?revision=21385&view=markup

There is even a pointer back to this bug in the revision notes.  :-)

Simon,
     Your comments about profiles disabling the flags makes sense (and I'm not a dev) I was just going by some of the other lines like:

        use x86 && myconf="${myconf} $(use_enable sse)"

Where they were checking the arch USE flags.  Anyway, I made a mistake about the bug, it did exist but appears patched so perhaps change it to "Resolved Upstream"?  Cheers.
Comment 15 Simon Stelling (RETIRED) gentoo-dev 2007-02-16 17:35:49 UTC
It's fixed upstream but they didn't have a release since then, so we'll have to backport the patch or wait for the next release.
Comment 16 biohazrd 2007-02-18 00:28:09 UTC
I ran into this exact error today.  I thought it might have been from adding -msse3 to my CFLAGS, but I took it out and it still failed.  I also use -O2 as a norm and it failed. Yes... I know... don't expect much support for riced glibc.  Just thought I would comment on this reported bug.  

Portage 2.1.2-r9 (default-linux/amd64/2006.1, gcc-4.1.2, glibc-2.5.90.20070214-r0, 2.6.19-ck2-r1 x86_64)
=================================================================
System uname: 2.6.19-ck2-r1 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
Gentoo Base System version 1.12.9
Timestamp of tree: Sat, 17 Feb 2007 23:30:01 +0000
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.0.31-r3
dev-lang/python:     2.3.6, 2.4.4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r6
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
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.50.0.12
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.20
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -pipe -O2 -msse3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/init.d /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=k8 -pipe -O2 -msse3"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict"
GENTOO_MIRRORS="http://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://mirror.espri.arizona.edu/gentoo/"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=both"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
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/toolchain_overlay /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 apache2 berkdb big-tables bitmap-fonts bzip2 cdr cgi cli cracklib crypt cups curl dga dlloader dri dv dvd dvdr dvdread encode exif extrafilters fame fat ffmpeg firefox flac flatfile fortran ftp gdbm gif glibc-omitfp gpm gstreamer gtk gtk2 hal iconv idn ieee1394 ipv6 isdnlog java jpeg kde kdeenablefinal kdehiddenvisibility lcms ldap libg++ lirc lm_sensors mad midi mng mp3 mpeg mplayer mpm-threadpool mysql ncurses nls nptl nptlonly nsplugin ntfs nvidia ogg opengl pam pci pcre pdf perl php png ppds pppd python qt3 qt4 quicktime readline reflection rtc samba sblive sdl session spell spl ssl tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts unicode usb utf8 vcd vhosts vorbis x264 xcomposite xine xinerama xml xorg xpm xscreensaver xv xvid zlib" ALSA_CARDS="emu10k1" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa fbdev"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 17 biohazrd 2007-02-18 06:48:01 UTC
I don't know why this would matter much but adding mmx, sse, and sse2 to the USE flags fixed my problems... BTW sorry it was r2 I was having issues with, just noticed this was R1posting.

Comment 18 Steve Dibb (RETIRED) gentoo-dev 2007-02-18 19:50:54 UTC
*** Bug 167521 has been marked as a duplicate of this bug. ***
Comment 19 Alexander Puchmayr 2007-02-20 07:36:51 UTC
Same bug still here on my system!

As far as I can see it, the inline-asm from libvo/osd_template.c is broken for amd64. It seems as if 'as' does not accept the instructions:

/var/tmp/portage/media-video/mplayer-1.0_rc1-r2/work/MPlayer-1.0rc1/libvo/osd_template.c,
line 433-435:                
   "movb %%ch, (%0)\n\t"
   "movb %%ah, 1(%0)\n\t"
   "movb %%dh, 2(%0)\n\t"

Are these really invalid amd64 instructions or is it a bug in gnu-as?
My version is "GNU assembler 2.16.1".
Comment 20 Reimar Döffinger 2007-02-20 09:32:30 UTC
The ah, ch etc. registers can not be used in 64 bit code.
If you are properly optimizing it should work fine though, since the function where they are used is static and never used in the compilation unit, thus should not even get compiled.
That this does not happen with -Os is especially ironic, since that means when optimizing for size, completely unused code will be included in the final binary, whereas with -O3 it will be left out....
Comment 21 Jakub Moc (RETIRED) gentoo-dev 2007-02-26 22:29:55 UTC
*** Bug 168439 has been marked as a duplicate of this bug. ***
Comment 22 Steve Dibb (RETIRED) gentoo-dev 2007-03-22 16:34:05 UTC
should be fixed with >=1.0_rc2_pre20070321
Comment 23 thierry volpiatto 2007-03-22 16:39:51 UTC
I have resolved the problem compiling mplayer with:
USE="mmx"
Comment 24 Steve Dibb (RETIRED) gentoo-dev 2007-03-25 15:08:08 UTC
Fixed in CVS