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