On 2 January 2018 at 23:47, Nicolas Pitre <nicolas.pitre@xxxxxxxxxx> wrote: > On Tue, 2 Jan 2018, Ard Biesheuvel wrote: > >> To allow existing C code to be incorporated into the decompressor or >> the UEFI stub, introduce a CPP macro that turns all EXPORT_SYMBOL_xxx >> declarations into nops, and #define it in places where such exports >> are undesirable. Note that this gets rid of a rather dodgy redefine >> of linux/export.h's header guard. > [...] > >> --- a/include/linux/export.h >> +++ b/include/linux/export.h >> @@ -83,6 +83,15 @@ extern struct module __this_module; >> */ >> #define __EXPORT_SYMBOL(sym, sec) === __KSYM_##sym === >> >> +#elif defined(__DISABLE_EXPORTS) >> + >> +/* >> + * Allow symbol exports to be disabled completely so that C code may >> + * be reused in other execution contexts such as the UEFI stub or the >> + * decompressor. >> + */ >> +#define __EXPORT_SYMBOL(sym, sec) >> + > > I think you should rather put this first thing in the #if sequence so to > override the defined(__KSYM_DEPS__) case too. No need to create build > dependencies for module symbols that you're going to stub out > afterwards anyway. > I wasn't sure, so thanks for clearing that up.