[Buildroot] [PATCH] Add target-clean makefile target

Angelo Compagnucci angelo.compagnucci at gmail.com
Wed Jul 16 07:47:01 UTC 2014

Hi Thomas,

2014-07-15 23:33 GMT+02:00 Thomas Petazzoni
<thomas.petazzoni at free-electrons.com>:
> 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.
> Scenario:
>   1/ make menuconfig
>   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.

Good catch, but this could be documented somewhere. I think that is
better to explain buildroot's users that they have to rebuild a
package when they mess it's dependencies instead of all the whole
rootfs! Compilation of a rootfs can take hours ...
Yes, I know, probably removing Openssl screws up a hundred of packages
and it's not practical to rebuild one by one, but I think this is a
corner case more than the rule.

And in the end, if their rootfs is not working, they can obviously
rely on the good old cleaning way.

Sincerly, Angelo.

> Best regards,
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com

Profile: http://it.linkedin.com/in/compagnucciangelo

More information about the buildroot mailing list