Hi,

attached patch contains a couple of build fixes for libpayload builds,
adds a "libpayload" OS_ARCH (which disables serial and usb programmers
and sets up the build to use lpgcc), and provides a new make target
"libflashrom.a" which combines all object files except the CLI_OBJS
class into libflashrom.a.

For a successful build you also need the libpayload patches on the
coreboot mailing list until they're checked in.

libflashrom.a still suffers from a variety of exit(1)s here and there,
so it's not quite a librarified flashrom yet, but it's a start.

Signed-off-by: Patrick Georgi <[email protected]>
-- 
Patrick Georgi
SINA-Development - High Security
secunet Security Networks AG - Mergenthalerallee 77 - 65760 Eschborn, Germany
Phone +49 201 54 54-3610 - Fax +49 201 54 54-1325 - www.secunet.com 

Sitz: Kronprinzenstraße 30, 45128 Essen / Amtsgericht Essen HRB 13615
Vorstand: Dr. Rainer Baumgart (Vors.), Thomas Koelzer, Thomas Pleines
Aufsichtsratsvorsitzender: Dr. Karsten Ottenberg
Index: Makefile
===================================================================
--- Makefile	(Revision 1262)
+++ Makefile	(Arbeitskopie)
@@ -28,6 +28,8 @@
 MANDIR  ?= $(PREFIX)/share/man
 CFLAGS  ?= -Os -Wall -Wshadow
 EXPORTDIR ?= .
+AR      ?= ar
+RANLIB  ?= ranlib
 
 WARNERROR ?= yes
 
@@ -82,6 +84,39 @@
 endif
 endif
 
+ifeq ($(OS_ARCH), libpayload)
+CC:=CC=i386-elf-gcc lpgcc
+AR:=i386-elf-ar
+RANLIB:=i386-elf-ranlib
+CPPFLAGS += -DSTANDALONE
+ifeq ($(CONFIG_DUMMY), yes)
+UNSUPPORTED_FEATURES += CONFIG_DUMMY=yes
+else
+override CONFIG_DUMMY = no
+endif
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes
+else
+override CONFIG_BUSPIRATE_SPI = no
+endif
+ifeq ($(CONFIG_SERPROG), yes)
+UNSUPPORTED_FEATURES += CONFIG_SERPROG=yes
+else
+override CONFIG_SERPROG = no
+endif
+# Dediprog and FT2232 are not supported under DOS (missing USB support).
+ifeq ($(CONFIG_DEDIPROG), yes)
+UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
+else
+override CONFIG_DEDIPROG = no
+endif
+ifeq ($(CONFIG_FT2232_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_FT2232_SPI=yes
+else
+override CONFIG_FT2232_SPI = no
+endif
+endif
+
 CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \
 	sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
 	sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o sharplhf00l04.o
@@ -335,11 +370,16 @@
 # We could use PULLED_IN_LIBS, but that would be ugly.
 FEATURE_LIBS += $(shell LC_ALL=C grep -q "NEEDLIBZ := yes" .libdeps && printf "%s" "-lz")
 
-OBJS = $(CHIP_OBJS) $(CLI_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS)
+LIBFLASHROM_OBJS = $(CHIP_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS)
+OBJS = $(CLI_OBJS) $(LIBFLASHROM_OBJS) 
 
 $(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
 	$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(FEATURE_LIBS) $(LIBS)
 
+libflashrom.a: $(LIBFLASHROM_OBJS)
+	$(AR) rcs $@ $^
+	$(RANLIB) $@
+
 # TAROPTIONS reduces information leakage from the packager's system.
 # If other tar programs support command line arguments for setting uid/gid of
 # stored files, they can be handled here as well.
@@ -352,7 +392,7 @@
 # This includes all frontends and libflashrom.
 # We don't use EXEC_SUFFIX here because we want to clean everything.
 clean:
-	rm -f $(PROGRAM) $(PROGRAM).exe *.o *.d
+	rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a *.o *.d
 
 distclean: clean
 	rm -f .features .libdeps
Index: physmap.c
===================================================================
--- physmap.c	(Revision 1262)
+++ physmap.c	(Arbeitskopie)
@@ -492,6 +492,7 @@
 int libpayload_wrmsr(int addr, msr_t msr)
 {
 	_wrmsr(addr, msr.lo | ((unsigned long long)msr.hi << 32));
+	return 0;
 }
 #else
 msr_t rdmsr(int addr)
Index: spi.c
===================================================================
--- spi.c	(Revision 1262)
+++ spi.c	(Arbeitskopie)
@@ -22,6 +22,7 @@
  * Contains the generic SPI framework
  */
 
+#include <strings.h>
 #include <string.h>
 #include "flash.h"
 #include "flashchips.h"
Index: udelay.c
===================================================================
--- udelay.c	(Revision 1262)
+++ udelay.c	(Arbeitskopie)
@@ -182,6 +182,7 @@
 }
 
 #else 
+#include <libpayload.h>
 
 void myusec_calibrate_delay(void)
 {

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to