changeset 184:9f4e5ac4f0a3

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.
author Jacob Carlborg <doob@me.com>
date Tue, 02 Nov 2010 08:46:11 +0100
parents 190ba98276b3
children 13cf8da225ce
files .hgignore build.sh commands.osx.txt dmd/Declaration.d dmd/Util.d dmd/backend/glue.d dmd/backend/iasm.d osx_lib.mak
diffstat 8 files changed, 38 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
--- 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
--- 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();
--- 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);
 }
--- 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;
--- 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.
--- 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 \