[libav-tools] cross compile problem with yasm

Farkas Levente lfarkas at lfarkas.org
Wed Aug 3 11:26:10 CEST 2011


On 08/03/2011 10:47 AM, Luca Barbato wrote:
> On 8/2/11 2:02 PM, Farkas Levente wrote:
>> On 08/02/2011 01:41 PM, Luca Barbato wrote:
>>> On 8/2/11 10:43 AM, Farkas Levente wrote:
>>>> On Mon, Aug 1, 2011 at 14:55, Luca Barbato<lu_zero at gentoo.org>   wrote:
>>>>> qlist -Iv yasm mingw
>>>>> cross-i686-w64-mingw32/binutils-2.21
>>>>> cross-i686-w64-mingw32/gcc-4.5.2
>>>>> cross-i686-w64-mingw32/mingw64-runtime-20101003
>>>>> cross-mingw32/binutils-2.21
>>>>> cross-mingw32/gcc-4.5.2
>>>>> cross-mingw32/mingw-runtime-3.18
>>>>> cross-mingw32/w32api-3.15
>>>>> cross-x86_64-w64-mingw32/binutils-2.21
>>>>> cross-x86_64-w64-mingw32/gcc-4.5.2
>>>>> cross-x86_64-w64-mingw32/mingw64-runtime-20101003
>>>>> dev-lang/yasm-1.1.0-r1
>>>>>
>>>>> Those are my versions for the toolchains not sure how much it helps.
>>>>
>>>> do you hvae bot mingw32 and i686-w64-mingw32 installed? which one do
>>>> you use to build http://win32.libav.org/win32/ ?
>>>
>>> mingw32 , the i686-mingw64 is used to test pthreads support.
>>
>> and anyway the comment the top of this page
>> http://win32.libav.org/win64/
>> said MinGW-w64 autobuild, but on the bottom of the page the "Build
>> flags" said: --cross-prefix=mingw32- --arch=i686 --target-os=mingw32 ...
>> or it's just a typo?
>>
> Yes, thank you for pointing, fixed now =)

now i switch to mingw32 and try to build with that. now i've got another
problem which is imho a bug in libav's build scripts.

while i configure this:
./configure --prefix=/usr/i686-pc-mingw32/sys-root/mingw \
        --enable-cross-compile \
        --cross-prefix=i686-pc-mingw32- \
        --arch=i686 \
        --target-os=mingw32 \
        --enable-runtime-cpudetect \
        --enable-memalign-hack \
        --enable-shared \
        --enable-postproc \
        --enable-gpl

the missign lib is the pthreads (even if it's installed), but it seems
that the linker can't find it. the only thing which i find in config.mak:
EXTRALIBS=-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
which is good (ie -lpthreadGC2), but it's not in libavutil.pc:
-------------------------------
# grep -r pthreadGC2 .|egrep -v config.log
./libavdevice/libavdevice-uninstalled.pc:Libs: ${libdir}/libavdevice.a
-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
./libavdevice/libavdevice.pc:Libs.private: -lavicap32 -lws2_32 -lm
-lpthreadGC2 -lz -lpsapi
./libavformat/libavformat-uninstalled.pc:Libs: ${libdir}/libavformat.a
-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
./libavformat/libavformat.pc:Libs.private: -lavicap32 -lws2_32 -lm
-lpthreadGC2 -lz -lpsapi
./config.mak:EXTRALIBS=-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
./libavfilter/libavfilter.pc:Libs.private: -lavicap32 -lws2_32 -lm
-lpthreadGC2 -lz -lpsapi
./libavfilter/libavfilter-uninstalled.pc:Libs: ${libdir}/libavfilter.a
-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
./libavcodec/libavcodec-uninstalled.pc:Libs: ${libdir}/libavcodec.a
-lavicap32 -lws2_32 -lm -lpthreadGC2 -lz -lpsapi
./libavcodec/libavcodec.pc:Libs.private: -lavicap32 -lws2_32 -lm
-lpthreadGC2 -lz -lpsapi
./configure:    elif check_func pthread_create -lpthreadGC2; then
./configure:        add_extralibs -lpthreadGC2
-------------------------------

this's the error message:
-------------------------------
AR	libavdevice/libavdevice.a
LD	libavutil/avutil-51.dll
Creating library file: libavutil/libavutil.dll.a
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_key_create':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:582:
undefined reference to `_TlsAlloc at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:589:
undefined reference to `___mingwthr_key_dtor'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:593:
undefined reference to `_GetLastError at 0'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_once':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:547:
undefined reference to `__CRT_MT'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:554:
undefined reference to `_InterlockedIncrement at 4'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_setspecific':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:621:
undefined reference to `_TlsSetValue at 8'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:624:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:621:
undefined reference to `_TlsSetValue at 8'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:624:
undefined reference to `_GetLastError at 0'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_getspecific':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_setspecific':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:621:
undefined reference to `_TlsSetValue at 8'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:621:
undefined reference to `_TlsSetValue at 8'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_getspecific':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:609:
undefined reference to `_GetLastError at 0'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:611:
undefined reference to `_TlsGetValue at 4'
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:613:
undefined reference to `_SetLastError at 4'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `__gthread_setspecific':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:624:
undefined reference to `_GetLastError at 0'
/usr/lib64/gcc/i686-pc-mingw32/4.5.3/libgcc_eh.a(unwind-sjlj.o): In
function `_Unwind_SjLj_SetContext':
/builddir/build/BUILD/gcc-4.5.3/build/i686-pc-mingw32/libgcc/../../../libgcc/../gcc/gthr-win32.h:624:
undefined reference to `_GetLastError at 0'
-------------------------------
dare i ask a fix in git?:-)
regards.

-- 
  Levente                               "Si vis pacem para bellum!"


More information about the libav-tools mailing list