Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sparc: unify module.h

Use some preprocessor magic in combination with the
newly introduced CONFIG_BITS to unify module.h.

A few additional symbols are added as they are needed in a follow-up patch

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Sam Ravnborg and committed by
David S. Miller
e1648a81 fe6875ec

+24 -22
+24 -8
arch/sparc/include/asm/module.h
··· 1 - #ifndef ___ASM_SPARC_MODULE_H 2 - #define ___ASM_SPARC_MODULE_H 3 - #if defined(__sparc__) && defined(__arch64__) 4 - #include <asm/module_64.h> 5 - #else 6 - #include <asm/module_32.h> 7 - #endif 8 - #endif 1 + #ifndef __SPARC_MODULE_H 2 + #define __SPARC_MODULE_H 3 + struct mod_arch_specific { }; 4 + 5 + /* 6 + * Use some preprocessor magic to define the correct symbol 7 + * for sparc32 and sparc64. 8 + * Elf_Addr becomes Elf32_Addr for sparc32 and Elf64_Addr for sparc64 9 + */ 10 + #define ___ELF(a, b, c) a##b##c 11 + #define __ELF(a, b, c) ___ELF(a, b, c) 12 + #define _Elf(t) __ELF(Elf, CONFIG_BITS, t) 13 + #define _ELF(t) __ELF(ELF, CONFIG_BITS, t) 14 + 15 + #define Elf_Shdr _Elf(_Shdr) 16 + #define Elf_Sym _Elf(_Sym) 17 + #define Elf_Ehdr _Elf(_Ehdr) 18 + #define Elf_Rela _Elf(_Rela) 19 + #define Elf_Addr _Elf(_Addr) 20 + 21 + #define ELF_R_SYM _ELF(_R_SYM) 22 + #define ELF_R_TYPE _ELF(_R_TYPE) 23 + 24 + #endif /* __SPARC_MODULE_H */
-7
arch/sparc/include/asm/module_32.h
··· 1 - #ifndef _ASM_SPARC_MODULE_H 2 - #define _ASM_SPARC_MODULE_H 3 - struct mod_arch_specific { }; 4 - #define Elf_Shdr Elf32_Shdr 5 - #define Elf_Sym Elf32_Sym 6 - #define Elf_Ehdr Elf32_Ehdr 7 - #endif /* _ASM_SPARC_MODULE_H */
-7
arch/sparc/include/asm/module_64.h
··· 1 - #ifndef _ASM_SPARC64_MODULE_H 2 - #define _ASM_SPARC64_MODULE_H 3 - struct mod_arch_specific { }; 4 - #define Elf_Shdr Elf64_Shdr 5 - #define Elf_Sym Elf64_Sym 6 - #define Elf_Ehdr Elf64_Ehdr 7 - #endif /* _ASM_SPARC64_MODULE_H */