Make the documentation match reality a bit better; add -g to the
i386 CFLAGS (strip DTRT on i386.)
diff --git a/ipconfig/README b/ipconfig/README
index 55b265f..46c03fa 100644
--- a/ipconfig/README
+++ b/ipconfig/README
@@ -30,16 +30,48 @@
An interface spec can be either short form, which is just the name of
an interface (eth0 or whatever), or long form. The long form consists
-of up to six elements, separated by colons:
+of up to seven elements, separated by colons:
-addr:server:gateway:netmask:interface:proto
+<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
-addr the local IP address
-server the server's IP address (doubles as DNS server)
-gateway default gateway
-netmask netmask
-interface name of the interface (empty string is synonym for "all")
-proto the autoconfig protocol to use, as outlined above
+ <client-ip> IP address of the client. If empty, the address will
+ either be determined by RARP/BOOTP/DHCP. What protocol
+ is used de- pends on the <autoconf> parameter. If this
+ parameter is not empty, autoconf will be used.
+
+ <server-ip> IP address of the NFS server. If RARP is used to
+ determine the client address and this parameter is NOT
+ empty only replies from the specified server are
+ accepted. To use different RARP and NFS server,
+ specify your RARP server here (or leave it blank), and
+ specify your NFS server in the `nfsroot' parameter
+ (see above). If this entry is blank the address of the
+ server is used which answered the RARP/BOOTP/DHCP
+ request.
+
+ <gw-ip> IP address of a gateway if the server is on a different
+ subnet. If this entry is empty no gateway is used and the
+ server is assumed to be on the local network, unless a
+ value has been received by BOOTP/DHCP.
+
+ <netmask> Netmask for local network interface. If this is empty,
+ the netmask is derived from the client IP address assuming
+ classful addressing, unless overridden in BOOTP/DHCP reply.
+
+ <hostname> Name of the client. If empty, the client IP address is
+ used in ASCII notation, or the value received by
+ BOOTP/DHCP.
+
+ <device> Name of network device to use. If this is empty, all
+ devices are used for RARP/BOOTP/DHCP requests, and the
+ first one we receive a reply on is configured. If you
+ have only one device, you can safely leave this blank.
+
+ <autoconf> Method to use for autoconfiguration. If this is either
+ 'rarp', 'bootp', or 'dhcp' the specified protocol is
+ used. If the value is 'both', 'all' or empty, all
+ protocols are used. 'off', 'static' or 'none' means
+ no autoconfiguration.
IP addresses and netmasks must be either absent (defaulting to zero)
or presented in dotted-quad notation.
@@ -52,13 +84,13 @@
Here are a few examples of valid ipconfig command lines.
Enable the loopback interface:
- ipconfig 127.0.0.1::::lo:none
+ ipconfig 127.0.0.1:::::lo:none
Try to configure eth0 using bootp for up to 30 seconds:
ipconfig -t 30 -c bootp eth0
Configure eth0 and eth1 using dhcp or bootp, and eth2 statically:
- ipconfig -c any eth0 eth1 192.168.1.1::::eth2:none
+ ipconfig -c any eth0 eth1 192.168.1.1:::::eth2:none
--
diff --git a/ipconfig/main.c b/ipconfig/main.c
index 57fb874..f4f0a7f 100644
--- a/ipconfig/main.c
+++ b/ipconfig/main.c
@@ -412,7 +412,7 @@
{
unsigned int caps = 0;
- if (*ip == '\0' || strcmp(ip, "on") == 0 || strcmp(ip, "any") == 0)
+ if (*ip == '\0' || strcmp(ip, "on") == 0 || strcmp(ip, "any") == 0 || strcmp(ip, "both") == 0)
caps = CAP_BOOTP | CAP_DHCP | CAP_RARP;
else if (strcmp(ip, "dhcp") == 0)
caps = CAP_BOOTP | CAP_DHCP;
@@ -420,7 +420,7 @@
caps = CAP_BOOTP;
else if (strcmp(ip, "rarp") == 0)
caps = CAP_RARP;
- else if (strcmp(ip, "none") == 0 || strcmp(ip, "static") == 0)
+ else if (strcmp(ip, "none") == 0 || strcmp(ip, "static") == 0 || strcmp(ip, "off") == 0)
goto bail;
else {
fprintf(stderr, "%s: invalid protocol '%s'\n",
diff --git a/klibc/arch/i386/MCONFIG b/klibc/arch/i386/MCONFIG
index ba1ae9c..2421452 100644
--- a/klibc/arch/i386/MCONFIG
+++ b/klibc/arch/i386/MCONFIG
@@ -13,7 +13,7 @@
gcc_major := $(shell echo __GNUC__ | $(CC) -E -xc - | tail -n 1)
-OPTFLAGS = $(REGPARM) -march=i386 -Os
+OPTFLAGS = $(REGPARM) -march=i386 -Os -g
ifeq ($(gcc_major),3)
REGPARM := $(REGPARM_OPT)