1. 29 10月, 2013 1 次提交
  2. 15 3月, 2013 1 次提交
    • R
      CONFIG_SYMBOL_PREFIX: cleanup. · b92021b0
      Rusty Russell 提交于
      We have CONFIG_SYMBOL_PREFIX, which three archs define to the string
      "_".  But Al Viro broke this in "consolidate cond_syscall and
      SYSCALL_ALIAS declarations" (in linux-next), and he's not the first to
      do so.
      
      Using CONFIG_SYMBOL_PREFIX is awkward, since we usually just want to
      prefix it so something.  So various places define helpers which are
      defined to nothing if CONFIG_SYMBOL_PREFIX isn't set:
      
      1) include/asm-generic/unistd.h defines __SYMBOL_PREFIX.
      2) include/asm-generic/vmlinux.lds.h defines VMLINUX_SYMBOL(sym)
      3) include/linux/export.h defines MODULE_SYMBOL_PREFIX.
      4) include/linux/kernel.h defines SYMBOL_PREFIX (which differs from #7)
      5) kernel/modsign_certificate.S defines ASM_SYMBOL(sym)
      6) scripts/modpost.c defines MODULE_SYMBOL_PREFIX
      7) scripts/Makefile.lib defines SYMBOL_PREFIX on the commandline if
         CONFIG_SYMBOL_PREFIX is set, so that we have a non-string version
         for pasting.
      
      (arch/h8300/include/asm/linkage.h defines SYMBOL_NAME(), too).
      
      Let's solve this properly:
      1) No more generic prefix, just CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX.
      2) Make linux/export.h usable from asm.
      3) Define VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR().
      4) Make everyone use them.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Reviewed-by: NJames Hogan <james.hogan@imgtec.com>
      Tested-by: James Hogan <james.hogan@imgtec.com> (metag)
      b92021b0
  3. 31 10月, 2011 1 次提交
    • P
      module.h: split out the EXPORT_SYMBOL into export.h · f5016932
      Paul Gortmaker 提交于
      A lot of files pull in module.h when all they are really
      looking for is the basic EXPORT_SYMBOL functionality. The
      recent data from Ingo[1] shows that this is one of several
      instances that has a significant impact on compile times,
      and it should be targeted for factoring out (as done here).
      
      Note that several commonly used header files in include/*
      directly include <linux/module.h> themselves (some 34 of them!)
      The most commonly used ones of these will have to be made
      independent of module.h before the full benefit of this change
      can be realized.
      
      We also transition THIS_MODULE from module.h to export.h,
      since there are lots of files with subsystem structs that
      in turn will have a struct module *owner and only be doing:
      
      	.owner = THIS_MODULE;
      
      and absolutely nothing else modular. So, we also want to have
      the THIS_MODULE definition present in the lightweight header.
      
      [1] https://lkml.org/lkml/2011/5/23/76Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      f5016932