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


------------------------------------------------------------------------------
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