GNOME Bugzilla – Bug 522278
Problem with "movq" at file gst-plugins-good/gst/goom/xmmx.c
Last modified: 2008-03-31 22:30:09 UTC
Please describe the problem: When you compile the module gst-plugins-good with jhbuild, there are the next errors when it tries to compile the file gst-plugins-good/gst/goom/xmmx.c: /tmp/cc8Z6pre.s: Assembler messages: /tmp/cc8Z6pre.s:277: Error: suffix or operands invalid for `movq' /tmp/cc8Z6pre.s:278: Error: suffix or operands invalid for `movq' Steps to reproduce: 1. cd gst-plugins-good/gst/goom/ 2. gcc -DHAVE_CONFIG_H -I. -I../.. -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -I../../gst-libs -I../../gst-libs -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -Wall -Werror -g -DGST_DISABLE_DEPRECATED -I/home/mrego-gnome/od/install/include/liboil-0.3 -DBUILD_MMX -lz -MT libgstgoom_la-xmmx.lo -MD -MP -MF .deps/libgstgoom_la-xmmx.Tpo -c xmmx.c -fPIC -DPIC -o .libs/libgstgoom_la-xmmx.o Actual results: /tmp/cc8Z6pre.s: Assembler messages: /tmp/cc8Z6pre.s:277: Error: suffix or operands invalid for `movq' /tmp/cc8Z6pre.s:278: Error: suffix or operands invalid for `movq' Expected results: Compile the file. Does this happen every time? Yes Other information:
Is this on amd64 in 64 bit mode? Which gcc and ld (binutils) versions are used? Also, which version of gst-plugins-good is this? Latest CVS?
It's on a 32 bits distribution (Ubuntu Gutsy Gibbon). $ gcc --version gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) Copyright (C) 2006 Free Software Foundation, Inc. Esto es software libre; vea el código para las condiciones de copia. NO hay garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR $ ld --version GNU ld (GNU Binutils for Ubuntu) 2.18 Copyright 2007 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. The version of gst-plugins-good is the latest CVS.
confirmed here
I use 4.2 beta@elmarco-laptop ~/git/gnome2$ gcc-4.2 --version gcc-4.2 (GCC) 4.2.1 (Ubuntu 4.2.1-5ubuntu4) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. GNU assembler (GNU Binutils for Ubuntu) 2.18 Copyright 2007 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `i486-linux-gnu'.
Knowing which lines it fails on would be good. Which version of "as" do you have? (output of "as --version")
(In reply to comment #5) > Knowing which lines it fails on would be good. Which version of "as" do you > have? (output of "as --version") > You should have all those information alreadu in the bug. line? /tmp/cc8Z6pre.s:277-278 ?? xmmx.h 262: __asm__ __volatile__ ("movq %%" #reg ", %0" \ 270: __asm__ __volatile__ ("movq %%" #reg ", %0" \ 283: __asm__ __volatile__ ("movq %%" #reg ", %0" \ 291: __asm__ __volatile__ ("movq %%" #reg ", %0" \ 301: __asm__ __volatile__ ("movq %%" #reg ", %0" \ 320: __asm__ __volatile__ ("movq %%" #regs ", %0" \ 325: __asm__ __volatile__ ("movq %%" #regd ", %0" \ 331: __asm__ __volatile__ ("movq %%" #regd ", ... Code looks like: #APP #1 movq %esi, %mm0#1 movq %eax, %mm1#1 psubd %mm0, %mm1#1 movq %mm1, %mm2#1 pslld $16, %mm1#1 binutils, 2.18-0ubuntu3, in my case.
as --version GNU assembler (GNU Binutils for Ubuntu) 2.18 Copyright 2007 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `i486-linux-gnu'.
(In reply to comment #7) > as --version > GNU assembler (GNU Binutils for Ubuntu) 2.18 I guess we have the same version, I reported a bug in ubuntu: https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/202209
I see this here too, but only when building with -O0 to get better backtraces.
Created attachment 108374 [details] [review] patch 2008-03-31 David Schleef <ds@schleef.org> * gst/goom/xmmx.c: Fix constraints on asm code so that it compiles consistently. Fixes #522278.
I attempted to test this, but goom never ran the code in question. Assuming fixed.