[U-Boot] [PATCH] Makefile: remove symbolic links in tools/

Older versions created symbolic links for e.g. crc32.c. If such link remains in a tree, current Makefiles will use CC instead of HOSTCC to compile it; this results in a linker error. To be safe, let's remove any link from earlier checkouts.
Signed-off-by: Alessandro Rubini rubini@gnudd.com --- Makefile | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile index 327aa8c..f85462c 100644 --- a/Makefile +++ b/Makefile @@ -3778,6 +3778,7 @@ clobber: clean @rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f + @[ ! -d $(obj)tools ] || find $(obj)tools -name "*" -type l -print | xargs rm -f
ifeq ($(OBJTREE),$(SRCTREE)) mrproper \

On Friday 05 February 2010 18:49:37 Alessandro Rubini wrote:
Older versions created symbolic links for e.g. crc32.c. If such link remains in a tree, current Makefiles will use CC instead of HOSTCC to compile it; this results in a linker error. To be safe, let's remove any link from earlier checkouts.
current policy is to run `git clean -x -d` after a `git pull`, but i dont care either way
--- a/Makefile +++ b/Makefile @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)tools ] || find $(obj)tools -name "*" -type l -print | xargs rm -f
not related directly to your patch, but these -name '*' are useless
also, why not just scan the entire tree: @[ ! -d $(obj) ] || find $(obj) -type l -print | xargs rm -f -mike

On 2/5/2010 4:01 PM, Mike Frysinger wrote:
On Friday 05 February 2010 18:49:37 Alessandro Rubini wrote:
Older versions created symbolic links for e.g. crc32.c. If such link remains in a tree, current Makefiles will use CC instead of HOSTCC to compile it; this results in a linker error. To be safe, let's remove any link from earlier checkouts.
current policy is to run `git clean -x -d` after a `git pull`, but i dont care either way
--- a/Makefile +++ b/Makefile @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)tools ] || find $(obj)tools -name "*" -type l -print | xargs rm -f
not related directly to your patch, but these -name '*' are useless
also, why not just scan the entire tree: @[ ! -d $(obj) ] || find $(obj) -type l -print | xargs rm -f -mike
And 'find' had a '-delete' switch. Not sure how long it's been there.
regards, Ben

On Friday 05 February 2010 20:08:38 Ben Warren wrote:
On 2/5/2010 4:01 PM, Mike Frysinger wrote:
On Friday 05 February 2010 18:49:37 Alessandro Rubini wrote:
Older versions created symbolic links for e.g. crc32.c. If such link remains in a tree, current Makefiles will use CC instead of HOSTCC to compile it; this results in a linker error. To be safe, let's remove any link from earlier checkouts.
current policy is to run `git clean -x -d` after a `git pull`, but i dont care either way
--- a/Makefile +++ b/Makefile @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f @[ ! -d $(obj)tools ] || find $(obj)tools -name "*" -type l -print | xargs rm -f
not related directly to your patch, but these -name '*' are useless
also, why not just scan the entire tree: @[ ! -d $(obj) ] || find $(obj) -type l -print | xargs rm -f
And 'find' had a '-delete' switch. Not sure how long it's been there.
i didnt suggest that because it isnt POSIX. it'll break on BSD systems which typically ship with sh*t userland tools. -mike

Mike Frysinger about -delete:
i didnt suggest that because it isnt POSIX. it'll break on BSD systems which typically ship with sh*t userland tools.
Actually, I just copied the above line with "-name *" and stuff because I know there are portability issues I'm not aware of. Actually, Git blame says -name comes from an original "-lname *", that Jean Christophe turned to "-name * -type l" for posix compliance. He has been tricked by the original name-based match.
I proposed the one-liner only because I remember a similar issue being addressed not long ago in the makefiles. But I'm fine with removing all such legacy, either, assuming novices will have a clean tool and git users are able to "git status" or "git clean".
/alessandro

Dear Alessandro Rubini,
In message 20100206080636.GA24726@morgana.gnudd.com you wrote:
Mike Frysinger about -delete:
i didnt suggest that because it isnt POSIX. it'll break on BSD systems which typically ship with sh*t userland tools.
Actually, I just copied the above line with "-name *" and stuff
But "-name *" is really redundant, on all systems I know of.
I proposed the one-liner only because I remember a similar issue being addressed not long ago in the makefiles. But I'm fine with removing all such legacy, either, assuming novices will have a clean tool and git users are able to "git status" or "git clean".
Agreed. Let's drop this change.
Best regards,
Wolfgang Denk
participants (4)
-
Alessandro Rubini
-
Ben Warren
-
Mike Frysinger
-
Wolfgang Denk