On Sat, 16 Dec 2000, Linus Torvalds wrote:
>
> So "ip_nf_compat-objs" should really just be
>
> ip_nf_compat-objs := ip_fw_compat.o ip_fw_compat_redir.o ip_fw_compat_masq.o
>
> which looks much saner at least for the built-in case (ie no duplicate
> object files in the multi-lists, and the multi-lists have sane entries).
This makes it work when compiled into the kernel.
However, it also makes it fail spectacularly when modular, because it
appears that what the Makefile tried to do was to have some group of
object-files be a library that is compiled into all the modules, and the
above change will basically remove it from the "ip_nf_compat" module -
making that module not see the routines it wants to see.
There are two solutions for this:
- the DRM "true library" solution, as shown by drivers/char/drm/Makefile.
This is closest to what the code tried to do before, and might be the
right solution for the "ip_nf_compat" module. However, it does result
in the same code being duplicated in multiple modules. Not very nice.
- export more symbols (and mark the object files that export them as
"export-objs"), so that they are visible across module boundaries.
This is probably worth doing for at least the symbols
register_firewall(), ip_fw_masq_timeouts() and
unregister_firewall()
so that "ipchains" and "ipfwadm" could just cleanly be separate modules
on top of the "ip_fw_compat" module.
Anyway, these kinds of things are really up to the netfilter people.
Rusty? Help me out, and I won't ever call "netfilter" a heap of stinking
dung again. Do we have a deal?
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/