- # 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
- clean_RPATH $llvmCore_de_phase2_installdir
-
- ########################################################################
- # Phase 3: Build llvmCore with newly built dragonegg 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
- clean_RPATH $llvmCore_de_phase3_installdir
-
- ########################################################################
- # 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'` \
- `find $dragonegg_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
-