+ # Test dragonegg
+ if [ "$do_dragonegg" = "yes" ]; then
+ # Build dragonegg using the targeted gcc. This isn't necessary, but
+ # helps avoid using broken versions of gcc (which are legion), tests
+ # that the targeted gcc is basically sane and is consistent with the
+ # later phases in which the targeted gcc + dragonegg are used.
+ c_compiler="$gcc_compiler"
+ cxx_compiler="$gxx_compiler"
+ build_dragonegg 1 $Flavor $llvmCore_phase1_installdir $dragonegg_phase1_objdir
+
+ ############################################################################
+ # Phase 2: Build llvmCore with newly built dragonegg from phase 1.
+ c_compiler="$gcc_compiler -fplugin=$dragonegg_phase1_objdir/dragonegg.so"
+ cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase1_objdir/dragonegg.so"
+ echo "# Phase 2: Building llvmCore with dragonegg"
+ configure_llvmCore 2 $Flavor \
+ $llvmCore_de_phase2_objdir $llvmCore_de_phase2_installdir
+ build_llvmCore 2 $Flavor \
+ $llvmCore_de_phase2_objdir
+ build_dragonegg 2 $Flavor $llvmCore_de_phase2_installdir $dragonegg_phase2_objdir
+
+ ############################################################################
+ # Phase 3: Build llvmCore with newly built clang from phase 2.
+ c_compiler="$gcc_compiler -fplugin=$dragonegg_phase2_objdir/dragonegg.so"
+ cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase2_objdir/dragonegg.so"
+ echo "# Phase 3: Building llvmCore with dragonegg"
+ configure_llvmCore 3 $Flavor \
+ $llvmCore_de_phase3_objdir $llvmCore_de_phase3_installdir
+ build_llvmCore 3 $Flavor \
+ $llvmCore_de_phase3_objdir
+ build_dragonegg 3 $Flavor $llvmCore_de_phase3_installdir $dragonegg_phase3_objdir
+
+ ############################################################################
+ # Testing: Test phase 3
+ c_compiler="$gcc_compiler -fplugin=$dragonegg_phase3_objdir/dragonegg.so"
+ cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase3_objdir/dragonegg.so"
+ echo "# Testing - built with dragonegg"
+ test_llvmCore 3 $Flavor $llvmCore_de_phase3_objdir
+
+ ############################################################################
+ # Compare .o files between Phase2 and Phase3 and report which ones differ.
+ echo
+ echo "# Comparing Phase 2 and Phase 3 files"
+ for o in `find $llvmCore_de_phase2_objdir -name '*.o'` ; do
+ p3=`echo $o | sed -e 's,Phase2,Phase3,'`
+ if ! cmp --ignore-initial=16 $o $p3 > /dev/null 2>&1 ; then
+ echo "file `basename $o` differs between dragonegg phase 2 and phase 3"
+ fi
+ done
+ fi