Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d56dc0b6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
parents 266c2e0a 4ce6efed
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -189,7 +189,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
# Alternatively CROSS_COMPILE can be set in the environment.
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH		?= $(SUBARCH)
CROSS_COMPILE	?=

+5 −1
Original line number Diff line number Diff line
@@ -58,6 +58,9 @@ modules := $(patsubst %.o,%.ko, $(wildcard $(__modules:.ko=.o)))
# Stop after building .o files if NOFINAL is set. Makes compile tests quicker
_modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules))

ifneq ($(KBUILD_BUILDHOST),$(ARCH))
        cross_build := 1
endif

# Step 2), invoke modpost
#  Includes step 3,4
@@ -70,7 +73,8 @@ modpost = scripts/mod/modpost \
 $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S)      \
 $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \
 $(if $(CONFIG_MARKERS),-M $(markersfile))	 \
 $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w)
 $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
 $(if $(cross_build),-c)

quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules
      cmd_modpost = $(modpost) -s
+4 −0
Original line number Diff line number Diff line
@@ -51,11 +51,13 @@ do { \
                sprintf(str + strlen(str), "*");                \
} while(0)

unsigned int cross_build = 0;
/**
 * Check that sizeof(device_id type) are consistent with size of section
 * in .o file. If in-consistent then userspace and kernel does not agree
 * on actual size which is a bug.
 * Also verify that the final entry in the table is all zeros.
 * Ignore both checks if build host differ from target host and size differs.
 **/
static void device_id_check(const char *modname, const char *device_id,
			    unsigned long size, unsigned long id_size,
@@ -64,6 +66,8 @@ static void device_id_check(const char *modname, const char *device_id,
	int i;

	if (size % id_size || size < id_size) {
		if (cross_build != 0)
			return;
		fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
		      "of the size of section __mod_%s_device_table=%lu.\n"
		      "Fix definition of struct %s_device_id "
+4 −1
Original line number Diff line number Diff line
@@ -2026,7 +2026,7 @@ int main(int argc, char **argv)
	int opt;
	int err;

	while ((opt = getopt(argc, argv, "i:I:msSo:awM:K:")) != -1) {
	while ((opt = getopt(argc, argv, "i:I:cmsSo:awM:K:")) != -1) {
		switch (opt) {
		case 'i':
			kernel_read = optarg;
@@ -2035,6 +2035,9 @@ int main(int argc, char **argv)
			module_read = optarg;
			external_module = 1;
			break;
		case 'c':
			cross_build = 1;
			break;
		case 'm':
			modversions = 1;
			break;
+1 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@ struct elf_info {
};

/* file2alias.c */
extern unsigned int cross_build;
void handle_moddevtable(struct module *mod, struct elf_info *info,
			Elf_Sym *sym, const char *symname);
void add_moddevtable(struct buffer *buf, struct module *mod);