Re: test13pre2 - netfilter modiles compile failure

From: Linus Torvalds (torvalds@transmeta.com)
Date: Sat Dec 16 2000 - 03:42:53 EST


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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 23 2000 - 21:00:15 EST