
#7603: Bad magic in static (FFI) object (7.6.1 for x86_64-apple-darwin) -------------------------------+-------------------------------------------- Reporter: morabbin | Owner: Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.6.1 | Keywords: Os: MacOS X | Architecture: x86_64 (amd64) Failure: Compile-time crash | Blockedby: Blocking: | Related: -------------------------------+-------------------------------------------- Comment(by thoughtpolice): Template Haskell is not the problem. The Mach-O file format has a special 'magic number' in the head of all object files to identify them; the runtime linker then checks this magic number for sanity, when it loads object files at runtime. The definition of the Mach-O format and some relative constants is [http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/EXTERNAL_HEADERS/ma... here]. We see: {{{ /* * The 32-bit mach header appears at the very beginning of the object file for * 32-bit architectures. */ struct mach_header { uint32_t magic; /* mach magic number identifier */ ... }; /* Constant for the magic field of the mach_header (32-bit architectures) */ #define MH_MAGIC 0xfeedface /* the mach magic number */ #define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */ /* * The 64-bit mach header appears at the very beginning of object files for * 64-bit architectures. */ struct mach_header_64 { uint32_t magic; /* mach magic number identifier */ ... }; /* Constant for the magic field of the mach_header_64 (64-bit architectures) */ #define MH_MAGIC_64 0xfeedfacf /* the 64-bit mach magic number */ #define MH_CIGAM_64 0xcffaedfe /* NXSwapInt(MH_MAGIC_64) */ }}} In a nutshell, this means your ```HOC_cbits``` was compiled as a 32-bit object file, but your GHC is 64bit. Therefore, loading the C bits is impossible. You likely need to recompile it properly (I don't know how the HOC binding takes care of this, but it's probably worth looking around in any makefiles if they exist, or something.) So I don't think this has anything to do with GHC. (I am also a little confused by the output you pasted. I assume in-between every ```cabal build``` step you fixed the errors?) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7603#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler