https://issues.dlang.org/show_bug.cgi?id=16536
Martin Nowak <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #7 from Martin Nowak <[email protected]> --- Well, from the error message, it seems to me we're using `unsigned long long` on the C side (typedef unsigned long long targ_ullong), but `unsigned long` on the D side (alias targ_ullong = ulong). (In reply to Jacob Carlborg from comment #6) > I manually patch the compiler by replacing targ_size_t with size_t/d_size_t > where the linker complains. I could create a PR but I don't know if it's the > correct solution. Well we want to always use unsigned long long on both sides (and for 32 and 64-bit dmds), b/c it must be able to hold any target's size_t (hence the name targ_size_t). It's a slightly different problem than the fix for Issue 16000 https://github.com/dlang/dmd/pull/5788/files#diff-5910c4bad5eadf90caa32a46ab678aa0R12, where we wanted size_t (4/8 bytes depending on 32/64-bit dmd) on both sides. Not too sure, but I guess if you `typedef unsigned long targ_ullong` on OSX/64 it should work, but that stuff starts to become really messy. --
