diff options
author | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-02-24 13:18:01 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2010-02-24 13:18:01 +0000 |
commit | d3428b071e256f0b09f40ef3d18837749401b6f8 (patch) | |
tree | 5b68769c74ef9c1740db4d0eac372eb56ef1dcc2 | |
parent | a8aa1b1b1387706d5907378a7c75e501c6758816 (diff) | |
download | coreboot-d3428b071e256f0b09f40ef3d18837749401b6f8.tar.xz |
This patch fixes an issue with the wrong build rules being selected.
Make is free to choose any fitting rule for a target, and so some
obj-y files were compiled with initobj flags. This patch also fixes
the behavior for objects being both in initobj and obj.
At the moment all object rules are the same, but if we start not including
all .c files in romstage.c anymore we need to define __PRE_RAM__ in the
initobj rule and that's when things start breaking.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5156 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r-- | Makefile | 16 | ||||
-rw-r--r-- | src/arch/i386/Makefile.bigbootblock.inc | 2 | ||||
-rw-r--r-- | src/arch/i386/Makefile.tinybootblock.inc | 2 |
3 files changed, 12 insertions, 8 deletions
@@ -126,6 +126,10 @@ evaluate_subdirs=$(eval cursubdirs:=$(subdirs)) $(eval subdirs:=) $(foreach dir, subdirs:=$(PLATFORM-y) $(BUILD-y) $(eval $(call evaluate_subdirs, modify)) +initobjs:=$(addsuffix .initobj.o, $(basename $(initobjs))) +drivers:=$(addsuffix .driver.o, $(basename $(drivers))) +smmobjs:=$(addsuffix .smmobj.o, $(basename $(smmobjs))) + allobjs:=$(foreach var, $(addsuffix s,$(types)), $($(var))) alldirs:=$(sort $(abspath $(dir $(allobjs)))) source_with_ext=$(patsubst $(obj)/%.o,src/%.$(1),$(allobjs)) @@ -160,37 +164,37 @@ $(obj)/$(1)%.o: src/$(1)%.S $(obj)/config.h endef define initobjs_c_template -$(obj)/$(1)%.o: src/$(1)%.c $(obj)/config.h +$(obj)/$(1)%.initobj.o: src/$(1)%.c $(obj)/config.h @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 $$(CFLAGS) -c -o $$@ $$< endef define initobjs_S_template -$(obj)/$(1)%.o: src/$(1)%.S $(obj)/config.h +$(obj)/$(1)%.initobj.o: src/$(1)%.S $(obj)/config.h @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 -DASSEMBLY $$(CFLAGS) -c -o $$@ $$< endef define drivers_c_template -$(obj)/$(1)%.o: src/$(1)%.c $(obj)/config.h +$(obj)/$(1)%.driver.o: src/$(1)%.c $(obj)/config.h @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 $$(CFLAGS) -c -o $$@ $$< endef define drivers_S_template -$(obj)/$(1)%.o: src/$(1)%.S +$(obj)/$(1)%.driver.o: src/$(1)%.S @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 -DASSEMBLY $$(CFLAGS) -c -o $$@ $$< endef define smmobjs_c_template -$(obj)/$(1)%.o: src/$(1)%.c +$(obj)/$(1)%.smmobj.o: src/$(1)%.c @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 $$(CFLAGS) -c -o $$@ $$< endef define smmobjs_S_template -$(obj)/$(1)%.o: src/$(1)%.S +$(obj)/$(1)%.smmobj.o: src/$(1)%.S @printf " CC $$(subst $$(obj)/,,$$(@))\n" $(CC) -m32 $$(CFLAGS) -c -o $$@ $$< endef diff --git a/src/arch/i386/Makefile.bigbootblock.inc b/src/arch/i386/Makefile.bigbootblock.inc index a8882316b7..fbdc3fb8b9 100644 --- a/src/arch/i386/Makefile.bigbootblock.inc +++ b/src/arch/i386/Makefile.bigbootblock.inc @@ -22,7 +22,7 @@ $(obj)/crt0_includes.h: $(crt0s) @printf " GEN $(subst $(obj)/,,$(@))\n" printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@ -$(obj)/mainboard/$(MAINBOARDDIR)/crt0.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s +$(obj)/mainboard/$(MAINBOARDDIR)/crt0.initobj.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s $(CC) -I$(obj) -Wa,-acdlns -c -o $@ $< > $(dir $@)/crt0.disasm $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/crt0_includes.h diff --git a/src/arch/i386/Makefile.tinybootblock.inc b/src/arch/i386/Makefile.tinybootblock.inc index 9c048006bb..8911844d9e 100644 --- a/src/arch/i386/Makefile.tinybootblock.inc +++ b/src/arch/i386/Makefile.tinybootblock.inc @@ -95,7 +95,7 @@ $(obj)/romstage/crt0_includes.h: $(crt0s) mkdir -p $(obj)/romstage printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@ -$(obj)/mainboard/$(MAINBOARDDIR)/crt0.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s +$(obj)/mainboard/$(MAINBOARDDIR)/crt0.initobj.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s $(CC) -I$(obj) -Wa,-acdlns -c -o $@ $< > $(dir $@)/crt0.disasm $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/romstage/crt0_includes.h |