Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 551370 - media-libs/xine-lib : xmmx.c:79: Error: unsupported instruction `movq'
Summary: media-libs/xine-lib : xmmx.c:79: Error: unsupported instruction `movq'
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: media-video herd
Depends on:
Reported: 2015-06-06 14:39 UTC by nobody
Modified: 2017-03-09 06:24 UTC (History)
0 users

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

patch to fix the issue (baddef.patch,420 bytes, patch)
2015-06-06 14:40 UTC, nobody
Details | Diff
ebuild with epatch_user enable (xine-lib-1.2.6-r2.ebuild,5.61 KB, text/plain)
2015-06-06 14:41 UTC, nobody
build.log with failure for -r1 (build.log,835.73 KB, text/x-config)
2015-06-06 14:42 UTC, nobody

Note You need to log in before you can comment on or make changes to this bug.
Description nobody 2015-06-06 14:39:40 UTC
Trying to build xine-lib-1.2.6 with an mmx capable 64bits cpu running a 32bits arch (yes, not multilib, pure 32), the goom plugins fails trying to execute asm movq.

Here's 3 files:
1- patch to fix the issue (dirty one tbh, i just fix the bad conditional, but i think nobody will use mmx with it now, early in the file there's a check for x86-64 arch and it disable it if set, so only x86 user can use mmx with it, and later it use movq on a part that is suppose to be for x86... kinda strange, i think the result is that the mmx usage in goom is disable for both archs, making the whole xmmx.c file useless). That's really strange as line 254 have a comment for the #endif that is /* ARCH_X86_64 */ like if really it was made that arch (hence the movq), while the earlier check disable it with that arch...
Anyway until the goom dev fix it, nobody would die for not using mmx with that plugins, as long as it compile.
2- xine-lib-1.2.6-r2.ebuild that is a copy of -r1 but add epatch_user unconditionality (-r1 only use epatch_user if the ebuild is *9999* (i wonder why limiting epatch_user to *9999* is good)
3- build.log of -r1

:( ->
(i didn't find myself a way to disable goom plugins from building, so i wonder how could he manage to have it build on x86...)

Reproducible: Always

Steps to Reproduce:
1. emerge xine-lib-1.2.6-r1 -1

emerge --info xine-lib
Portage 2.2.20 (python 2.7.10-final-0, default/linux/x86/13.0, gcc-4.9.2, glibc-2.20-r2, 3.18.14 i686)
                         System Settings
System uname: Linux-3.18.14-i686-Intel-R-_Core-TM-_i7-4790K_CPU_@_4.00GHz-with-gentoo-2.2
KiB Mem:    16574420 total,  13242392 free
KiB Swap:    6294620 total,   6294504 free
Timestamp of repository gentoo: Thu, 04 Jun 2015 08:00:01 +0000
sh bash 4.3_p39
ld GNU ld (Gentoo 2.25 p1.2) 2.25
distcc 3.2rc1 i686-pc-linux-gnu [disabled]
app-shells/bash:          4.3_p39::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2-r1::gentoo
dev-lang/python:          2.7.10::gentoo, 3.3.5-r1::gentoo, 3.4.3::gentoo
dev-util/cmake:           3.2.2::gentoo
dev-util/pkgconfig:       0.28-r3::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.16.4::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r1::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25-r1::gentoo
sys-devel/gcc:            4.9.2::gentoo
sys-devel/gcc-config:     1.8::gentoo
sys-devel/libtool:        2.4.6-r1::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.9::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo

    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://faramir/gentoo-portage
    priority: -1000

    location: /usr/local/portage
    masters: gentoo
    priority: 0

    location: /var/lib/layman/hasufell
    masters: gentoo
    priority: 50

Installed sets: @system
CFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -fstack-protector-strong"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -fstack-protector-strong"
EMERGE_DEFAULT_OPTS="--keep-going --buildpkg"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -march=i686 -pipe"
LDFLAGS="-Wl,-Ol -Wl,--as-needed"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="X a52 aac aalib acl acpi alsa amarok apng audacious audio berkdb branding bzip2 cairo cdda cdr cleartype cli consolekit corefonts cracklib crypt cups cxx dbase dbus device-mapper divx dri dvd dvdread embedded encode exif extras fbsplash ffmpeg firefox flac ftp gdbm gdu glitz gmedia gnutls gstreamer gtk gtk2 gudev hddtemp iconv icu imap introspection ipod java javascript jpeg jpeg2k lame libcaca libnotify live lm_sensors logrotate lzo maildir matroska mdnsresponder-compat midi mikmod minizip mjpeg mng mod modplug modules moznomail moznoxft mp3 mp4 mp4live mpeg mpeg2 mplayer msn musepack ncurses network nfs nls nptl nsplugin ntfs ogg openal opengl openmp pam pcre png policykit python qt3support qt4 readline sdl sdl-image sensord session skins smp sqlite ssl startup-notification stream subtitles svg tcpd tga theora threads thunderbird tiff timidity truetype type1 udev unicode usb v4l v4l2 vcd vdpau vlm vorbis webkit wma wmf wxwindows x264 x86 xcb xcomposite xine xinerama xosd xulrunner xv xvid zip zlib" ABI_X86="32" ALSA_CARDS="intel-hda" 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 author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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 ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr fr_FR" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby22 ruby20" 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"

                        Package Settings

media-libs/xine-lib-1.2.6-r2::gentoo was built with the following:
USE="X a52 aac aalib alsa css flac gtk jpeg libcaca mmap mng modplug musepack nls opengl sdl theora truetype v4l vcd vdpau vorbis xcb xinerama xv (-altivec) -bluray -directfb -dts -dvb -dxr3 -fbcon -fusion -imagemagick -ipv6 -jack -libav -mad -oss -pulseaudio -samba -speex -vaapi -vdr -vidix (-vis) -vpx -wavpack -xvmc"
CFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -fstack-protector-strong -fomit-frame-pointer"
CXXFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -fstack-protector-strong -fomit-frame-pointer"
Comment 1 nobody 2015-06-06 14:40:42 UTC
Created attachment 404680 [details, diff]
patch to fix the issue
Comment 2 nobody 2015-06-06 14:41:26 UTC
Created attachment 404682 [details]
ebuild with epatch_user enable
Comment 3 nobody 2015-06-06 14:42:22 UTC
Created attachment 404684 [details]
build.log with failure for -r1
Comment 4 nobody 2015-06-06 15:02:38 UTC
I forget: please note that the patch enable the function for x86-64 user, i think it will still be disable by early check, but this mean the patch fix the issue for x86 users by re-enabling the function only for x86-64 users.

It mean i have test and the goom filter works after that on x86, but i don't know how it will do for x86-64 users now that it enable it only for them. (at least they won't complain for movq, but the function may crash... no idea, but it should be test or maybe only apply the patch to x86 users.
Comment 5 Alex 2017-03-09 06:24:21 UTC
Same for r2 on x86:
xmmx.c: Assembler messages:
xmmx.c:79: Error: unsupported instruction `movq'
xmmx.c:80: Error: unsupported instruction `movq'
make[3]: *** [Makefile:782: libpost_goom_asm_la-xmmx.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/var/tmp/portage/media-libs/xine-lib-1.2.6-r2/work/xine-lib-1.2.6/src/post/goom'
make[2]: *** [Makefile:597: all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-libs/xine-lib-1.2.6-r2/work/xine-lib-1.2.6/src/post'
make[1]: *** [Makefile:615: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-libs/xine-lib-1.2.6-r2/work/xine-lib-1.2.6/src'
make: *** [Makefile:692: all-recursive] Error 1