On 05/15/2011 10:23 AM, sean darcy wrote:
> On 05/14/2011 07:08 PM, sean darcy wrote:
>> On Fedora 15 beta, gcc-4.6.0-7.fc15.x86_64, today's mlt git:
>>
>> g++ -shared -Wl,-soname,libmlt++.so.3 -o libmlt++.so.0.7.3 MltConsumer.o
>> MltDeque.o MltEvent.o MltFactory.o MltField.o MltFilter.o
>> MltFilteredConsumer.o MltFilteredProducer.o MltFrame.o MltGeometry.o
>> MltMultitrack.o MltParser.o MltPlaylist.o MltProducer.o MltProfile.o
>> MltProperties.o MltPushConsumer.o MltRepository.o MltService.o
>> MltTokeniser.o MltTractor.o MltTransition.o -Wl,--no-undefined
>> -Wl,--as-needed -L../framework -lmlt
>> MltConsumer.o: In function `Mlt::Consumer::get_consumer()':
>> MltConsumer.cpp:(.text+0x17): undefined reference to `__morestack'
>> MltConsumer.o: In function `Mlt::Consumer::connect(Mlt::Service&)':
>> MltConsumer.cpp:(.text+0x39): undefined reference to `__morestack'
>> .......
>>
>> Is this gcc breakage? Isn't __morestack an internal gcc reference?
>>
>> sean
>>
>>
>
>
> Asked this question on fedora testers, and got a reply from the Red Hat
> gcc maintainer:
>
>   >  Isn't __morestack an internal gcc reference? It doesn't appear in the
>   >  >  mlt source code.
> It appears in code that is compiled with -fsplit-stack and is defined in
> libgcc.a. Wonder why this library uses it, anyway, if you are linking
> with g++ instead of gcc, you probably need to link explicitly against
> -lgcc, because __morestack is libgcc.a only symbol, not defined in
> libgcc_s.so.1.
>
> This isn't something that has changed in gcc for several months, so the
> only possible change is on the side of your package or on other
> libraries it links against.
>
>       Jakub
>
>
> So I added -lgcc, but no joy. FWIW, -fsplit-stack is not in the source
> code, so I'm not sure why mlt would come to use it.
>
> ........
> g++ -O2  -march=native -mtune=native -fopenmp -fomit-frame-pointer -pipe
> -fsplit-stack -Wall -W -Wwrite-strings -Wcast-qual -Wpointer-arith
> -Wcast-align -Wredundant-decls -fPIC -DPIC -I.. -rdynamic
> -DVERSION=\"0.7.3\" -lgcc   -c -o MltConsumer.o MltConsumer.cpp
> ........
> g++ -shared -lgcc -Wl,-soname,libmlt++.so.3 -o libmlt++.so.0.7.3
> MltConsumer.o MltDeque.o MltEvent.o MltFactory.o MltField.o MltFilter.o
> MltFilteredConsumer.o MltFilteredProducer.o MltFrame.o MltGeometry.o
> MltMultitrack.o MltParser.o MltPlaylist.o MltProducer.o MltProfile.o
> MltProperties.o MltPushConsumer.o MltRepository.o MltService.o
> MltTokeniser.o MltTractor.o MltTransition.o -Wl,--no-undefined
> -Wl,--as-needed -L../framework -lmlt
> MltConsumer.o: In function `Mlt::Consumer::get_consumer()':
> MltConsumer.cpp:(.text+0x17): undefined reference to `__morestack'
> .......
>
> sean

Found out that -fsplit-stack is a new F15 default. Changed it. mlt built 
fine.

sean


------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Mlt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to