[FFmpeg-devel] Fix libx264
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
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.
mans at mansr.com
More information about the ffmpeg-devel