Mercurial > projects > ddmd
diff dmd/backend/glue.d @ 14:2cc604139636
Implemented Linux support for ddmd. Some parts are a bit hacky to just "get it working", that said, druntime and phobos compile, and unittests pass.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Sun, 04 Apr 2010 02:06:32 +0100 |
parents | 10317f0c89a5 |
children | 5c9b78899f5d |
line wrap: on
line diff
--- a/dmd/backend/glue.d Wed Mar 31 16:29:36 2010 +0400 +++ b/dmd/backend/glue.d Sun Apr 04 02:06:32 2010 +0100 @@ -20,7 +20,7 @@ __gshared Array obj_symbols_towrite; -extern (C++) extern +extern (C++) /+extern+/ { __gshared Outbuffer objbuf; int go_flag(char* cp); @@ -127,8 +127,9 @@ version (_WIN32) { *cast(ushort*)p = cast(short)v; } else { - p[0] = v; - p[1] = v >> 8; + assert(0, "Check this"); + p[0] = cast(ubyte)v; + p[1] = cast(ubyte)(v >> 8); } p += 2; } @@ -271,6 +272,16 @@ obj_symbols_towrite.push(cast(void*)s); } +version (Bug4059) +{ + private extern (C) void _Z8obj_initP9OutbufferPKcS2_(Outbuffer* objbuf, const(char)* filename, const(char)* csegname); + void obj_init(Outbuffer* objbuf, const(char)* filename, const(char)* csegname) { return _Z8obj_initP9OutbufferPKcS2_(objbuf, filename, csegname); } +} +else +{ + void obj_init(Outbuffer* objbuf, const(char)* filename, const(char)* csegname); +} + extern (C++) { void backend_init(); void backend_term(); @@ -280,7 +291,6 @@ void el_reset(); void cg87_reset(); void out_reset(); - void obj_init(Outbuffer* objbuf, const(char)* filename, const(char)* csegname); } void clearStringTab() @@ -549,4 +559,4 @@ debugx = params.debugx; debugy = params.debugy; } -} \ No newline at end of file +}