Disabling CONFIG_INET makes 2.4.16 fail at compile due to
include/net/tcp_ecn.h using macros INET_ECN_xmit and
INET_ECN_xmit. They try to access the af_inet member of a
union
#define INET_ECN_xmit(sk) do { (sk)->protinfo.af_inet.tos |= 2; } while (0)
#define INET_ECN_dontxmit(sk) do { (sk)->protinfo.af_inet.tos &= ~3; } while (0)
but without CONFIG_INET, the union has no af_inet field.
Here's a patch that disables the whole header if CONFIG_INET
is not set. You may prefer some other approach; please just fix
the symptoms :)
--- linux-2.4.16.orig/include/net/tcp_ecn.h Sat Nov 3 03:43:26 2001
+++ linux-2.4.16/include/net/tcp_ecn.h Tue Dec 4 21:54:34 2001
@@ -1,6 +1,8 @@
#ifndef _NET_TCP_ECN_H_
#define _NET_TCP_ECN_H_ 1
+#ifdef CONFIG_INET
+
#include <net/inet_ecn.h>
#define TCP_HP_BITS (~(TCP_RESERVED_BITS|TCP_FLAG_PSH))
@@ -128,5 +130,7 @@
if (sysctl_tcp_ecn && th->ece && th->cwr)
req->ecn_ok = 1;
}
+
+#endif
#endif
And just to be sure, here's a minimal config that triggers the
failure. Everything else is unset.
CONFIG_X86=y
CONFIG_ISA=y
CONFIG_UID16=y
CONFIG_M386=y
CONFIG_X86_L1_CACHE_SHIFT=4
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_NOHIGHMEM=y
CONFIG_NET=y
CONFIG_BINFMT_ELF=y
CONFIG_MSDOS_PARTITION=y
--
tv@{{hq.yok.utu,havoc,gaeshido}.fi,{debian,wanderer}.org,stonesoft.com}
double a,b=4,c;main(){for(;++a<2e6;c-=(b=-b)/a++);printf("%f\n",c);}
|