[Buildroot] [PATCH] Add target-clean makefile target
thomas.petazzoni at free-electrons.com
Tue Jul 15 21:33:20 UTC 2014
Dear Angelo Compagnucci,
On Tue, 15 Jul 2014 23:07:30 +0200, Angelo Compagnucci wrote:
> > Thanks for this patch. However, until now, we've always rejected
> > similar patches, because they are potentially dangerous for users.
> > Users might be lead to think that they can do some changes in
> > "menuconfig", then do "make target-clean all" and get the updated
> > rootfs without rebuilding everything. This is obviously completely
> > wrong if the configuration of some packages is changed, if some
> > libraries are added/removed from the build, etc.
> I think it hurts so much to buildroot not having a clean way to
> rebuild the rootfs after a changing.
There is a clean way:
make clean all
That's the only way that is 100% guaranteed to give the correct result.
Any other solution requires the user to have some deep understanding of
what (s)he is doing.
> If this patch it's naive, probably a corrected procedure should be
> documented somewhere.
> Instead I think this patch is very useful (I use it everyday!), the
> caveats should be documented in a proper place in the manual. Honestly
> I haven't found a case in which cleaning and rebuilding rootfs this
> way crashed my rootfs, but I admit that I'm not so confident with
> buildroot internals.
1/ make menuconfig
2/ Enable BR2_PACKAGE_GIT and BR2_PACKAGE_OPENSSL
3/ Run make, use your rootfs, you're happy
4/ make menuconfig
5/ Disable BR2_PACKAGE_OPENSSL
6/ Since you don't want to rebuild everything, you just run your new
"make target-clean" thing.
7/ Run your rootfs, and now Git fails to work, because it is linked
against OpenSSL, but OpenSSL isn't installed in the rootfs.
(7) is due to the fact that Git was not rebuilt, so it still believes
that OpenSSL support is available. The scenario above is fairly simple,
but there are many, many more similar but more subtle scenarios to
screw things up.
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
More information about the buildroot