I think this is a good idea. I would advocate to not use Make for these since it sort of falls over, or gets very complicated, when trying to build the same source for multiple target architectures simultaneously. I have CLs which convert the m5 utility's build over to scons which I think worked out well, and with some thought could be regularized and hopefully made easy to stamp out for different test, etc, sources. Of course, as long as we don't say though shalt use make, it doesn't really matter in the short term since that's relatively easy to change in the future.
Gabe On Mon, Apr 13, 2020 at 11:58 AM Bobby Bruce <bbr...@ucdavis.edu> wrote: > Dear all, > > As part of the gem5 20 release, we want to improve the way we handle the > gem5 resources. What I mean by resources are things such as test programs, > images, kernels, etc; stuff that we don't strictly need to compile or run > gem5, but we frequently use (and/or may be difficult to distribute as part > of gem5 due to licencing conflicts). At present, some of these are > currently committed within the gem5 repository, and some are pulled from > our Google Cloud bucket as needed (there may be others outside of this of > which I am not aware of). > > The problem at present is: > A) The resources are not available in some common way across the project. > B) The resources change over time and this change is not well recorded, > particularly in the case of compiled binaries. The source of these binaries > needs to be provided and changes to them properly logged. > C) Similar to B), resources do not map to versions. A resource can change > in our cloud bucket over time, which may break certain activities if needed > by a previous version of gem5. > > The proposal is to add another repository alongside gem5 and gem5-website > on googlesource. This repository will contain the resources' sources, which > can be compiled to produce the resources used by the project. I've started > producing this here: https://github.com/gem5/gem5-resources. Please have a > look and consult the README.md for an explanation on how this repository > would work. > > The compiled products of this repo would be uploaded to our dist.gem5.org > bucket. If someone wanted to alter or add a resource to gem5, they'd do so > in this repo (via Gerrit). The gem5-resource directory would adopt the same > versioning and master/develop branch split system as gem5 currently does. > So, as gem5 v20.0.0.0 is released, so would gem5-resources v20.0.0.0. > Version X of gem5 would always be assumed to work with version X of > gem5-resources. The dist.gem5.org bucket would be kept up to date. > dist.gem5.org/dist/current would track changes made to the gem5-resources > develop branch with dist.gem5.org/dist/${VERSION} > <http://dist.gem5.org/dist/$%7BVERSION%7D> containing the resources > for the ${VERSION} release. > > A few notes: > - gem5 19 contains tests that pull from dist.gem5.org/dist/current. I > believe I'll need to apply a hotfix to this release to pull from > dist.gem5.org/dist/v19-0-0-1 instead. > - Right now there is a lot of stuff on dist.gem5.org/dist/current which I > do not have sources for. I may need to ask around. This may be a bit of > work. > > I'd appreciate feedback on this, if anyone has any, before I proceed > further with this plan. > > Kind regards, > Bobby > -- > Dr. Bobby R. Bruce > Room 2235, > Kemper Hall, UC Davis > Davis, > CA, 95616 > > web: https://www.bobbybruce.net > _______________________________________________ > gem5-dev mailing list > gem5-dev@gem5.org > http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev