Commit bed7a560 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
  kbuild: Do not overwrite makefile as anohter user
  kbuild: drivers/video/logo/ - fix ident glitch
  kbuild: fix gen_initramfs_list.sh
  kbuild modpost - relax driver data name
  kbuild: removing .tmp_versions considered harmful
  kbuild: fix modpost segfault for 64bit mipsel kernel
parents 75dff55a fd5f0cd6
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -344,16 +344,14 @@ scripts_basic:
scripts/basic/%: scripts_basic ;

PHONY += outputmakefile
# outputmakefile generate a Makefile to be placed in output directory, if
# using a seperate output directory. This allows convinient use
# of make in output directory
# outputmakefile generates a Makefile in the output directory, if using a
# separate output directory. This allows convenient use of make in the
# output directory.
outputmakefile:
	$(Q)if test ! $(srctree) -ef $(objtree); then \
	$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile              \
	    $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)         \
	    > $(objtree)/Makefile;                                 \
	    echo '  GEN    $(objtree)/Makefile';                   \
	fi
ifneq ($(KBUILD_SRC),)
	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
	    $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
endif

# To make sure we do not include .config for any of the *config targets
# catch them early, and hand them over to scripts/kconfig/Makefile
@@ -796,8 +794,8 @@ prepare2: prepare3 outputmakefile
prepare1: prepare2 include/linux/version.h include/asm \
                   include/config/MARKER
ifneq ($(KBUILD_MODULES),)
	$(Q)rm -rf $(MODVERDIR)
	$(Q)mkdir -p $(MODVERDIR)
	$(Q)rm -f $(MODVERDIR)/*
endif

archprepare: prepare1 scripts_basic
@@ -1086,8 +1084,8 @@ else # KBUILD_EXTMOD
KBUILD_MODULES := 1
PHONY += crmodverdir
crmodverdir:
	$(Q)rm -rf $(MODVERDIR)
	$(Q)mkdir -p $(MODVERDIR)
	$(Q)rm -f $(MODVERDIR)/*

PHONY += $(objtree)/Module.symvers
$(objtree)/Module.symvers:
+5 −1
Original line number Diff line number Diff line
@@ -200,7 +200,11 @@ input_file() {
			print_mtime "$1" >> ${output}
			cat "$1"         >> ${output}
		else
			grep ^file "$1" | cut -d ' ' -f 3
			cat "$1" | while read type dir file perm ; do
				if [ "$type" == "file" ]; then
					echo "$file \\";
				fi
			done
		fi
	elif [ -d "$1" ]; then
		dir_filelist "$1"
+4 −1
Original line number Diff line number Diff line
@@ -10,7 +10,10 @@
# $4 - patchlevel


cat << EOF
test ! -r $2/Makefile -o -O $2/Makefile || exit 0
echo "  GEN     $2/Makefile"

cat << EOF > $2/Makefile
# Automatically generated by $0: don't edit

VERSION = $3
+12 −5
Original line number Diff line number Diff line
@@ -487,14 +487,14 @@ static int strrcmp(const char *s, const char *sub)
 *   atsym   =__param*
 *
 * Pattern 2:
 *   Many drivers utilise a *_driver container with references to
 *   Many drivers utilise a *driver container with references to
 *   add, remove, probe functions etc.
 *   These functions may often be marked __init and we do not want to
 *   warn here.
 *   the pattern is identified by:
 *   tosec   = .init.text | .exit.text | .init.data
 *   fromsec = .data
 *   atsym = *_driver, *_template, *_sht, *_ops, *_probe, *probe_one
 *   atsym = *driver, *_template, *_sht, *_ops, *_probe, *probe_one
 **/
static int secref_whitelist(const char *tosec, const char *fromsec,
			    const char *atsym)
@@ -502,7 +502,7 @@ static int secref_whitelist(const char *tosec, const char *fromsec,
	int f1 = 1, f2 = 1;
	const char **s;
	const char *pat2sym[] = {
		"_driver",
		"driver",
		"_template", /* scsi uses *_template a lot */
		"_sht",      /* scsi also used *_sht to some extent */
		"_ops",
@@ -709,10 +709,17 @@ static void check_sec_ref(struct module *mod, const char *modname,
		for (rela = start; rela < stop; rela++) {
			Elf_Rela r;
			const char *secname;
			unsigned int r_sym;
			r.r_offset = TO_NATIVE(rela->r_offset);
			r.r_info   = TO_NATIVE(rela->r_info);
			if (hdr->e_ident[EI_CLASS] == ELFCLASS64 &&
			    hdr->e_machine == EM_MIPS) {
				r_sym = ELF64_MIPS_R_SYM(rela->r_info);
				r_sym = TO_NATIVE(r_sym);
			} else {
				r_sym = ELF_R_SYM(TO_NATIVE(rela->r_info));
			}
			r.r_addend = TO_NATIVE(rela->r_addend);
			sym = elf->symtab_start + ELF_R_SYM(r.r_info);
			sym = elf->symtab_start + r_sym;
			/* Skip special sections */
			if (sym->st_shndx >= SHN_LORESERVE)
				continue;
+19 −0
Original line number Diff line number Diff line
@@ -39,6 +39,25 @@
#define ELF_R_TYPE  ELF64_R_TYPE
#endif

/* 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 */
} _Elf64_Mips_R_Info;

typedef union
{
  Elf64_Xword	r_info_number;
  _Elf64_Mips_R_Info r_info_fields;
} _Elf64_Mips_R_Info_union;

#define ELF64_MIPS_R_SYM(i) \
  ((__extension__ (_Elf64_Mips_R_Info_union)(i)).r_info_fields.r_sym)

#if KERNEL_ELFDATA != HOST_ELFDATA

static inline void __endian(const void *src, void *dest, unsigned int size)
+1 −1

File changed.

Contains only whitespace changes.

Loading