|
OS X framework + ghci linker + RTS flags = bus error?: msg#00049lang.haskell.glasgow.bugs
The dynamic linker appears to interact in a strange way with RTS command-line flags on OS X. (version 10.2.8, with ghc-6.2.2; although ghc-6.2.1 and ghc-6.3.20041009 also seem to have this problem). Here's a simple example: ****************************** // BusErr.m #include <Foundation/Foundation.h> int foo(int n) { NSLog(@"In foo."); return n; } ****************************** >gcc -c BusErr.m >ghci -framework Foundation +RTS -RTS BusErr.o Loading package base ... linking ... done. Loading object (static) BusErr.o ... done Loading object (framework) Foundation ... done final link ... Bus error ****************************** A similar error occurs when using foreign code from a framework in a Template Haskell splice (which is where this matters to me). The error is avoided either by using ghc instead of ghci, by removing the "+RTS -RTS" flags, or by removing the call to NSLog (or, eg, replacing it with printf which is not linked via a framework). I've tracked the bus error to the call to NSLookupAndBindSymbol in rts/Linker.c (on the symbol "_NSLog", in this case) but can't figure out anything more than that. Thanks in advance, -Judah ****************************** Crash report: Date/Time: 2004-10-19 19:45:35 -0400 OS Version: 10.2.8 (Build 6R73) Command: ghc-6.2.2 PID: 1155 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000 Thread 0 Crashed: #0 0x90013c54 in memcmp #1 0x901a5458 in __CFInitialize #2 0x8fe0901c in call_image_init_routines #3 0x8fe106e4 in link_in_need_modules #4 0x8fe104e4 in bind_symbol_by_name #5 0x8fe136d8 in _dyld_NSLookupAndBindSymbol #6 0x9003ea94 in NSLookupAndBindSymbol #7 0x00a6ff64 in 0xa6ff64 #8 0x00a7069c in 0xa7069c #9 0x00a7125c in 0xa7125c #10 0x00a701d4 in 0xa701d4 #11 0x00326810 in 0x326810 #12 0x00a68cb8 in 0xa68cb8 #13 0x00a69698 in 0xa69698 #14 0x00a695b0 in 0xa695b0 #15 0x00a82250 in 0xa82250 #16 0x00a3c880 in 0xa3c880 #17 0x000021b0 in 0x21b0 #18 0x00002030 in 0x2030 PPC Thread State: srr0: 0x90013c54 srr1: 0x0000f030 vrsave: 0x00000000 xer: 0x00000000 lr: 0x901a5458 ctr: 0x00000010 mq: 0x00000000 r0: 0x00000010 r1: 0xbfffcd10 r2: 0x00000006 r3: 0x00000000 r4: 0x901c8581 r5: 0x00000010 r6: 0x00b97000 r7: 0x00b97000 r8: 0x00000000 r9: 0x0000002d r10: 0x00000001 r11: 0xa0132f4c r12: 0x90013c40 r13: 0x00000000 r14: 0x00b88af8 r15: 0x0000000f r16: 0x0152df20 r17: 0x0152dfbc r18: 0x0152dfb4 r19: 0x00000000 r20: 0x8fe48480 r21: 0x8fe48470 r22: 0x8fe48a44 r23: 0x00000000 r24: 0x66000000 r25: 0x8fe4844c r26: 0xbffffa10 r27: 0xbffffa28 r28: 0xa0135370 r29: 0x00000007 r30: 0x00000006 r31: 0x901a5370
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Preprocessors, Ketil Malde |
|---|---|
| Next by Date: | Re: Preprocessors, Volker Stolz |
| Previous by Thread: | Re: Preprocessors, Ketil Malde |
| Next by Thread: | Re: OS X framework + ghci linker + RTS flags = bus error?, Wolfgang Thaller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |