diff lphobos/build.sh @ 662:88e23f8c2354

Applied downs' latest Phobos patch
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 06 Oct 2008 21:40:33 +0200
parents 526385b6d1fd
children 6aaa3d3c1183
line wrap: on
line diff
--- a/lphobos/build.sh	Mon Oct 06 21:27:29 2008 +0200
+++ b/lphobos/build.sh	Mon Oct 06 21:40:33 2008 +0200
@@ -5,8 +5,8 @@
 rm -f obj/*.bc
 rm -f ../lib/*.bc
 
-LLVMDCFLAGS="-c -odobj -oq -gc -noasm"
-LLVMDCFLAGS_ASM="-c -odobj -oq -gc"
+LLVMDCFLAGS_ASM="-c -oq -release"
+LLVMDCFLAGS="$LLVMDCFLAGS_ASM -noasm"
 
 echo "compiling contract runtime"
 llvmdc internal/contract.d -c -of../lib/llvmdcore.bc || exit 1 #-noruntime || exit 1
@@ -16,8 +16,10 @@
         internal/mem.d \
         internal/critical.d \
         internal/dmain2.d \
+        internal/inv.d \
         $LLVMDCFLAGS_ASM || exit 1
 mv *.bc obj
+llvm-link -f -o=../lib/llvmdcore.bc obj/internal.*.bc ../lib/llvmdcore.bc
 
 echo "compiling typeinfo 1"
 ./llvmdc-build typeinfos1.d $LLVMDCFLAGS || exit 1
@@ -47,24 +49,26 @@
 llvm-link -f -o=../lib/llvmdcore.bc obj/aApply.bc obj/aApplyR.bc obj/switch.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling array runtime support"
-llvmdc internal/qsort2.d $LLVMDCFLAGS || exit 1
-mv *.bc obj
-llvm-link -f -o=../lib/llvmdcore.bc obj/qsort2.bc ../lib/llvmdcore.bc || exit 1
-llvmdc internal/adi.d $LLVMDCFLAGS || exit 1
+llvmdc internal/qsort2.d internal/adi.d internal/aaA.d $LLVMDCFLAGS || exit 1
 mv *.bc obj
-llvm-link -f -o=../lib/llvmdcore.bc obj/adi.bc ../lib/llvmdcore.bc || exit 1
-llvmdc internal/aaA.d $LLVMDCFLAGS || exit 1
-mv *.bc obj
-llvm-link -f -o=../lib/llvmdcore.bc obj/aaA.bc ../lib/llvmdcore.bc || exit 1
+llvm-link -f -o=../lib/llvmdcore.bc obj/qsort2.bc obj/adi.bc obj/aaA.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling object implementation"
-llvmdc internal/objectimpl.d -c -odobj -g || exit 1
+llvmdc internal/objectimpl.d $LLVMDCFLAGS || exit 1
+mv object.bc objectimpl.bc
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/objectimpl.bc ../lib/llvmdcore.bc || exit 1
 
+echo "compiling crc32"
+llvmdc crc32.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
+llvm-link -f -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc obj/crc32.bc || exit 1
+
 echo "compiling llvm runtime support"
-./llvmdc-build llvmsupport.d $LLVMDCFLAGS || exit 1
+# ./llvmdc-build llvmsupport.d $LLVMDCFLAGS || exit 1
+llvmdc llvmsupport.d -oq -c || exit 1
 mv *.bc obj
-llvm-link -f -o=../lib/llvmdcore.bc `ls obj/llvm.*.bc` ../lib/llvmdcore.bc || exit 1
+llvm-link -f -o=../lib/llvmdcore.bc `ls obj/llvm*.bc` ../lib/llvmdcore.bc || exit 1
 
 echo "compiling garbage collector"
 cd gc
@@ -72,17 +76,22 @@
 # llvmdc gclinux.d $LLVMDCFLAGS -I.. || exit 1
 # llvmdc gcx.d $LLVMDCFLAGS -I.. || exit 1
 # llvmdc gcbits.d $LLVMDCFLAGS -I.. || exit 1
-# llvmdc gc.d $LLVMDCFLAGS -I.. || exit 1
-mv std.gc.bc gc.bc
+# llvmdc gc.d -oq -c -I.. || exit 1
+mv std.gc.bc std_gc.bc
 mv *.bc ../obj
+# mv -v obj/*.bc ../obj 
 cd ..
-llvm-link -f -o=../lib/llvmdcore.bc obj/gclinux.bc obj/gcx.bc obj/gcbits.bc obj/gc.bc ../lib/llvmdcore.bc || exit 1
+llvm-link -f -o=../lib/llvmdcore.bc obj/gclinux.bc obj/gcx.bc obj/gcbits.bc obj/std_gc.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling phobos"
 ./llvmdc-build phobos.d $LLVMDCFLAGS || exit 1
 mv *.bc obj
 echo "linking phobos"
-llvm-link -f -o=../lib/llvmdcore.bc `ls obj/std.*.bc` ../lib/llvmdcore.bc || exit 1
+# llvm-link -f -o=../lib/llvmdcore.bc `ls obj/std.*.bc` ../lib/llvmdcore.bc || exit 1
+for i in $(ls obj/std.*.bc); do
+	echo $i
+	llvm-link -f -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc $i || exit 1
+done
 
 echo "Compiling auxiliary"
 ./llvmdc-build etc/c/zlib.d $LLVMDCFLAGS || exit 1
@@ -90,7 +99,6 @@
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/etc.*.bc` ../lib/llvmdcore.bc || exit 1
 
 echo "optimizing"
-opt -stats -p -f -std-compile-opts -disable-inlining -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1
-
+opt -stats -p -f -std-compile-opts -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1
 
 echo "SUCCESS"