If the kernel is compiled with
CONFIG_IP_MASQUERADE and without
CONFIG_IP_MASQUERADE_MOD, it will fail with errors referring to
'ip_masq_hash' and 'ip_masq_unhash'.
The fix I used is either to configure for both MASQUERADE and
MASQUERADE_MOD, or add these lines near the end of
extern int ip_masq_hash(struct ip_masq *);
extern int ip_masq_unhash(struct ip_masq *);
I believe that this is the same bug as #18706
why does Bugzilla say "Red Hat Linux - 7.07.0"?
*** Bug 18706 has been marked as a duplicate of this bug. ***
*** Bug 20169 has been marked as a duplicate of this bug. ***
Tryed the first solution (both MASQUERADE and MASQUERADE_MOD) did not work...
Ok! Got it right this time. The solution with CONFIG_MASQUERADE=y and
CONFIG_MASQUERADE_MOD=y does work!
Note that to have CONFIG_MASQUERADE_MOD available you must enable experimental
Someone else suggested another solution in google's usenet search site. Here
is the text:
From: email@example.com (firstname.lastname@example.org)
Subject: Re: make: *** [ip_masq.o] Error 1
Date: 2000-12-22 13:20:07 PST
The problem is that the two symbols are defined in ip_masq_mod.h
which is only included if you make IP_MASQUERADING as a module.
Edit the file ./net/ipv4/ip_masq.c and add two lines:
int ip_masq_hash(struct ip_masq *ms);
int ip_masq_unhash(struct ip_masq *ms);
Put these after the #includes but before the EXPORT_SYMBOLs
After I did this, the kernel built and ran fine.