gcc breakage?? : undefined reference to `__morestack'

sean darcy seandarcy2 at gmail.com
Sun May 15 14:28:25 UTC 2011


On 05/15/2011 05:03 AM, Jakub Jelinek wrote:
> On Sat, May 14, 2011 at 07:08:08PM -0400, sean darcy wrote:
>>
>> F15 updated.
>> gcc-4.6.0-7.fc15.x86_64
>> gcc-c++-4.6.0-7.fc15.x86_64
>> libgcc-4.6.0-7.fc15.x86_64
>>
>> Building kdenlive and mlt (which have built before Thursday) I'm getting
>>
>> 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'
>> ............
>>
>> 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.
>
I added -lgcc, but no joy.

........
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
[NO ERRORS]
........
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'
.......

I'm pretty sure I built this with -fsplit-stack last week.

sean



More information about the test mailing list