doc: module: DEFAULT_SYMBOL_NAMESPACE must be defined before #includes
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Mon, 30 Dec 2024 14:24:00 +0000 (15:24 +0100)
committerJonathan Corbet <corbet@lwn.net>
Thu, 9 Jan 2025 19:36:55 +0000 (12:36 -0700)
The definition of EXPORT_SYMBOL et al depends on
DEFAULT_SYMBOL_NAMESPACE. So DEFAULT_SYMBOL_NAMESPACE must already be
available when <linux/export.h> is parsed.

Also when defined that early there is no need for an #undef, so drop
that from the usage example.

Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/linux-i2c/Z09bp9uMzwXRLXuF@smile.fi.intel.com/
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://lore.kernel.org/r/3dd7ff6fa0a636de86e091286016be8c90e03631.1733305665.git.ukleinek@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20241230142357.3203913-6-u.kleine-koenig@baylibre.com
Documentation/core-api/symbol-namespaces.rst

index 473d025657fd00133e36136b684a2bd7fa4e190a..06f766a6aab2446c6218e80fe2573aa79dc59ace 100644 (file)
@@ -78,11 +78,10 @@ as this argument has preference over a default symbol namespace.
 A second option to define the default namespace is directly in the compilation
 unit as preprocessor statement. The above example would then read::
 
-       #undef  DEFAULT_SYMBOL_NAMESPACE
        #define DEFAULT_SYMBOL_NAMESPACE "USB_COMMON"
 
-within the corresponding compilation unit before any EXPORT_SYMBOL macro is
-used.
+within the corresponding compilation unit before the #include for
+<linux/export.h>. Typically it's placed before the first #include statement.
 
 3. How to use Symbols exported in Namespaces
 ============================================