[FFmpeg-user] Compile ffmpeg on mips-qemu

Martin Vignali martin.vignali at gmail.com
Fri Jul 1 14:39:28 CEST 2016


2016-06-30 23:33 GMT+02:00 Carl Eugen Hoyos <cehoyos at ag.or.at>:

> Martin Vignali <martin.vignali <at> gmail.com> writes:
>
> > Configure result :
> > ./configure --arch=mips64 --prefix=../build --disable-ffplay
> > --disable-ffprobe --disable-ffserver --enable-zlib --disable-asm
> > --disable-videotoolbox --disable-audiotoolbox --disable-vda
> > --disable-everything --enable-demuxer=image2 --enable-muxer=framecrc
> > --disable-decoders --enable-decoder=exr --enable-protocol=file
> > --enable-protocol=pipe --enable-encoder=rawvideo --disable-doc
> > --extra-ldflags=-static
>
> --disable-videotoolbox --disable-audiotoolbox --disable-vda and
> --enable-zlib have no effect and make reading the other options
> more difficult (that's how I missed --disable-asm).
>
> I compile inside qemu, so no cross-compile

I try, without the static, and whitout the arch

./configure --prefix=../build --disable-ffplay --disable-ffprobe
--disable-ffserver --disable-asm --disable-everything
--enable-demuxer=image2 --enable-muxer=framecrc --disable-decoders
--enable-decoder=exr --enable-protocol=file --enable-protocol=pipe
--enable-encoder=rawvideo --disable-doc
install prefix            ../build
source path               .
C compiler                gcc
C library                 glibc
ARCH                      c (generic)
big-endian                yes
runtime cpu detection     yes
debug symbols             yes
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
new filter support        yes
network support           no
threading support         pthreads
safe bitstream reader     yes
SDL support               no
opencl enabled            no
JNI support               no
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    no

Enabled programs:
ffmpeg

External libraries:
iconv               zlib

External libraries providing hardware acceleration:

Libraries:
avcodec               avformat              swresample
avdevice           avutil              swscale
avfilter

Enabled decoders:
exr

Enabled encoders:
rawvideo

Enabled hwaccels:

Enabled parsers:

Enabled demuxers:
image2

Enabled muxers:
framecrc

Enabled protocols:
file               pipe

Enabled filters:
aformat               format              setpts
anull               null                  trim
atrim

Enabled bsfs:

Enabled indevs:

Enabled outdevs:

License: LGPL version 2.1 or later
Creating config.mak, config.h, and doc/config.texi...
libavutil/avconfig.h is unchanged

WARNING: pkg-config not found, library detection may fail.
WARNING: generic cpu selected
libavcodec/bsf_list.c is unchanged
libavformat/protocol_list.c is unchanged


==> Still have Illegal instruction, when lauching ffmpeg


> Is this a cross- or a native compiler?
>
Is the compiler able to produce non-crashing executables
> with the compiler options used here? (Use make V=1 ffmpeg.o
> to show the used options.)
>

==> Not sure i understand this part.

I run make V=1 ffmpeg.o

This is the result :
make V=1 ffmpeg.o
gcc -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DZLIB_CONST -std=c99
-fomit-frame-pointer -mips32r2 -mhard-float -mfp64 -mdsp -mdspr2 -pthread
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization
-Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef
-Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes
-Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length
-Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize
-Werror=format-security -Werror=implicit-function-declaration
-Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat   -MMD
-MF ffmpeg.d -MT ffmpeg.o -c -o ffmpeg.o ffmpeg.c


I try to compile, a simple hello world program, with the same kind of line
:
gcc -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DZLIB_CONST -std=c99
-fomit-frame-pointer -mips32r2 -mhard-float -mfp64 -mdsp -mdspr2 -pthread
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization
-Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef
-Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes
-Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length
-Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize
-Werror=format-security -Werror=implicit-function-declaration
-Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat   -MMD
-MF main.d -MT main.o -c -o main.o main.c

gcc main.o -o executable
/usr/bin/ld: Warning: executable uses -msingle-float, main.o uses -mips32r2
-mfp64


If i launch this basic program, it's work.



> Why do you need -static? Is it unavoidable?
>
> If this is not a cross-compiler, --arch may (or will?) cause
> issues.
>



Martin


More information about the ffmpeg-user mailing list