[U-Boot-Users] [PATCH] [BUILD] Remove libraries when updating autoconf.mk
Grant Likely
grant.likely at secretlab.ca
Wed Nov 21 17:24:55 CET 2007
From: Grant Likely <grant.likely at secretlab.ca>
Fix library problems caused by conditional compilation. Using
autoconf.mk to decide which files to compile has caused a problem when
changing configuration from one board to another without clearing out
the library (*.a) files.
It used to be that the linker was always passed the same list of .o
files when building the .a files. However, that is not longer true
with conditional compilation. Now, a different board config will have
a different file list passed to the linker. The problem occurs when
a library has already been built and the board config is changed.
Since the linker will update instead of replace a preexisting library,
then if the file list changes to remove some object files the old
objects will still exist in the library.
The solution is to remove all old library files when autoconf.mk is
made.
Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
---
Makefile | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 407b938..d94d158 100644
--- a/Makefile
+++ b/Makefile
@@ -354,6 +354,8 @@ $(OBJTREE)/include/autoconf.mk: $(obj)include/config.h
@$(CC) -M $(HOST_CFLAGS) $(CPPFLAGS) -MQ $@ include/common.h > $@.dep
@# Extract the config macros
@$(CPP) $(CFLAGS) -dM include/common.h | sed -n -f tools/scripts/define2mk.sed >> $@
+ @# Remove the old libraries because the file list may have changed
+ @find $(OBJTREE) -type f -name '*.a' -print | xargs rm
sinclude $(OBJTREE)/include/autoconf.mk.dep
More information about the U-Boot
mailing list