Re: [PATCH RFC] [1/9] Core module symbol namespaces code and intro.

From: Stephen Hemminger
Date: Mon Nov 26 2007 - 13:27:10 EST


On Mon, 26 Nov 2007 12:28:14 +1100
Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:

> On Monday 26 November 2007 07:27:03 Roland Dreier wrote:
> > > This patch allows to export symbols only for specific modules by
> > > introducing symbol name spaces. A module name space has a white
> > > list of modules that are allowed to import symbols for it; all others
> > > can't use the symbols.
> > >
> > > It adds two new macros:
> > >
> > > MODULE_NAMESPACE_ALLOW(namespace, module);
> >
> > I definitely like the idea of organizing exported symbols into
> > namespaces. However, I feel like it would make more sense to have
> > something like
> >
> > MODULE_NAMESPACE_IMPORT(namespace);
>
> Except C doesn't have namespaces and this mechanism doesn't create them. So
> this is just complete and utter makework; as I said before, noone's going to
> confuse all those udp_* functions if they're not in the udp namespace.
>
> For better or worse, this is not C++.
>


Agreed. On first glance, I was intrigued but:

1) Why is everyone so concerned that export symbol space is large?
- does it cost cpu or running memory?
- does it cause bugs?
- or are you just worried about "evil modules"?

2) These aren't real namespaces
- all global names still have to be unique
- still have to handle the "non-modular build" namespace conflicts
- there isn't a big problem with conflicting symbols today.

So why bother adding complexity.
--
Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/