Re: [patch 2.6.23-git] toplevel Makefile/depmod bugfix

From: David Brownell
Date: Sat Oct 20 2007 - 01:53:02 EST


> > - if [ -r System.map -a -x $(DEPMOD) -a "$(SUBARCH)" == "$(ARCH)" ]; then \
> > + if [ -r System.map -a -x $(DEPMOD) -a "$(SUBARCH)" = "$(ARCH)" ]; then \
>
> Took a look at 'man bash' here.
> bash --version
> GNU bash, version 3.2.9(1)-release (x86_64-redhat-linux-gnu)
> Copyright (C) 2005 Free Software Foundation, Inc.
>
> Accoding to man bash "==" is used to test for equality and "=" is used for assignmnet.

"man test" shows that only "=" works ... that's for string equality,
which is what's being tested there. And "==" is undefined (error).

If "==" were to kick in that would be for an arithmetic expression;
but "[" is (modulo wierdness) "test" not "expr".


> I assume the above is a dash syntax error (dash is default on ubuntu IIRC).

My $SHELL is /bin/bash:

$ bash --version
GNU bash, version 3.2.13(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$


> Is it truly protable with "=" or do we need to be more clever?

I don't know how you managed to get it to work wtih "==".
String equality should be "=" in all /bin/sh versions.
It's been that way since it was written in pseudo-Algol.

- Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/