See attachment
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: [email protected] • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
This fixes a race condition in the romtool by changing the Makefiles to be no
longer recursive (once again, recursive make is to be considered harmful).
Tried to (quickly) unify most of the Makefile code, but medium-term this is
going to be worked on for Kconfig support anyways.
Also fix a sign cast error in rom-mkpayload in case people want to
compile this with -W -Werror
Patch relative to coreboot-v2/util/romtool
Signed-off-by: Stefan Reinauer <[email protected]>
Index: tools/lzma/Makefile
===================================================================
--- tools/lzma/Makefile (revision 4068)
+++ tools/lzma/Makefile (working copy)
@@ -24,27 +24,27 @@
LZMA_OBJ += lzma/CRC.o
LZMA_OBJ += lzma/lzma-compress.o
-$(obj)/lzma/lzma-compress.o: lzma/minilzma.cc
- g++ -o $@ -c -DCOMPACT $<
+$(tobj)/lzma/lzma-compress.o: $(tsrc)/lzma/minilzma.cc
+ $(CXX) $(CFLAGS) -o $@ -c -DCOMPACT $<
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/LZMA/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/LZMA/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/LZ/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/LZ/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/C/7zip/Compress/RangeCoder/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Compress/RangeCoder/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/C/7zip/Decompress/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Decompress/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/C/7zip/Common/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/7zip/Common/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/C/Common/%.cpp
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/C/Common/%.cpp
+ $(CXX) $(CFLAGS) -o $@ -c $<
-$(obj)/lzma/%.o: lzma/%.cc
- g++ -o $@ -c $<
+$(tobj)/lzma/%.o: $(tsrc)/lzma/%.cc
+ $(CXX) $(CFLAGS) -o $@ -c $<
Index: tools/Makefile
===================================================================
--- tools/Makefile (revision 4068)
+++ tools/Makefile (working copy)
@@ -1,25 +1,24 @@
-obj ?= $(shell pwd)
+tobj ?= $(shell pwd)
+tsrc ?= $(shell pwd)
-CC=gcc
-CFLAGS=-Wall -W -Werror -g
+TARGETS += $(tobj)/rom-mkstage $(tobj)/rom-mkpayload
-all: rom-mkstage rom-mkpayload
+tools: $(tobj)/rom-mkstage $(tobj)/rom-mkpayload
-include lzma/Makefile
+include $(tobj)/lzma/Makefile
-COMMON= common.o compress.o $(LZMA_OBJ)
+COMMON = common.o compress.o $(LZMA_OBJ)
+$(tobj)/rom-mkstage: $(tobj)/rom-mkstage.o $(patsubst %,$(tobj)/%,$(COMMON))
+ $(CXX) $(CFLAGS) -o $@ $^
-$(obj)/rom-mkstage: $(obj)/rom-mkstage.o $(patsubst %,$(obj)/%,$(COMMON))
- $(CXX) -g -o $@ $(obj)/rom-mkstage.o $(patsubst %,$(obj)/%,$(COMMON))
+$(tobj)/rom-mkpayload: $(tobj)/rom-mkpayload.o $(patsubst
%,$(tobj)/%,$(COMMON))
+ $(CXX) $(CFLAGS) -o $@ $^
-$(obj)/rom-mkpayload: $(obj)/rom-mkpayload.o $(patsubst %,$(obj)/%,$(COMMON))
- $(CXX) -o $@ $(obj)/rom-mkpayload.o $(patsubst %,$(obj)/%,$(COMMON))
+$(tobj)/%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
-$(obj)/%.o: %.c
- $(CC) -Wall -Werror -g -c -o $@ $<
+tools-clean:
+ rm -f $(tobj)/rom-mkpayload.o $(tobj)/rom-mkstage.o $(patsubst
%,$(tobj)/%,$(COMMON))
+ rm -f $(tobj)/rom-mkpayload $(tobj)/rom-mkstage
-clean:
- @ rm -f rom-mkpayload.o rom-mkstage.o $(COMMON)
- @ rm -f rom-mkpayload rom-mkstage
-
Index: tools/rom-mkpayload.c
===================================================================
--- tools/rom-mkpayload.c (revision 4068)
+++ tools/rom-mkpayload.c (working copy)
@@ -163,7 +163,7 @@
/* If the compressed section is larger, then use the
original stuff */
- if (len > phdr[i].p_filesz) {
+ if ((unsigned int)len > phdr[i].p_filesz) {
segs[segments].compression = 0;
segs[segments].len = htonl(phdr[i].p_filesz);
Index: Makefile
===================================================================
--- Makefile (revision 4068)
+++ Makefile (working copy)
@@ -6,11 +6,11 @@
COMMANDS=create.o bootblock.o delete.o add.o print.o resize.o
OBJ=$(COMMANDS) romtool.o util.o fs.o
+INC=romtool.h romfs.h
CC=gcc
-CFLAGS=-g -Wall -W #-Werror
+CFLAGS=-g -Wall # -W -Werror
-H=romtool.h
DESTDIR ?= /usr/local/bin
all: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
@@ -18,10 +18,12 @@
$(obj)/romtool: $(patsubst %,$(obj)/%,$(OBJ))
$(CC) -o $@ $(patsubst %,$(obj)/%,$(OBJ))
-$(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage:
- $(MAKE) -C tools/ obj=$(obj)/tools $(patsubst tools/%, %, $@)
+tobj = $(obj)/tools
+tsrc = $(shell pwd)/tools
-$(obj)/%.o: %.c
+include tools/Makefile
+
+$(obj)/%.o: %.c $(INC)
$(CC) $(CFLAGS) -c -o $@ $<
install: $(obj)/romtool $(obj)/tools/rom-mkpayload $(obj)/tools/rom-mkstage
@@ -33,6 +35,6 @@
tags:
ctags *.[ch] */*.[ch]
-clean:
- $(MAKE) -C tools/ clean
+clean: tools-clean
rm -f $(patsubst %,$(obj)/%,$(OBJ)) $(obj)/romtool
+
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot