[Buildroot] [PATCH v3 1/1] Makefile: add target to clean targetfs

Andreas Naumann dev at andin.de
Mon Apr 27 08:28:51 UTC 2015



Am 27.04.2015 um 02:45 schrieb Emeric Vigier:
> If you had some files added to the targetfs (fs-overlay, new packages,
> ...) and you no longer need them, buildroot does not offer a simple way
> to remove these items from the output/target directory. The rule added
> by this commit allows you to clean the targetfs. Issuing 'make'
> afterward will generate a new and clean targetfs.
>
> A section in the documentation is also added. It describes few examples
> when developers could need it. 'make help' is also updated accordingly.
> And full-rebuild section of the documentation is updated with content
> and links.
>

Hi Emeric,

this is very helpful, in fact i have a similar patch running for quite 
some time where I remove target/ and images/ and the corresponding 
stamps. There are some problems though and I want to share my findings 
with you.
To begin with i was not 100% sure if the recreated target is the same as 
after a clean build. So I wrote a small check script which compares the 
original with the re-installed target trees. Here's the comparison i do:

   rsync -rvncl --delete --exclude '*.pyc' --exclude '*.pyo' --exclude 
'tmp/ldconfig/aux-cache' output/target/ target.orig/

As you see it already has some files excluded that are always recreated 
differently.
In addition I need to delete .stamp_host_installed from host-gcc-final* 
to force reinstall of libstdc++ into target (using external linaro 
toolchain).

Another problem that showed up was that some of the package install 
steps dont seem separated very well. E.g. qt5 examples copies everything 
from a certain staging-dir/* to target/..
A later qt5 module also creates files in that staging-dir, so next round 
there's more files in target.

I realize this is due to my way of not deleteing the staging dir any 
longer - I used to in the beginning. If I recall correctly this is 
because I noticed some packages copy files into staging/ during compile 
and these files are then missing after a reinstall. I'm not entirely 
sure though.

So my question is, in your approach, are you certain the re-installed 
staging/ is the same as the original for all packages? Maybe you can run 
some comparison like my rsync line for staging as well.


regards,
Andreas



More information about the buildroot mailing list