Hi Gabe, Thanks for writing this up. The first part of your document is the best documentation on the current build system I've seen to date! We should convert it to markdown and put it up on the website!
Overall, I really like the direction you're going here. I strongly agree with the problems of the current build system that you enumerate. I also strongly back the "there is one way to do it" idea from your solution. I have a couple of small concerns: 1. I believe we should be able to use flat text files for configuring and not require something as complex as kconfig. The option of kconfig is OK, but flat text files give us the ability to offer defaults to users. 2. One requirement that wasn't listed is to make the common case easy. We should allow users to build gem5 just as easily as they do today (i.e., with a single simple command). 3. Backwards compatibility is important. There's a huge amount of documentation written about gem5 all over the internet (e.g., on class webpages for assignments), and we can't update all of it overnight. Keeping at least a symlink to build/X86/gem5.opt, etc. will be important for our many users. It may be feasible to do this in steps. E.g., we could update the files in build_opts to *require* all sticky variables and we could make all variables either sticky or environment variables. Similarly, we could remove the common build directory. These things would solve some of the problems you enumerate without breaking compatibility. It's definitely low-hanging fruit. Cheers, Jason On Wed, Jan 26, 2022 at 6:45 PM Gabe Black via gem5-dev <gem5-dev@gem5.org> wrote: > Hi folks. I have a design document here: > > > https://docs.google.com/document/d/11KspjOClPzGRqLUgNTfKQPrrkmsqx-2ulC71nZUJ2qA/edit?usp=sharing > > which describes my proposal to overhaul how gem5 builds are configured. > Please take a look and provide feedback. > > Important points to note are (optionally but recommended) collapsing the > global vs. variant separation in the build directory, and using a kconfig > like system for enabling/disabling/configuring features, individual models, > mixtures of ISAs, etc. Also setting up a build directory with a new config > would be a separate step instead of being implied by the build path. All > the details are in the doc, PTAL. > > Gabe > _______________________________________________ > gem5-dev mailing list -- gem5-dev@gem5.org > To unsubscribe send an email to gem5-dev-le...@gem5.org > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________ gem5-dev mailing list -- gem5-dev@gem5.org To unsubscribe send an email to gem5-dev-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s