# HG changeset patch # User Jacob Carlborg # Date 1288683971 -3600 # Node ID 9f4e5ac4f0a3283787ccc0e740192a418536fc00 # Parent 190ba98276b3ad117cff310e1a9eea1a4d59049f One step closer to building on posix. There are two missing symbols so it actually doesn't build but previously it didn't build correctly anyway. diff -r 190ba98276b3 -r 9f4e5ac4f0a3 .hgignore --- a/.hgignore Mon Oct 25 15:36:13 2010 +0200 +++ b/.hgignore Tue Nov 02 08:46:11 2010 +0100 @@ -13,3 +13,4 @@ glob:dmd.lib glob:bin/* glob:libdmd.a +glob:*.orig diff -r 190ba98276b3 -r 9f4e5ac4f0a3 build.sh --- a/build.sh Mon Oct 25 15:36:13 2010 +0200 +++ b/build.sh Tue Nov 02 08:46:11 2010 +0100 @@ -3,7 +3,7 @@ # but supports extra optional command line arguments. # Too see the supported args, run: ./build.sh --help -rdmd -unittest buildHelper.d "$@" +rdmd buildHelper.d "$@" # Old buildscript: ##i686-unknown-linux-gnu-g++ -c bridge/bridge.cpp -obridge.o diff -r 190ba98276b3 -r 9f4e5ac4f0a3 commands.osx.txt --- a/commands.osx.txt Mon Oct 25 15:36:13 2010 +0200 +++ b/commands.osx.txt Tue Nov 02 08:46:11 2010 +0100 @@ -21,8 +21,7 @@ -ofbin/ddmd bridge.o --L-Ldmd2/src/dmd --L-ldmd +libdmd.a -L-lstdc++ -L-framework -LCoreServices main.d diff -r 190ba98276b3 -r 9f4e5ac4f0a3 dmd/Declaration.d --- a/dmd/Declaration.d Mon Oct 25 15:36:13 2010 +0200 +++ b/dmd/Declaration.d Tue Nov 02 08:46:11 2010 +0100 @@ -252,7 +252,7 @@ case LINK.LINKcpp: version (CPP_MANGLE) { - return to!(string)(cpp_mangle(this)); + return cpp_mangle(this); } else { // Windows C++ mangling is done by C++ back end return ident.toChars(); diff -r 190ba98276b3 -r 9f4e5ac4f0a3 dmd/Util.d --- a/dmd/Util.d Mon Oct 25 15:36:13 2010 +0200 +++ b/dmd/Util.d Tue Nov 02 08:46:11 2010 +0100 @@ -117,7 +117,7 @@ return result; } -char* strupr(char* s) +extern (C++) char* strupr(char* s) { char* t = s; @@ -593,7 +593,7 @@ } } -void halt() +extern (C++) void halt() { assert(false); } diff -r 190ba98276b3 -r 9f4e5ac4f0a3 dmd/backend/glue.d --- a/dmd/backend/glue.d Mon Oct 25 15:36:13 2010 +0200 +++ b/dmd/backend/glue.d Tue Nov 02 08:46:11 2010 +0100 @@ -53,7 +53,12 @@ } version (CPP_MANGLE) - extern (C++) char* cpp_mangle(Dsymbol s); +{ + string cpp_mangle(Dsymbol s) + { + assert(false, "port c++ mangling"); + } +} import std.exception; import std.string; diff -r 190ba98276b3 -r 9f4e5ac4f0a3 dmd/backend/iasm.d --- a/dmd/backend/iasm.d Mon Oct 25 15:36:13 2010 +0200 +++ b/dmd/backend/iasm.d Tue Nov 02 08:46:11 2010 +0100 @@ -4489,11 +4489,11 @@ } } -extern(C++) +extern(C) { // backward reference from backend - __gshared int refparam; + extern __gshared int refparam; /********************************** * Return mask of registers used by block bp. diff -r 190ba98276b3 -r 9f4e5ac4f0a3 osx_lib.mak --- a/osx_lib.mak Mon Oct 25 15:36:13 2010 +0200 +++ b/osx_lib.mak Tue Nov 02 08:46:11 2010 +0100 @@ -21,25 +21,29 @@ $C/dt.h $C/cgcv.h $C/el.h $C/iasm.h TOTALH= -DMD_OBJS = \ - access.o array.o attrib.o bcomplex.o bit.o blockopt.o \ - cast.o code.o cg.o cg87.o cgcod.o cgcs.o cgcv.o cgelem.o cgen.o \ - cgreg.o cgsched.o class.o cod1.o cod2.o cod3.o cod4.o cod5.o \ - constfold.o irstate.o dchar.o cond.o debug.o \ - declaration.o dsymbol.o dt.o dump.o e2ir.o ee.o eh.o el.o \ - dwarf.o enum.o evalu8.o expression.o func.o gdag.o gflow.o \ - glocal.o gloop.o glue.o gnuc.o go.o gother.o html.o iasm.o id.o \ +BACKEND_OBJS = array.o bcomplex.o blockopt.o code.o cg.o cg87.o \ + cgcod.o cgcs.o cgcv.o cgelem.o cgen.o cgreg.o \ + cgsched.o cod1.o cod2.o cod3.o cod4.o cod5.o \ + dchar.o debug.o dt.o ee.o el.o dwarf.o \ + evalu8.o gdag.o gflow.o glocal.o gloop.o gnuc.o \ + go.o gother.o html.o lstring.o rmem.o \ + nteh.o os.o out.o outbuf.o ptrntab.o \ + root.o rtlsym.o stringtable.o csymbol.o type.o var.o \ + strtold.o toelfdebug.o aa.o ti_achar.o man.o port.o \ + response.o async.o \ + libmach.o machobj.o + +FRONTEND_OBJS = access.o attrib.o bit.o cast.o class.o constfold.o \ + irstate.o cond.o declaration.o dsymbol.o dump.o e2ir.o \ + eh.o enum.o expression.o func.o glue.o id.o \ identifier.o impcnvtab.o import.o inifile.o init.o inline.o \ - lexer.o link.o lstring.o mangle.o mars.o rmem.o module.o msc.o mtype.o \ - nteh.o cppmangle.o opover.o optimize.o os.o out.o outbuf.o \ - parse.o ph.o ptrntab.o root.o rtlsym.o s2ir.o scope.o statement.o \ - stringtable.o struct.o csymbol.o template.o tk.o tocsym.o todt.o \ - type.o typinf.o util.o var.o version.o strtold.o utf.o staticassert.o \ - unialpha.o toobj.o toctype.o toelfdebug.o entity.o doc.o macro.o \ - hdrgen.o delegatize.o aa.o ti_achar.o toir.o interpret.o traits.o \ - builtin.o clone.o aliasthis.o \ - man.o arrayop.o port.o response.o async.o json.o \ - libmach.o machobj.o + lexer.o link.o mangle.o mars.o module.o msc.o \ + mtype.o opover.o optimize.o parse.o ph.o s2ir.o \ + scope.o statement.o struct.o template.o tk.o tocsym.o \ + todt.o typinf.o util.o version.o utf.o staticassert.o \ + unialpha.o toobj.o toctype.o entity.o doc.o macro.o \ + hdrgen.o delegatize.o toir.o interpret.o traits.o builtin.o \ + clone.o aliasthis.o arrayop.o json.o iasm.o cppmangle.o SRC = win32.mak linux.mak osx.mak freebsd.mak solaris.mak \ mars.c enum.c struct.c dsymbol.c import.c idgen.c impcnvgen.c \ @@ -83,11 +87,12 @@ $(ROOT)/stringtable.h $(ROOT)/stringtable.c \ $(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c +DMD_OBJS = $(FRONTEND_OBJS) $(BACKEND_OBJS) all: dmd dmd: id.o optabgen $(DMD_OBJS) - ar rs libdmd.a $(DMD_OBJS) + ar rs libdmd.a $(BACKEND_OBJS) msc.o tk.o util.o entity.o ph.o eh.o clean: rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \