https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264094

--- Comment #21 from Mark Johnston <ma...@freebsd.org> ---
(In reply to Jessica Clarke from comment #20)
Oh, right.  So kmod_syms.awk is defeating the hack in VNET_DEFINE_STATIC.  That
can be bandaged easily enough.

I tried implementing your suggestion of adding an explicit offset with each
VNET definition.  It's a bit painful due to consumers doing things like:

VNET_DEFINE(LIST_HEAD(, foo), n) = LIST_HEAD_INITIALIZER();

I don't think it's possible to implement VNET_DEFINE this way without either
outlawing static initializers (or making them an argument to the macro itself
instead of using assignment), or outlawing anonymous types, i.e., the above
would have to be:

LIST_HEAD(foo_list, foo);
VNET_DEFINE(struct foo_list, n) = LIST_HEAD_INITIALIZER();

I would go with the second option, but it does require a bunch of consumers to
be patched.

I haven't yet compared the generated code with what we had before.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to