Log in

View Full Version : libx264 Problems on Solaris


Wabbit
25th May 2009, 00:00
My computer has an AMD Opteron CPU and my OS is Nexenta (http://www.nexenta.org/os) which is OpenSolaris with a Linux userland.

I'm using libx264 with Handbrake (http://handbrake.fr/) which uses this version http://download.m0k.org/handbrake/contrib/x264-r1028-83baa7f.tar.gz. When I use the H.264 encoder, I get a segfault in predict_8x8_ddl_sse2()

(gdb) bt
#0 0x084cdc28 in predict_8x8_ddl_sse2 ()
#1 0x0847eca5 in x264_slicetype_mb_cost (h=0x9001200, a=0xfe67f954, frames=<value optimized out>, p0=150999552, p1=0, b=158948928,
dist_scale_factor=138932908, do_search=0x0) at encoder/slicetype.c:223
Backtrace stopped: previous frame inner to this frame (corrupt stack?))

So, I tried using the daily sources but they won't build. I get:

gcc -O1 -g -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DARCH_X86 -DSYS_SunOS -DHAVE_PTHREAD -c -o common/x86/predict-c.o common/x86/predict-c.c
/var/tmp//ccljaaJJ.s: Assembler messages:
/var/tmp//ccljaaJJ.s:1905: Error: no such instruction: `palignr $7,-8+-32(%ebx),%mm1'
/var/tmp//ccljaaJJ.s:1906: Error: no such instruction: `pmaddubsw pb_12345678,%mm0'
/var/tmp//ccljaaJJ.s:1907: Error: no such instruction: `pmaddubsw pb_m87654321,%mm1'
/var/tmp//ccljaaJJ.s:2204: Error: no such instruction: `pmaddubsw pb_m32101234,%mm0'
make: *** [common/x86/predict-c.o] Error 1


I think its using yasm. I have both yasm and nasm installed.
I get the same error on FreeBSD.

Any ideas?

Dark Shikari
25th May 2009, 00:27
Your GNU assembler (as) is too old (at least as old as 2004) to compile x264. Upgrade your binutils.

Wabbit
25th May 2009, 05:49
Your GNU assembler (as) is too old (at least as old as 2004) to compile x264. Upgrade your binutils.

good call,
everything appears to work now, thanks a bunch