GNOME Bugzilla – Bug 112609
fails to build gst/mpeg2enc on Solaris x86 w/o gas
Last modified: 2004-12-22 21:47:04 UTC
With same reason as bug 112607, mpeg2enc plugin cannot be built on a Soalris x86 where no GNU assmubler(gas) is installed.
Fixed in HEAD
*.s herein cause many erros with native as (/usr/ccs/bin/as) on Solaris. - Comments should start with '/' instead of '#'. - .global should be .globl. - .word should be (perhaps) .value.
Could you try to fix this? It sounds like the changes are straighforward, but since few (if any) of us have access to a Solaris assembler, it would be difficult to get it right.
Created attachment 16466 [details] [review] changes for solaris native assembler - please test before commit.
Please review the diff. Besides what I mentioned above, there were a few other errors in fdct_mmx.s. - removed .extern - anyway undefined symbosl are external. - .equ -> .set - () -> [] Regards, Toshi
'/' doesn't work with gas except at the beginning of lines, so pushl %ebp / save frame pointer doesn't work. Perhaps ';' would work for you?
Ok, I looked this up. In gas, 1) Comments start with '#'. 2) Lines are comments if they start with '/', and by extension of 1), if they start with '#'. Does Solaris's assembler understand '#' like in pushl %ebp # save frame pointer or do all end-of-line comments need to be converted?
Then, how about using `/*' and `*/' in a single line? Solaris x86 assembly reference manual in http://docs.sun.com says: "The assembler ignores all characters following a slash up to the next occurrence of newline".
That requires changing from .s files to .S. This causes gcc to run the preprocessor on the file before assembling. I think that's a good idea -- then we can use /* */ or //.
I've checked in more fixes into HEAD. Could you test it and tell me if it compiles now?
Sorry for being late... I just did clean-build of gstreamer and gst-plugins on the HEAD. Except only a few errors, the build went very well: In mpeg2enc, there are only two: quant_mmx.S: - does not seem to like .short. s/.short/.value will work. fdct_mmx.S: - does not like () in expression. [] will work. Other than these, there are some minors at a few other places. - make install fails due to ffmpeg is missing at gst-libs/ext/ffmpeg.. Perhaps, this patch is not quite right, but should do with a configure check of ffmpeg existance. - __inline__ cannnot be resolved at sys/qcam - there is no <sys/io.h> on Solaris. I'll attach a combined patch here. Please take a look and apply. Reopening...
Created attachment 17418 [details] [review] a proposed patch - but please don't take change for ffmpeg faiulre as it is.
Patch to mpeg2enc committed. The change to ffmpeg seems to have already been done. qcamsrc has no possibility of working on anything but i386-linux, so I fixed the test in configure.ac. Again, if you have additional problems, please reopen the bug or create a new one. Thanks.
Thanks, I'm going to verify by clean cvs-checkout and build from the HEAD, and will mark this verified if okay. BTW, ffmpeg issue seems still there. The problem is in its Makefile.am having that install rule even when USE_FFMPEG is FALSE and FFMPEG_DIR is NONE. I'm going to create a separete bug report for it.
Hmm, did you really commit the patch to the HEAD? I don't see fix when I just run cvs update Is there a delay due to my using CVSROOT? :pserver:anonymous@cvs.gstreamer.sourceforge.net:/cvsroot/gstreamer
Yes, it was committed. It wouldn't surprise me if anonymous CVS was slow; it's run on a different server than ssh CVS.