After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 100184 - Doesn't like x86_64
Doesn't like x86_64
Status: VERIFIED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.4.2
Other other
: Normal normal
: NONE
Assigned To: David Schleef
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2002-12-02 23:30 UTC by Havoc Pennington
Modified: 2009-08-15 18:40 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8



Description Havoc Pennington 2002-12-02 23:30:38 UTC
gstreamer is unhappy about compiling on x86_64. 

After hacking configure to pretend it's an x86, I get these errors:

gstcpuid_i386.s: Assembler messages:
gstcpuid_i386.s:5: Error: suffix or operands invalid for `push'
gstcpuid_i386.s:7: Error: suffix or operands invalid for `push'
gstcpuid_i386.s:8: Error: suffix or operands invalid for `push'
gstcpuid_i386.s:9: Error: suffix or operands invalid for `push'
gstcpuid_i386.s:10: Error: suffix or operands invalid for `push'
gstcpuid_i386.s:11: Error: `8(%ebp)' is not a valid 64 bit base/index
expressiongstcpuid_i386.s:13: Error: `12(%ebp)' is not a valid 64 bit
base/index expression
gstcpuid_i386.s:16: Error: `(%edi)' is not a valid 64 bit base/index expression
gstcpuid_i386.s:17: Error: `16(%ebp)' is not a valid 64 bit base/index
expression
gstcpuid_i386.s:20: Error: `(%edi)' is not a valid 64 bit base/index expression
gstcpuid_i386.s:21: Error: `20(%ebp)' is not a valid 64 bit base/index
expression
gstcpuid_i386.s:24: Error: `(%edi)' is not a valid 64 bit base/index expression
gstcpuid_i386.s:25: Error: `24(%ebp)' is not a valid 64 bit base/index
expression
gstcpuid_i386.s:28: Error: `(%edi)' is not a valid 64 bit base/index expression
gstcpuid_i386.s:29: Error: suffix or operands invalid for `pop'
gstcpuid_i386.s:30: Error: suffix or operands invalid for `pop'
gstcpuid_i386.s:31: Error: suffix or operands invalid for `pop'
gstcpuid_i386.s:32: Error: suffix or operands invalid for `pop'
gstcpuid_i386.s:34: Error: suffix or operands invalid for `pop'


Peanut gallery says:
 <foo> drop the asm stuff, use setcontext or pthreads
 <arjan> hp: if you know x86 asm it's the same
 <arjan> just the 64 bit registers are called rax etc

As a separate bug, I think configure should fail if it can't identify the arch.
Comment 1 Havoc Pennington 2002-12-04 18:10:16 UTC
Also IA-64 apparently, and perhaps others.
Comment 2 Havoc Pennington 2002-12-04 18:38:09 UTC
<jakub> hp: there are some arches where glibc still doesn't support
makecontext, but most of them do, including i386, ia64, etc.


Comment 3 David Schleef 2002-12-05 05:04:30 UTC
I added makecontext support in gst/cothreads.c, which should allow us
to do cothreads on any architecture that has a decent makecontext()
implementation.  However, I might add, this has nothing to do with the
actual compile failure listed.
Comment 4 Havoc Pennington 2002-12-05 05:24:34 UTC
I see, the failure there is on other x86 code after lying and claiming
to be an x86. Old cothreads.c would still fail though in that case, if 
we got to it, I assume.

Looking at the code in CVS, it looks like the #error in gstarch.h 
will still be hit, even if HAVE_MAKECONTEXT.





Comment 5 David Schleef 2002-12-09 01:45:43 UTC
I fixed gstarch.h for the case where HAVE_MAKECONTEXT is true.
Comment 6 Thomas Vander Stichele 2003-01-17 15:16:31 UTC
Havoc, can you verify if it is ok now or not ?

Thanks.
Comment 7 Havoc Pennington 2003-01-17 15:33:34 UTC
cc'ing people who will know better than me
Comment 8 David Schleef 2003-01-17 19:59:44 UTC
> gstcpuid_i386.s:5: Error: suffix or operands invalid for `push'

Nothing was changed in gstarch_x86.s, so I highly doubt this is fixed.

Also, we need to detect x86-64.

Using makecontext() is a separate issue that is fixed.  If that is
broken on x86-64, it's not a gstreamer bug.  :)
Comment 9 David Schleef 2003-05-13 04:30:12 UTC
Ok, I finally added a CPU check for x86_64.  As long as config.guess
is updated by a recent version of automake that supports x86_64,
everything _should_ be fine now, and gstreamer won't recognize the
system as an i386.

Please try compiling either HEAD or BRANCH-GSTREAMER-0_6 CVS.
Comment 10 Thomas Vander Stichele 2003-12-16 16:22:21 UTC
havoc, ping
Comment 11 Thomas Vander Stichele 2004-02-11 18:33:30 UTC
reping
Comment 12 Jonathan Blandford 2004-02-11 18:43:13 UTC
I'll take a look when I next rebuild this.
Comment 13 David Schleef 2004-03-18 22:17:15 UTC
I'm going to assume this is fixed, because by now, someone else would
have complained about it.  Marking as NEEDINFO.
Comment 14 Thomas Vander Stichele 2004-07-06 09:50:12 UTC
I'd like to get this resolved.  Jonathan, any news ?
Comment 15 Thomas Vander Stichele 2004-08-12 08:46:31 UTC
jonathan, ping, or close
Comment 16 Jonathan Blandford 2004-08-19 19:58:30 UTC
looks like its' building.  I'll close