Hi Truls, Le 27 févr. 2010 à 18:02, Truls Becken a écrit :
> Does anybody have any light to shed on the linking problem shown > below? The exact same thing happens to CoreObjectExample, and similar > for LuceneKitExample, but with a larger number of different classes. > > After making minor changes to 60+ files, the Étoilé tree compiles for > me with Clang, issuing; > > make CC=clang CXX=clang++ melodie=no coreobjectexample=no > lucenekitexample=no > > This is with GNUstep r29785 using libobjc2, LLVM r97325, and Étoilé > r5933. > > Also, UnitKit has a non-standard structure, which has the effect that > etoile.make does not create symlink Build/UnitKit. It shouldn't be a problem because no modules should link UnitKit (unless 'make test=yes' is used to build the Étoilé tree). If you get linking error related to UnitKit, there is a module that now wrongly links it or old object files still around. However I can make the necessary changes to ensure UnitKit is exported into Build. > Build/libLanguageKit.so is not created correctly either. This is weird, libLanguageKit.so is correctly exported with Étoilé r5776. I'm using libobjc1+GCC here. I need to recompile everything and see whether it's broken with a more recent revision. I'll let you know once I'm done. > [gondor Melodie]$ make CC=clang CXX=clang++ > This is gnustep-make 2.2.0. Type 'make print-gnustep-make-help' for > help. > > Build Project: Melodie > > Making all for app Melodie... > Linking app Melodie ... > /home/truls/etoile/Build/libEtoileSerialize.so.0: undefined reference > to `__objc_class_name_ETXMLNullHandler' > /home/truls/etoile/Build/libEtoileSerialize.so.0: undefined reference > to `__objc_class_name_ETXMLWriter' > /home/truls/etoile/Build/libEtoileSerialize.so.0: undefined reference > to `__objc_class_name_ETXMLSocketWriter' > /home/truls/etoile/Build/libEtoileSerialize.so.0: undefined reference > to `__objc_class_name_ETXMLParser' > [snip] Not sure but… May be the linker complains in this way because we currently have a cyclic dependency between EtoileFoundation and EtoileXML. iirc EtoileXML uses ETSocket but doesn't link EtoileFoundation, it's EtoileFoundation which links both EtoileXML and EtoileThread. The change I plan is to make EtoileXML links EtoileFoundation rather than the reverse and updates modules that use EtoileXML to explicitly link it. We could do the same with EtoileThread. However EtoileThread is really small and doesn't depend on EtoileFoundation at all, so the simplest choice is to let EtoileFoundation linked to EtoileThread. Any other suggestions? Cheers, Quentin. _______________________________________________ Etoile-dev mailing list Etoile-dev@gna.org https://mail.gna.org/listinfo/etoile-dev