[FFmpeg-devel] [FFmpeg-cvslog] Merge commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63'

James Almer jamrial at gmail.com
Fri Oct 13 19:48:55 EEST 2017


On 10/13/2017 1:05 PM, Reino Wijnsma wrote:
> On 13-10-2017 0:27, James Almer <jamrial at gmail.com> wrote:
>> On 10/12/2017 6:42 PM, Reino Wijnsma wrote:
>>> On 12-10-2017 20:11, Helmut K. C. Tessarek <tessarek at evermeet.cx> wrote:
>>>> I'm not sure why you guys have to make all these changes to the build
>>>> process lately.
>>>>
>>>> All of a sudden ffmpeg does not compile anymore. During configure I get:
>>>>
>>>> ERROR: libbluray not found using pkg-config
>>>>
>>>> which worked perfectly 2 days ago. So, whatever changes you made, they
>>>> screwed up other things.
>>> Same here. I was about to compile another FFmpeg executable, but got
>>> configure complaining about libbluray as well (note: I always use
>>> --pkg-config-flags=--static).
>>> I've worked around that by changing the pc-file
>>>
>>> prefix=/cygdrive/[...]
>>> exec_prefix=${prefix}
>>> libdir=${exec_prefix}/lib
>>> includedir=${prefix}/include
>>>
>>> Name: libbluray
>>> Description: library supporting Blu-ray playback
>>> Version: 1.0.1
>>> Libs: -L${libdir} -lbluray
>>> Libs.private:  -L/cygdrive/[...]/lib -lxml2 -L/cygdrive/[...]/lib
>>> -lfreetype -lgdi32
>>> Cflags: -I${includedir}
>>>
>>> ...into:
>>>
>>> prefix=/cygdrive/[...]
>>> exec_prefix=${prefix}
>>> libdir=${exec_prefix}/lib
>>> includedir=${prefix}/include
>>>
>>> Name: libbluray
>>> Description: library supporting Blu-ray playback
>>> Version: 1.0.1
>>> Requires: libxml-2.0, freetype2
>>> Libs: -L${libdir} -lbluray
>>> Libs.private:  -lgdi32
>>> Cflags: -I${includedir}
>> Thanks a lot! You confirmed what i suspected.
>>
>> Guess we'll have to get libbluray to change their .pc file.
>>
>>> Next however was iLBC. I got "undefined reference to `pthread_once'" and
>>> "ERROR: libilbc not found". I had to add --extra-libs=-lpthread to 'fix'
>>> that.
>>>
>>> Now it's complaining about libmysofa:
>>>
>>> /cygdrive/[...]/lib/libmysofa.a(gunzip.c.obj):gunzip.c:(.text+0x5f):
>>> undefined reference to `inflateInit_'
>>> /cygdrive/[...]/lib/libmysofa.a(gunzip.c.obj):gunzip.c:(.text+0x76):
>>> undefined reference to `inflate'
>>> /cygdrive/[...]/lib/libmysofa.a(gunzip.c.obj):gunzip.c:(.text+0x8a):
>>> undefined reference to `inflateEnd'
>>> collect2: error: ld returned 1 exit status
>>> ERROR: libmysofa not found
>> Does libmysofa have a pkg-config file? Otherwise, guess i'll have to add
>> -lz to its extralibs.
> No, it does not. However,...
> 
> enabled libmysofa         && require libmysofa "mysofa.h" mysofa_load
> -lmysofa -lz
> 
> appending "-lz" here fixes the issue for me.

Yes, i fixed it this way earlier today.

> 
> 
> Next in line is libopenmpt. A LONG list of error-messages, saved and
> attached as '/config_libopenmpt.log/'.
> Also notice the warning on line 19 and the GCC 7.2.0
> undefined-reference-messages on line 134 and 135 for instance.
> My '/libopenmpt.pc/' looks like:
> 
> prefix=/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32
> exec_prefix=${prefix}
> includedir=${prefix}/include
> libdir=${exec_prefix}/lib
> 
> Name: libopenmpt
> Description: Tracker module player based on OpenMPT
> Version: 0.3.1+release.autotools
> Requires.private: zlib libmpg123 ogg vorbis vorbisfile
> Libs: -L${libdir} -lopenmpt
> Libs.private:
> Cflags: -I${includedir}
> 
> -- Reino
> 
> 
> config_libopenmpt.log
> 
> 
> [...]
> require_pkg_config libopenmpt libopenmpt >= 0.2.6557 libopenmpt/libopenmpt.h openmpt_module_create
> use_pkg_config libopenmpt libopenmpt >= 0.2.6557 libopenmpt/libopenmpt.h openmpt_module_create
> check_pkg_config libopenmpt libopenmpt >= 0.2.6557 libopenmpt/libopenmpt.h openmpt_module_create
> pkg-config --exists --print-errors libopenmpt >= 0.2.6557
> check_func_headers libopenmpt/libopenmpt.h openmpt_module_create -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -L/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib -lopenmpt -lz -lmpg123 -lvorbisfile -lvorbis -lm -logg
> check_ld cc -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -L/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib -lopenmpt -lz -lmpg123 -lvorbisfile -lvorbis -lm -logg
> check_cc -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -L/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib
> BEGIN /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c
>     1	#include <libopenmpt/libopenmpt.h>
>     2	#include <stdint.h>
>     3	long check_openmpt_module_create(void) { return (long) openmpt_module_create; }
>     4	int main(void) { int ret = 0;
>     5	 ret |= ((intptr_t)check_openmpt_module_create) & 0xFFFF;
>     6	return ret; }
> END /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c
> /cygdrive/[...]/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32-gcc
> -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__
> -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -march=pentium3 -O2
> -mfpmath=sse -msse -DCACA_STATIC -DLIBTWOLAME_STATIC -march=pentium3 -O2
> -mfpmath=sse -msse -std=c11 -fomit-frame-pointer -pthread -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -DLIBXML_STATIC
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/libxml2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/fribidi
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -DLIBXML_STATIC
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/libxml2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/bs2b -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -DLIBXML_STATIC
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/libxml2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/freetype2
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/fribidi
> -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -L/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib -c -o /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.o /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c
> /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c: In function 'check_openmpt_module_create':
> /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c:3:1: warning: 'openmpt_module_create' is deprecated [-Wdeprecated-declarations]
>  long check_openmpt_module_create(void) { return (long) openmpt_module_create; }
>  ^~~~
> In file included from /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.c:1:0:
> /cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/libopenmpt/libopenmpt.h:645:55: note: declared here
>  LIBOPENMPT_API LIBOPENMPT_DEPRECATED openmpt_module * openmpt_module_create( openmpt_stream_callbacks stream_callbacks, void * stream, openmpt_log_func logfunc, void * loguser, const openmpt_module_initial_ctl * ctls );
>                                                        ^~~~~~~~~~~~~~~~~~~~~
> /cygdrive/[...]/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32-gcc
> -Wl,--large-address-aware -Wl,--nxcompat,--dynamicbase -Wl,--as-needed
> -Wl,--pic-executable,-e,_mainCRTStartup -I/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include -L/cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib -o /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.exe /cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.f7SNCo4C/test.o -lopenmpt -lz -lmpg123 -lvorbisfile -lvorbis -lm -logg -lshlwapi -lpthread -lcrypt32

So in here it's including the libraries libopenmpt.pc said it needed
(using pkg-config --static). Are "-lshlwapi -lpthread -lcrypt32"
extralibs you added manually, or were they derived from dependencies
like libmpg123, vorbis, etc by pkg-config?

Also, all the errors below mention functions from the c++ standard
library, so it looks like libopenmpt.pc should be including -lstdc++
in Libs.private but it doesn't? I see that libopempt depends on
PortAudiocpp to build, so i'm guessing that's indeed the case.

See if adding -lstdc++ fixes it. If it does then it means that, before
the commit that introduced these issues, a previous library you
requested (maybe libgme) added -lstdc++ to the global ldflags.
It would for that matter help a lot if you post the exact configure line
you're using.

> /cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib/libopenmpt.a(libopenmpt_la-libopenmpt_c.o): In function `ZN7openmpt6helper11make_uniqueINS_14logfunc_loggerEJPFvPKcPvERS5_EEESt10unique_ptrIT_St14default_deleteISA_EEDpOT0_':
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_impl.hpp:200: undefined reference to `__gxx_personality_sj0'
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_impl.hpp:201: undefined reference to `operator new(unsigned int)'
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_impl.hpp:201: undefined reference to `operator delete(void*, unsigned int)'
> /cygdrive/[...]/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib/libopenmpt.a(libopenmpt_la-libopenmpt_c.o): In function `set_current_speed':
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_c.cpp:1448: undefined reference to `__gxx_personality_sj0'
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_c.cpp:1453: undefined reference to `__cxa_begin_catch'
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_c.cpp:1453: undefined reference to `__cxa_end_catch'
> /cygdrive/[...]/win32/libopenmpt-0.3.1+release.autotools/libopenmpt/libopenmpt_c.cpp:1453: undefined reference to `__cxa_end_catch'


More information about the ffmpeg-devel mailing list