compiling ppp-2.2.0f with linux-pre2.0.1{01}

Tony Nugent (tonyn@sctnugen.ppp.gu.edu.au)
Tue, 4 Jun 1996 12:22:01 +1000


There was a recent thread about how pre2.0.10 wouldn't allow
ppp-2.2.0f to compile. It seems to me that this is a problem with the
headers in that kernel.

linux-pre2.0.11 hasn't fixed it, although the error is different:

[/usr/src/ppp-2.2.0f]% mv pppd/sys-linux.c pppd/sys-linux.c-patched
[/usr/src/ppp-2.2.0f]% mv pppd/sys-linux.c.orig pppd/sys-linux.c
[/usr/src/ppp-2.2.0f]% make
make[1]: Entering directory `/usr/src/ppp-2.2.0f/pppd'
cc -O2 -D_linux_=1 -DHAVE_PATHS_H -c sys-linux.c -o sys-linux.o
In file included from /usr/include/linux/netdevice.h:31,
from /usr/include/net/if_arp.h:1,
from sys-linux.c:76:
/usr/include/linux/interrupt.h:9: warning: `struct pt_regs' declared inside parameter list
/usr/include/linux/interrupt.h:9: warning: its scope is only this definition or declaration,
/usr/include/linux/interrupt.h:9: warning: which is probably not what you want.
/usr/include/linux/interrupt.h:24: syntax error before `void'
make[1]: *** [sys-linux.o] Error 1
make[1]: Leaving directory `/usr/src/ppp-2.2.0f/pppd'
make: *** [all] Error 2
[/usr/src/ppp-2.2.0f]% sed -n 9p /usr/include/linux/interrupt.h
void (*handler)(int, void *, struct pt_regs *);
[/usr/src/ppp-2.2.0f]% sed -n 24p /usr/include/linux/interrupt.h
asmlinkage void do_bottom_half(void);

Adding this line to ppp-2.2.0f/pppd/sys-linux.c seems to fix the
problem (like it did with 1.99.10):

#include <linux/sched.h>

Interestingly, adding the SAME line to linux-1.99.11/include/linux/interrupt.h
instead, ALSO works!

Question is... what is the _real_ fix?

Cheers
Tony