Re: EXPORT_SYMTAB, or Is "this_object_must_be_defined_as_export_objs_in_the_Makefile" annoying to anyone?

Keith Owens (kaos@ocs.com.au)
Wed, 26 Jun 2002 11:31:14 +1000


On Tue, 25 Jun 2002 19:16:58 -0400 (EDT),
"Calin A. Culianu" <calin@ajvar.org> wrote:
>I am not sure for the reasoning behind it, but it seems that newer 2.4
>kernels require the additional -DEXPORT_SYMTAB be defined for any code one
>wants to build as a module (if that module exports symbols). Needless to
>say this breaks a lot of (non-kernel-tree) modules that would otherwise
>have been compiling without problems.
>
>What is the rationale behind this?

Any code that exports symbols must be compiled with -DEXPORT_SYMTAB.
That flag is used in module symbol version processing to generate the
versioned symbols.

It used to be that omitting -DEXPORT_SYMTAB would only cause an error
when CONFIG_MODVERSIONS=y. Since most developers did not use
modversions, entries were being added to the kernel tree without
correct makefile definitions. To ensure correct definitions in the
makefile for all circumstances, the code was changed to always require
-DEXPORT_SYMTAB for exporting objects, with or without
CONFIG_MODVERSIONS.

Bottom line: if you export symbols you must always define -DEXPORT_SYMTAB.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/