Le 25 sept. 2014 à 00:47, Quentin Mathé <[email protected]> a écrit :

> Le 22 sept. 2014 à 20:39, Edwin Ancaer <[email protected]> a écrit :
> 
>> But now there seems to be a problem with were the Clang-file stdef.h was 
>> installed, and were edlc is expecting to find it  Any edlc command returns: 
>> 
>> /usr/include/sys/param.h:23:10: fatal error: 'stddef.h' file not found
>> edlc: symbol lookup error: 
>> /usr/GNUstep/Local/Library/Frameworks/SourceCodeKit.framework/Versions/Current/./SourceCodeKit:
>>  undefined symbol: clang_Cursor_isObjCOptional
>> 
>> I have the file stdef.h in the directory /usr/lib/clang/3.3/include.  Can 
>> you tell me where edlc is looking for it, so I can try to create a symbolic 
>> link (a workaround found while searching the net). 
> 
> Looks like edlc is unable to load SourceCodeKit which links libclang. 
> clang_Cursor_isObjCOptional() is probably missing in libclang 3.3, so 
> SourceCodeKit needs to be adjusted to work again with libclang 3.3. I'll take 
> a look tomorrow, and let you know once it's done.
> 
> For the first 'stddef.h' error, it is probably related to SourceCodeKit which 
> attempts to parse the system headers to support calling C from Smalltalk. 
> We'll see if it goes away once SourceCodeKit is updated.

I checked SourceCodeKit, and the code already checks the libclang version 
during compilation. For example,

#if CINDEX_VERSION >= 21
                                                                attributes = 
clang_Cursor_getObjCPropertyAttributes(protocolCursor, 0);
                                                                isRequired = 
(clang_Cursor_isObjCOptional(protocolCursor) == 0);
#else
#warning Your libclang does not support checking for optional property 
declarations
#endif

So I don't understand how you can get this symbol lookup error. Do you get the 
warning above when compiling SourceCodeKit?

A possible explanation could be that SourceCodeKit was compiled against 
libclang 3.4 or higher, but when you run 'edlc', libclang 3.3 is the one 
picked. 
May be there is some mismatch between the compiler search paths and the loader 
ones?

On another note, I just committed a SourceCodeKit fix to get the Smalltalk to C 
interface working again. Calling functions such as sqrt() was broken. Now 'edlc 
-f test.st' runs fine on my machine.

Cheers,
Quentin.



_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à