[x264-devel] x264 for sparcV9

David Munday cromom at soe.ucsc.edu
Mon Feb 7 19:29:09 CET 2011


Hi Sean,

Thanks for the tips! It compiled without a problem after that. How come the
assembly optimizations have to be left out? Are there none for sparcv9?

 

Also, I'm trying to invoke x264 with the following parameters and it seems
to return right away. Is there a way to check the output to make sure the
program is running correctly?

./x264 --quiet --qp 20 --partitions b8x8,i4x4 --ref 5 --direct auto
--b-pyramid --weightb --mixed-refs --no-fast-pskip --me umh --subme 7
--analyse b8x8,i4x4 --threads 1 -o eledream.264 eledream_640x360_128.y4m

 

Thanks for your help,
David

 

 

 

From: Sean McGovern [mailto:gseanmcg at gmail.com] 
Sent: Friday, February 04, 2011 7:40 PM
To: David Munday; Mailing List for x264 developers
Subject: Re: x264 for sparcV9

 

Pass --disable-asm to configure, and then re-run gmake.

Rebuilding often? Use gmake -j `/usr/sbin/psrinfo -p`

Want to follow proper Solaris standards for library placement? Add
--libdir=\${exec_prefix}/lib/sparcv9 to configure, and then don't forget to
symlink sparcv9 to '64' in the lib directory.

-- Sean

  _____  

From: "David Munday" <cromom at soe.ucsc.edu> 

Date: Fri, 4 Feb 2011 19:11:01 -0800

To: <gseanmcg at gmail.com>; 'Mailing List for x264
developers'<x264-devel at videolan.org>

Subject: RE: x264 for sparcV9

 

Yes, I see your point, I added m64 to LDFLAGS but now I get the following:

gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o
output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o
output/flv_bytestream.o filters/filters.o filters/video/video.o
filters/video/source.o filters/video/internal.o filters/video/resize.o
filters/video/cache.o filters/video/fix_vfr_pts.o
filters/video/select_every.o filters/video/crop.o filters/video/depth.o
input/thread.o extras/getopt.o libx264.a  -m64 -lm -lpthread -s

Undefined                       first referenced

symbol                             in file

x264_pixel_sad_16x16_vis            libx264.a(pixel.o)

x264_pixel_sad_8x8_vis              libx264.a(pixel.o)

x264_pixel_sad_8x16_vis             libx264.a(pixel.o)

x264_pixel_sad_16x8_vis             libx264.a(pixel.o)

ld: fatal: Symbol referencing errors. No output written to x264

collect2: ld returned 1 exit status

 

I'm just using configure with the appropriate variables and running the
Makefile as it came from the git repo. Do I need to tell it something else
to not link in pixel.o?

 

Thanks,
David

 

From: Sean McGovern [mailto:gseanmcg at gmail.com] 
Sent: Friday, February 04, 2011 7:01 PM
To: David Munday; Mailing List for x264 developers
Subject: Re: x264 for sparcV9

 

Also, pixel.o shouldn't be built or linked in as its not 64-bit.

-- Sean

  _____  

From: "David Munday" <cromom at soe.ucsc.edu> 

Date: Fri, 4 Feb 2011 18:38:31 -0800

To: <gseanmcg at gmail.com>; 'Mailing List for x264
developers'<x264-devel at videolan.org>

Subject: RE: x264 for sparcV9

 

Hi Sean,

Thanks for the reply, I'm using gcc 4.3.2 and I ran configured with 

#CFLAGS="-m64 mcpu=v9" ./configure

 

And then ran gmake. Unfortunately, I'm getting a linking error related to
the ELFCLASS of the x264.o object file. I'm thinking this is something
simple that I'm not remembering. Would you mind taking a look at my build?

 

I appreciate your help,

David

 

 

Here's the last few lines of my build:

gcc -Wshadow -O3 -ffast-math -m64 -mcpu=v9 -Wall -I. -std=gnu99 -s
-fomit-frame-pointer -fno-tree-vectorize   -c -o common/threadpool.o
common/threadpool.c

as -xarch=v8plusa -DBIT_DEPTH=8 -o common/sparc/pixel.o
common/sparc/pixel.asm

ar rc libx264.a common/mc.o common/predict.o common/pixel.o
common/macroblock.o common/frame.o common/dct.o common/cpu.o common/cabac.o
common/common.o common/osdep.o common/re

ctangle.o common/set.o common/quant.o common/deblock.o common/vlc.o
common/mvpred.o common/bitstream.o encoder/analyse.o encoder/me.o
encoder/ratecontrol.o encoder/set.o encode

r/macroblock.o encoder/cabac.o encoder/cavlc.o encoder/encoder.o
encoder/lookahead.o common/threadpool.o common/sparc/pixel.o

ranlib libx264.a

gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o
output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o
output/flv_bytestream.o filters/fil

ters.o filters/video/video.o filters/video/source.o filters/video/internal.o
filters/video/resize.o filters/video/cache.o filters/video/fix_vfr_pts.o
filters/video/select_every.o filters/video/crop.o filters/video/depth.o
input/thread.o extras/getopt.o libx264.a  -lm -lpthread -s

ld: fatal: file x264.o: wrong ELF class: ELFCLASS64

ld: fatal: File processing errors. No output written to x264

collect2: ld returned 1 exit status

gmake: *** [x264] Error 1

 

From: Sean McGovern [mailto:gseanmcg at gmail.com] 
Sent: Friday, February 04, 2011 4:27 PM
To: David Munday; Mailing List for x264 developers
Subject: Re: x264 for sparcV9

 

No, it should compile stock provided you are using a recent version of gcc
-- 3.4.3 from Solaris 10 is ever so slightly on the old side. You might want
to get your hands on GCCFSS or Blastwave. I built my own gcc 4.5.2 against
SunFreeware's binutils package. 

I've been working with the x264 team to keep this building properly "out of
the box" on SPARC. 

-- Sean

  _____  

From: "David Munday" <cromom at soe.ucsc.edu> 

Date: Fri, 4 Feb 2011 16:02:30 -0800

To: <sean at seanmcgovern.ca>

Subject: x264 for sparcV9

 

Hi Sean,

I'm a graduate student doing research with x264 and I need to compile a
64-bit version for sparcv9. I noticed that you are distributing solaris
packages of exactly what I need, except I need to modify the source code.

 

Did you have to do anything special to get x264 to compile for 64-bit other
than pass m64 to the compiler?

 

Thanks for your help,
David 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20110207/5bfd2b89/attachment-0001.html>


More information about the x264-devel mailing list