Message ID | 20200429140729.3325-1-cturner@igalia.com |
---|---|
Headers | show |
Series | add support for icecc | expand |
Hi Charlie, Sorry that you didn't get any reaction to this for almost two years. Covid was burning the maintainers out a bit :-( Anyway, here are some answers in case it's still relevant. Also, IceCC support would really be welcome in Buildroot. There are some users that need to build really big configurations so parallel build is welcome. Note of course that you'll have to combine it with top-level parallel build to be fully efficient, otherwise you're quickly going to run into serialisation. On 29/04/2020 16:07, Charlie Turner wrote: > • Host packages are still compiled locally, I would like this to > extend to host builds as well. Could just prepend icecc in the > $PATH on the host. Need to test, potential complication is > switching icecc's toolchain mid-build. Might not be an issue, just > not gone there yet. What we do for ccache is simply use the wrapper for target compile and have it as part of HOSTCC for host builds. There are some packages that don't support CC with spaces, so there's HOSTCC_NOCCACHE for that. You can simply add icecc to HOSTCC (and leave HOSTCC_NOCCACHE without either ccache or icecc). > • Generating the `ICECC_VERSION' tarball from the Makefiles. Ideally > it would all be transparent to the user if, say, > `BR2_ICECC=y'. It's inconvenient for the user to have to call > `--build-native' and arrange for `ICECC_VERSION' to be in the > `make' environment. You need to first build the cross-toolchain, > setup the tarball, and then so long as your toolchain doesn't > change, subsequent rebuilds are distributed. This all needs > automation. Yeah, I think that that's pretty essential. If you want to avoid that complexity and get something merged to start with, you could start with having icecc depend on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED (and the assumption that the toolchain is already installed on all builders). That should simplify things a bit, no? > • Number of jobs to simultaneously run has be manually selected, I > don't know of a method to find out how many remote CPUs you have > available with Icecream automatically. Not a big deal. Ideally it should be possible to do this both from the .config but make it possible to override from the environment, similar like how it's with BR2_DL_DIR. But that's a minor nit. Regards, Arnout