[flashrom] [commit] r987 - trunk

repository service svn at flashrom.org
Sat Mar 27 17:36:41 CET 2010


Author: hailfinger
Date: Sat Mar 27 17:36:40 2010
New Revision: 987
URL: http://flashrom.org/trac/coreboot/changeset/987

Log:
Add runtime and build environment info to the flashrom version message.
This patch uses code from Idwer Vollering and Maciej Pijanka.
I've added Makefile support and compiler version printing and
restructured the code heavily.
The code prints runtime system information and buildtime libpci
information (I couldn't find any runtime libpci version function). Due
to our ability to cross-compile flashrom, buildtime system information
from "uname -mrs" doesn't help diagnosing any problems. That's why only
libpci and gcc are buildtime info, and the rest is runtime info.

Examples:

openSUSE 10.3, i686, gcc 4.2.1, with PCI support:
flashrom v0.9.1-r971 on Linux 2.6.22.19-0.2-default (i686), built with
libpci 2.2.6, GCC 4.2.1 (SUSE Linux)

openSUSE 10.3, i686, llvm-clang-2.6.99svn97231, with PCI support:
flashrom v0.9.1-r971 on Linux 2.6.22.19-0.2-default (i686), built with
libpci 2.2.6, LLVM 1/clang 1

openSUSE 11.1, x86_64, gcc 4.3.2, with PCI support:
flashrom v0.9.1-r972 on Linux 2.6.27.29-0.1-default (x86_64), built with
libpci 3.0.1, GCC 4.3.2 [gcc-4_3-branch revision 141291]

openSUSE 10.3, i686, gcc 4.2.1, without PCI support:
flashrom v0.9.1-r971 on Linux 2.6.22.19-0.2-default (i686), built with
GCC 4.2.1 (SUSE Linux)

Windows/cygwin, i686, gcc 4.3.4, without PCI support:
flashrom v0.9.1-r973 on CYGWIN_NT-5.1 1.7.1(0.218/5/3) (i686), built
with GCC 4.3.4 20090804 (release) 1

FreeBSD 8.0, i386, gcc 4.2.1, with PCI support:
flashrom v0.9.1-r973 on FreeBSD 8.0-RELEASE-p2 (i386), built with libpci
3.1.7, GCC 4.2.1 20070719  [FreeBSD]

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Signed-off-by: Idwer Vollering <vidwer at gmail.com>
Acked-by: Maciej Pijanka <maciej.pijanka at gmail.com>

Modified:
   trunk/Makefile
   trunk/flashrom.c

Modified: trunk/Makefile
==============================================================================
--- trunk/Makefile	Sat Mar 27 17:16:01 2010	(r986)
+++ trunk/Makefile	Sat Mar 27 17:36:40 2010	(r987)
@@ -230,6 +230,8 @@
 CLI_OBJS += print_wiki.o
 endif
 
+FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "UTSNAME := yes" .features && printf "%s" "-D'HAVE_UTSNAME=1'")
+
 # 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")
 
@@ -308,12 +310,29 @@
 	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
 		( echo "found."; echo "FTDISUPPORT := yes" >> .features.tmp ) ||	\
 		( echo "not found."; echo "FTDISUPPORT := no" >> .features.tmp )
+	@printf "Checking for utsname support... "
+	@$(shell ( echo "#include <sys/utsname.h>";		   \
+		   echo "struct utsname osinfo;";	   \
+		   echo "int main(int argc, char **argv)"; \
+		   echo "{ uname (&osinfo); return 0; }"; ) > .featuretest.c )
+	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest >/dev/null 2>&1 &&	\
+		( echo "found."; echo "UTSNAME := yes" >> .features.tmp ) ||	\
+		( echo "not found."; echo "UTSNAME := no" >> .features.tmp )
 	@$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features
 	@rm -f .featuretest.c .featuretest
 else
 features: compiler
 	@echo "FEATURES := yes" > .features.tmp
+	@printf "Checking for utsname support... "
+	@$(shell ( echo "#include <sys/utsname.h>";		   \
+		   echo "struct utsname osinfo;";	   \
+		   echo "int main(int argc, char **argv)"; \
+		   echo "{ uname (&osinfo); return 0; }"; ) > .featuretest.c )
+	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest >/dev/null 2>&1 &&	\
+		( echo "found."; echo "UTSNAME := yes" >> .features.tmp ) ||	\
+		( echo "not found."; echo "UTSNAME := no" >> .features.tmp )
 	@$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features
+	@rm -f .featuretest.c .featuretest
 endif
 
 install: $(PROGRAM)

Modified: trunk/flashrom.c
==============================================================================
--- trunk/flashrom.c	Sat Mar 27 17:16:01 2010	(r986)
+++ trunk/flashrom.c	Sat Mar 27 17:36:40 2010	(r987)
@@ -27,6 +27,9 @@
 #include <string.h>
 #include <stdlib.h>
 #include <getopt.h>
+#if HAVE_UTSNAME == 1
+#include <sys/utsname.h>
+#endif
 #include "flash.h"
 #include "flashchips.h"
 
@@ -1133,9 +1136,44 @@
 	printf("\n");	
 }
 
+void print_sysinfo(void)
+{
+#if HAVE_UTSNAME == 1
+	struct utsname osinfo;
+	uname(&osinfo);
+
+	msg_ginfo(" on %s %s (%s)", osinfo.sysname, osinfo.release,
+		  osinfo.machine);
+#else
+	msg_ginfo(" on unknown machine");
+#endif
+	msg_ginfo(", built with");
+#if NEED_PCI == 1
+#ifdef PCILIB_VERSION
+	msg_ginfo(" libpci %s,", PCILIB_VERSION);
+#else
+	msg_ginfo(" unknown PCI library,");
+#endif
+#endif
+#ifdef __clang__
+	msg_ginfo(" LLVM %i/clang %i", __llvm__, __clang__);
+#elif defined(__GNUC__)
+	msg_ginfo(" GCC");
+#ifdef __VERSION__
+	msg_ginfo(" %s", __VERSION__);
+#else
+	msg_ginfo(" unknown version");
+#endif
+#else
+	msg_ginfo(" unknown compiler");
+#endif
+	msg_ginfo("\n");
+}
+
 void print_version(void)
 {
-	printf("flashrom v%s\n", flashrom_version);
+	printf("flashrom v%s", flashrom_version);
+	print_sysinfo();
 }
 
 int selfcheck(void)




More information about the flashrom mailing list