GStreamer SDK - link error since upgrading to latest version (2012.11Brahmaputra)
Andoni Morales
ylatuya at gmail.com
Wed Feb 6 06:07:09 PST 2013
2013/2/5 Alexey Chernov <4ernov at gmail.com>:
> В письме от 05 фев 2013 18:46:15 пользователь Andoni Morales написал:
>> 2013/2/5 Andoni Morales <ylatuya at gmail.com>:
>> > 2013/2/4 philippe renon <philippe_renon at yahoo.fr>:
>> >> Hi Kyrylo,
>> >>
>> >> Thanks for helping.
>> >>
>> >> I don't yet have the answer to which C++ runtimes are used.
>> >>
>> >> But I can provide the details about the project's g++ :
>> >>
>> >> $ which g++
>> >> /d/OPENPI~2/QtSDK/mingw/bin/g++
>> >>
>> >> $ g++ -v
>> >> Using built-in specs.
>> >> Target: mingw32
>> >> Configured with: ../gcc-4.4.0/configure
>> >> --enable-languages=c,ada,c++,fortran,java,objc,obj-c++
>> >> --disable-sjlj-exceptions
>> >>
>> >> --enable-shared --enable-libgcj --enable-libgomp --with-dwarf2
>> >>
>> >> --disable-win32-registry --enable-libstdcxx-debug --enab
>> >> le-version-specific-runtime-libs --prefix=/mingw
>> >> --with-gmp=/mingw/src/gmp/root --with-mpfr=/mingw/src/mpfr/root --build
>> >> =mingw32
>> >> Thread model: win32
>> >> gcc version 4.4.0 (GCC)
>> >>
>> >> At this point, I would like to know if the only solution is too make sure
>> >> both projects are using the same toolchain.
>> >> I hope not as this is a bit out of my league.
>> >> Would it possible to "tweak" the project's toolchain or build process to
>> >> become compatible with the SDK?
>> >> If not, are there other alternatives? Is it in the SDK roadmap to support
>> >> alternate toolchains ?
>>
>> I am not familiar with QT's SDK, but from the download area notes I
>> see that they provide a toolchain that's built using the sljl
>> exception handling model:
>> "The MinGW binary package includes a 32 bit MinGW-builds (gcc 4.7.2,
>> sjlj exception handing, posix threading) toolchain."
>>
>> So you should use this toolchain instead of MinGW default's one.
>
>> This is an issue with the different exception handling used in GCC.
>> Our toolchain uses the old sljj exceptions while the one you are using
>> uses dwarf. But this shouldn't be an issue unless you are mixing c++
>> libraries. Are you using QtGStreamer? How are you building it?
>> Can you please describe the steps to reproduce the issue such as which
>> project should we checkout and which branch, configure options, etc...
>
> Yes, we have discussed this issue some time ago.
>
> Andoni is right, there's a problem with exception handling. Another problem is
> that at least as of 2012.11 version, some GStreamer dependency requires _any_
> GStreamer-based program (I experimented on 'hello world' example) be linked
> with libstdc++6, which in turn leads to conflict in exception handling method.
> Even if you workaround this link error, you'll have a good chance to get an
> exception right after the program start in some strange place like strcpy()
> call.
This should be fixed ASAP as we shouldn't be pulling this dependency
at all to link against GStreamer.
Andoni
>
> What's more, as I've read in several places during my experiments, there're
> some binary incompartibility in gcc-4.7.2 and previous versions, so I actually
> haven't managed to get it work 2012.11 SDK 32-bit and Qt4 build with MinGW
> 4.7.2.
>
> What solved the problem for me is using MinGW package downloaded by cerbero
> during GStreamer SDK build process. I built Qt-4.8.4 with it and then built my
> application against GStreamer SDK 2012.11 and this custom Qt build. Everything
> worked fine after that.
>
> Also, David Hoyt suggested me to use OSSBuild package which also seems to help
> but I still haven't tried it but it can fix the problem, too, I think.
>
> Alexey Chernov
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
--
Andoni Morales Alastruey
LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
More information about the gstreamer-devel
mailing list