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

Reply via email to