On Tue, Aug 13, 2019 at 01:17:03PM +0100, Matthias Maennich wrote: > To avoid excessive usage of EXPORT_SYMBOL_NS(sym, MY_NAMESPACE), where > MY_NAMESPACE will always be the namespace we are exporting to, allow > exporting all definitions of EXPORT_SYMBOL() and friends by defining > DEFAULT_SYMBOL_NAMESPACE. > > For example, to export all symbols defined in usb-common into the > namespace USB_COMMON, add a line like this to drivers/usb/common/Makefile: > > ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=USB_COMMON I thought we were trying to get away from cflags :( > > That is equivalent to changing all EXPORT_SYMBOL(sym) definitions to > EXPORT_SYMBOL_NS(sym, USB_COMMON). Subsequently all symbol namespaces > functionality will apply. > > Another way of making use of this feature is to define the namespace > within source or header files similar to how TRACE_SYSTEM defines are > used: > #undef DEFAULT_SYMBOL_NAMESPACE > #define DEFAULT_SYMBOL_NAMESPACE USB_COMMON > > Please note that, as opposed to TRACE_SYSTEM, DEFAULT_SYMBOL_NAMESPACE > has to be defined before including include/linux/export.h. > > If DEFAULT_SYMBOL_NAMESPACE is defined, a symbol can still be exported > to another namespace by using EXPORT_SYMBOL_NS() and friends with > explicitly specifying the namespace. Ok, good, hopefully the cflags stuff will not be the default for people. thanks, greg k-h