This took less time than I thought. Tada! There's still a lot of work to do, but (modulo bugs) I've consolidated SE and FS into a single binary that can run either.
Gabe gblack@chips ~/m5/repos/gem5.sefs $ scons build/ALPHA/tests/opt/quick build/ALPHA_MOESI_hammer/tests/opt/quick build/ARM/tests/opt/quick build/MIPS/tests/opt/quick build/POWER/tests/opt/quick build/SPARC/tests/opt/quick build/X86/tests/opt/quick scons: Reading SConscript files ... Checking for leading underscore in global variables...(cached) no Checking for C header file Python.h... (cached) yes Checking for C library pthread... (cached) yes Checking for C library dl... (cached) yes Checking for C library util... (cached) yes Checking for C library m... (cached) yes Checking for C library python2.7... (cached) yes Checking for accept(0,0,0) in C++ library None... (cached) yes Checking for zlibVersion() in C++ library z... (cached) yes Checking for clock_nanosleep(0,0,NULL,NULL) in C library None... (cached) no Checking for clock_nanosleep(0,0,NULL,NULL) in C library rt... (cached) yes Checking for C header file fenv.h... (cached) yes Reading SConsopts Building in /home/gblack/m5/repos/gem5.sefs/build/ALPHA Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/ALPHA Building in /home/gblack/m5/repos/gem5.sefs/build/ALPHA_MOESI_hammer Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/ALPHA_MOESI_hammer Building in /home/gblack/m5/repos/gem5.sefs/build/ARM Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/ARM Building in /home/gblack/m5/repos/gem5.sefs/build/MIPS Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/MIPS Building in /home/gblack/m5/repos/gem5.sefs/build/POWER Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/POWER Building in /home/gblack/m5/repos/gem5.sefs/build/SPARC Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/SPARC Building in /home/gblack/m5/repos/gem5.sefs/build/X86 Using saved variables file /home/gblack/m5/repos/gem5.sefs/build/variables/X86 scons: done reading SConscript files. scons: Building targets ... ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic passed. ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual passed. ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing passed. ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual passed. ***** build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/inorder-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/o3-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby passed. ***** build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing passed. ***** build/ALPHA/tests/opt/quick/se/20.eio-short/alpha/eio/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/20.eio-short/alpha/eio/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/30.eio-mp/alpha/eio/simple-atomic-mp passed. ***** build/ALPHA/tests/opt/quick/se/30.eio-mp/alpha/eio/simple-timing-mp passed. ***** build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest passed. ***** build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby passed. ***** build/ALPHA/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-dual passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing-dual passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/o3-timing passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-atomic passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/inorder-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby passed. ***** build/POWER/tests/opt/quick/se/00.hello/power/linux/o3-timing passed. ***** build/POWER/tests/opt/quick/se/00.hello/power/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/inorder-timing passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing-ruby passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/inorder-timing passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/o3-timing passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-timing passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/o3-timing-mp passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-timing-mp passed. ***** build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-atomic passed. ***** build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-timing passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/o3-timing passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-atomic passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing-ruby passed. scons: done building targets. On 11/18/11 11:02, Ali Saidi wrote: > I'll be amazingly busy for the next couple of weeks. > > Ali > > On Fri, 18 Nov 2011 02:42:44 -0800, Gabe Black <[email protected]> > wrote: >> Hi folks. I have all of the preprocessor FULL_SYSTEMs replaced with C++ >> constant FullSystems (except the one where FULL_SYSTEM is assigned to >> FullSystem) and have passed all the quick regressions. I just started a >> run of all the regressions, and expect it will take a day to run at >> minimum. I'll then turn all the patches I have into commits, push them >> into my SE/FS repo, and pull in the dev repo and merge. The merge commit >> will go in the SE/FS repo. At this point, SE and FS could theoretically >> be run from the same binary if FullSystem was changed from a constant to >> a variable/parameter, but since it isn't they can't. The scripts would >> also have to be updated significantly for that to happen. Because all >> functions, classes, and member variables are available in SE and FS mode >> but not all will do something sensible/work/not segfault in both modes, >> there are a few more possibilities to shoot yourself in the foot in my >> repository. >> >> Does this seem like a good point to get feedback and fold things into >> the main repository? My next step(s) will probably involve making >> FullSystem a global variable (or function?) set with a parameter and >> make the scripts set it, but not to go all the way and get rid of >> separate builds for SE and FS even though they'll be the same thing. >> There are going to be details like the regressions/regression scripts >> which will need to be updated first, and probably the mode will need to >> be worked into the quick/long/opt/fast/debug path scheme. The next good >> spot will likely be in there somewhere. >> >> If this is a bad time for logistical reasons (looming conference >> deadline, other large change nearly ready, etc) I can hold off for a >> little while but still use this as a merge point. >> >> Gabe >> _______________________________________________ >> gem5-dev mailing list >> [email protected] >> http://m5sim.org/mailman/listinfo/gem5-dev > > _______________________________________________ > gem5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
