Message ID | 20130521220709.GA26328@redhat.com |
---|---|
State | New |
Headers | show |
Am 22.05.2013 00:07, schrieb Michael S. Tsirkin: > Once in a while make gets killed and doesn't > clean up partial object files after it. > Result is nasty errors from link. > This hack checks object is well formed before linking, > and rebuilds it if not. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > > v1 actually prints some noise on stderr, this shuts it up. > > Makefile.target | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/Makefile.target b/Makefile.target > index ce4391f..c506d4c 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -191,3 +191,10 @@ endif > > GENERATED_HEADERS += config-target.h > Makefile: $(GENERATED_HEADERS) > + > +.SECONDEXPANSION: > + > +.PHONY: CORRUPTBINARY > + > +$(all-obj-y): % : $$(if $$(shell size % 2>/dev/null), , CORRUPTBINARY) > + This modification adds build complexity and execution time for each build, just to fix a potential problem which is very rare. I personally prefer the current solution (remove bad object files manually). I did not test the patch, but won't cross builds be caught in an endless loop when the native size command does not know the cross object format? Regards, Stefan
On Wed, May 22, 2013 at 08:32:52AM +0200, Stefan Weil wrote: > Am 22.05.2013 00:07, schrieb Michael S. Tsirkin: > > Once in a while make gets killed and doesn't > > clean up partial object files after it. > > Result is nasty errors from link. > > This hack checks object is well formed before linking, > > and rebuilds it if not. > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > --- > > > > v1 actually prints some noise on stderr, this shuts it up. > > > > Makefile.target | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/Makefile.target b/Makefile.target > > index ce4391f..c506d4c 100644 > > --- a/Makefile.target > > +++ b/Makefile.target > > @@ -191,3 +191,10 @@ endif > > > > GENERATED_HEADERS += config-target.h > > Makefile: $(GENERATED_HEADERS) > > + > > +.SECONDEXPANSION: > > + > > +.PHONY: CORRUPTBINARY > > + > > +$(all-obj-y): % : $$(if $$(shell size % 2>/dev/null), , CORRUPTBINARY) > > + > > > This modification adds build complexity and execution time for > each build, just to fix a potential problem which is very rare. > > I personally prefer the current solution (remove bad object files > manually). One way would be to make this optional. > I did not test the patch, but won't cross builds be caught in an > endless loop when the native size command does not know the > cross object format? > > Regards, > Stefan True, I'll fix this up.
diff --git a/Makefile.target b/Makefile.target index ce4391f..c506d4c 100644 --- a/Makefile.target +++ b/Makefile.target @@ -191,3 +191,10 @@ endif GENERATED_HEADERS += config-target.h Makefile: $(GENERATED_HEADERS) + +.SECONDEXPANSION: + +.PHONY: CORRUPTBINARY + +$(all-obj-y): % : $$(if $$(shell size % 2>/dev/null), , CORRUPTBINARY) +
Once in a while make gets killed and doesn't clean up partial object files after it. Result is nasty errors from link. This hack checks object is well formed before linking, and rebuilds it if not. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- v1 actually prints some noise on stderr, this shuts it up. Makefile.target | 7 +++++++ 1 file changed, 7 insertions(+)