Luís Oliveira wrote:
On Sun, Aug 25, 2013 at 3:46 AM, Robert P. Goldman rpgoldman@sift.info wrote:
/usr/local/lib/libsmvgrammar.0.dylib: mach-o, but wrong filetype.
If this had said "wrong architecture", I would have guessed that this was a 32bit/64bit mismatch. But "wrong filetype" seems to indicate a different error, and one that I haven't had any luck googling. At any rate, I have checked and I have x86_64 SBCL and x86_64 dylibs.
I've never come across this either. What does the "file" command have to say about libsmvgrammar.0.dylib? Also, what happens when you try to foreign load that?
Cheers,
I get the same error: Unable to load foreign library (LIBSMVGRAMMAR.0.DYLIB-1099). Error opening shared object "libsmvgrammar.0.dylib": dlopen(libsmvgrammar.0.dylib, 10): no suitable image found. Did find: /usr/local/lib/libsmvgrammar.0.dylib: mach-o, but wrong filetype. [Condition of type LOAD-FOREIGN-LIBRARY-ERROR]
Here's some more information:
$ otool -f /usr/local/lib/libsmvgrammar.0.dylib Fat headers fat_magic 0xcafebabe nfat_arch 1 architecture 0 cputype 16777223 cpusubtype 3 capabilities 0x0 offset 4096 size 38332 align 2^12 (4096)
$ lipo -detailed_info /usr/local/lib/libsmvgrammar.0.dylib Fat header in: /usr/local/lib/libsmvgrammar.0.dylib fat_magic 0xcafebabe nfat_arch 1 architecture x86_64 cputype CPU_TYPE_X86_64 cpusubtype CPU_SUBTYPE_X86_64_ALL offset 4096 size 38332 align 2^12 (4096)
$ file /usr/local/lib/libsmvgrammar.0.dylib /usr/local/lib/libsmvgrammar.0.dylib: Mach-O universal binary with 1 architecture: [x86_64: Mach-O 64-bit x86_64 dSYM companion file]
BTW. these results are from after I used lipo -create on the original file: I was concerned that the file might not be working because it was a thin file instead of a fat file. But "fattening" it seems to make no difference.
I have seen a couple of mentions of this filetype error in google, but only in contexts where someone works around it -- in no place do I see a definition of what this error string is intended to mean (unlike the "wrong architecture" one), including on the Apple Developer list.
I was able to load libaspell.dylib, so I don't think it's that my machine is hopelessly messed up. For that library I see, by contrast
$ lipo -detailed_info libaspell.dylib Fat header in: libaspell.dylib fat_magic 0xcafebabe nfat_arch 4 architecture ppc cputype CPU_TYPE_POWERPC cpusubtype CPU_SUBTYPE_POWERPC_ALL offset 4096 size 1961296 align 2^12 (4096) architecture i386 cputype CPU_TYPE_I386 cpusubtype CPU_SUBTYPE_I386_ALL offset 1966080 size 1506276 align 2^12 (4096) architecture ppc64 cputype CPU_TYPE_POWERPC64 cpusubtype CPU_SUBTYPE_POWERPC_ALL offset 3473408 size 2058888 align 2^12 (4096) architecture x86_64 cputype CPU_TYPE_X86_64 cpusubtype CPU_SUBTYPE_X86_64_ALL offset 5533696 size 1714136 align 2^12 (4096)
This seems to be a dlopen error, not something that's wrong with CFFI -- I was just hoping someone here would know.
Cheers, r