[FFmpeg-devel] Fix libx264

Måns Rullgård mans
Tue Feb 16 10:41:42 CET 2010

Felipe Contreras <felipe.contreras at gmail.com> writes:

> 2010/2/7 M?ns Rullg?rd <mans at mansr.com>:
>> Felipe Contreras <felipe.contreras at gmail.com> writes:
>>> Is it wrong in this case? If you want -pthread instead of -lpthread
>>> then x264's pc file can be corrected.
>> Wrong. ?The correct flag depends on the compiler, and .pc files don't
>> take that into account. pkg-config is flawed. ?End of story.
> I read a bit about -pthread vs -lpthread and it seems -pthread is
> essentially '-D_REENTRANT -lpthread' but since x264 headers don't use
> _REENTRANT, -pthread is the same as -lpthread.

Even if x264 headers do not use check _REENTRANT, system headers

> Of course this is only true on certain platforms. Other platforms
> mights prefer other flags. Note the word *platform* not compiler.

The compiler is part of the platform.  Did you even bother checking
obscure systems like AIX?  IIRC it really makes a difference there.

> IOW; if x264 was compiled with -lpthread, that's what FFmpeg should
> use, regardless of the compiler used. Otherwise linking to x264 will
> fail.

You are still wrong.  If x264 was compiled with thread support,
anything linking to it must also be compiled and linked with full
thread support.  On *some* systems this is as simple as linking with
-lpthread, on others it is not.  Passing --enable-pthreads to FFmpeg
configure will do the right thing.

> So you are wrong; pkg-config is not flawed.

Yes it is.  It can only provide specific flags, which is not
sufficient information, and may even break things if a different
compiler is used.

> Anyway, regardless of what your opinions are, the fact remains the
> same: FFmpeg compilation is broken for x264 as static library.

No, use --enable-pthreads.  It works for everybody else.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list