X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=scripts%2Fmod%2Fmodpost.h;h=0858caa9c03fd2eba048ca60a3659e449251b60c;hb=eda890af7959a79ab10a7a8ae979dadcdba41c58;hp=89b96c6d8ef587f3995d9975ca67e9ee2971ea18;hpb=bed7a560333d40269a886c4421d4c8f964a32177;p=powerpc.git diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index 89b96c6d8e..0858caa9c0 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -21,6 +21,7 @@ #define ELF_ST_BIND ELF32_ST_BIND #define ELF_ST_TYPE ELF32_ST_TYPE +#define Elf_Rel Elf32_Rel #define Elf_Rela Elf32_Rela #define ELF_R_SYM ELF32_R_SYM #define ELF_R_TYPE ELF32_R_TYPE @@ -34,6 +35,7 @@ #define ELF_ST_BIND ELF64_ST_BIND #define ELF_ST_TYPE ELF64_ST_TYPE +#define Elf_Rel Elf64_Rel #define Elf_Rela Elf64_Rela #define ELF_R_SYM ELF64_R_SYM #define ELF_R_TYPE ELF64_R_TYPE @@ -42,17 +44,17 @@ /* The 64-bit MIPS ELF ABI uses an unusual reloc format. */ typedef struct { - Elf32_Word r_sym; /* Symbol index */ - unsigned char r_ssym; /* Special symbol for 2nd relocation */ - unsigned char r_type3; /* 3rd relocation type */ - unsigned char r_type2; /* 2nd relocation type */ - unsigned char r_type1; /* 1st relocation type */ + Elf32_Word r_sym; /* Symbol index */ + unsigned char r_ssym; /* Special symbol for 2nd relocation */ + unsigned char r_type3; /* 3rd relocation type */ + unsigned char r_type2; /* 2nd relocation type */ + unsigned char r_type1; /* 1st relocation type */ } _Elf64_Mips_R_Info; typedef union { - Elf64_Xword r_info_number; - _Elf64_Mips_R_Info r_info_fields; + Elf64_Xword r_info_number; + _Elf64_Mips_R_Info r_info_fields; } _Elf64_Mips_R_Info_union; #define ELF64_MIPS_R_SYM(i) \ @@ -67,8 +69,6 @@ static inline void __endian(const void *src, void *dest, unsigned int size) ((unsigned char*)dest)[i] = ((unsigned char*)src)[size - i-1]; } - - #define TO_NATIVE(x) \ ({ \ typeof(x) __x; \ @@ -100,6 +100,7 @@ buf_write(struct buffer *buf, const char *s, int len); struct module { struct module *next; const char *name; + int gpl_compatible; struct symbol *unres; int seen; int skip; @@ -115,6 +116,11 @@ struct elf_info { Elf_Shdr *sechdrs; Elf_Sym *symtab_start; Elf_Sym *symtab_stop; + Elf_Section export_sec; + Elf_Section export_unused_sec; + Elf_Section export_gpl_sec; + Elf_Section export_unused_gpl_sec; + Elf_Section export_gpl_future_sec; const char *strtab; char *modinfo; unsigned int modinfo_len; @@ -139,3 +145,4 @@ void release_file(void *file, unsigned long size); void fatal(const char *fmt, ...); void warn(const char *fmt, ...); +void merror(const char *fmt, ...);