Re: [PATCH] Bug in 2.0.28/2.1.25 make config/menuconfig/oldconfig

Philippe Strauss (philou@sicel-home-1-4.urbanet.ch)
Mon, 3 Feb 1997 21:07:32 +0100 (MET)


On Mon, 3 Feb 1997, Bernhard Rosenkraenzer wrote:

> Hello,
> there seems to be a problem with the configuration scripts in all recent
> kernel versions. As soon as I try to compile in soundcard support (MAD16),
> I'm asked for the address, IRQ and DMA - but whatever I enter (even if I
> just press return), I'm getting "Sorry, no help available for this
> option".
> I've even tried to modify .config by hand and make oldconfig, with the
> same effort.
>
> Any ideas? Please copy replies to me, because right now, I'm not
> subscribed to the list.
>
> LLaP
> bero
>

I've faced the same problem. You probably recently upgraded to
shellutils-1.16 which are a little more POSIX compliant, hence the
problem. Thanks to Jesse Thilo, who explained me the problem.

> From: Jesse Thilo <Jesse.Thilo@pobox.com>
> The newer shellutils are a bit more POSIX compliant, so they require a
> backslash before the '?' in this context. You also need to put a
> backslash before the '+' in the call to expr in the hex function.
>
> The Menuconfig script needs the same changes.

Here's my patch: (cd /usr/src/linux/script; patch < blurb)

--- Menuconfig.orig Mon Feb 3 21:01:18 1997
+++ Menuconfig Mon Feb 3 21:02:38 1997
@@ -400,7 +400,7 @@
answer="`cat MCdialog.out`"
answer="${answer:-$3}"

- if expr $answer : '0$\|-?[1-9][0-9]*$' >/dev/null
+ if expr $answer : '0$\|-\?[1-9][0-9]*$' >/dev/null
then
eval $2="$answer"
else
@@ -433,7 +433,7 @@
answer="${answer:-$3}"
answer="${answer##*[x,X]}"

- if expr $answer : '[0-9a-fA-F]+$' >/dev/null
+ if expr $answer : '[0-9a-fA-F]\+$' >/dev/null
then
eval $2="$answer"
else
--- Configure.orig Mon Feb 3 21:00:28 1997
+++ Configure Mon Feb 3 21:00:54 1997
@@ -288,7 +288,7 @@
def=${old:-$3}
while :; do
readln "$1 ($2) [$def] " "$def" "$old"
- if expr "$ans" : '0$\|-?[1-9][0-9]*$' > /dev/null; then
+ if expr "$ans" : '0$\|-\?[1-9][0-9]*$' > /dev/null; then
define_int "$2" "$ans"
break
else
@@ -319,7 +319,7 @@
while :; do
readln "$1 ($2) [$def] " "$def" "$old"
ans=${ans#*[x,X]}
- if expr "$ans" : '[0-9a-fA-F]+$' > /dev/null; then
+ if expr "$ans" : '[0-9a-fA-F]\+$' > /dev/null; then
define_hex "$2" "$ans"
break
else

----
Philippe Strauss, ingenieur en telecommunications.

Email: <philippe.strauss@urbanet.ch>
Homepage: http://sicel-home-1-4.urbanet.ch

Help stamp out Mickey-Mouse computer interfaces, menus are for
Restaurants!
----