[coreboot] [v2] r4051 - trunk/coreboot-v2/util/romcc

svn at coreboot.org svn at coreboot.org
Fri Apr 3 16:04:07 CEST 2009


Author: oxygene
Date: 2009-04-03 16:04:06 +0200 (Fri, 03 Apr 2009)
New Revision: 4051

Modified:
   trunk/coreboot-v2/util/romcc/romcc.c
Log:
This patch implements --include=file.h for romcc.

The compile_file calls seem to be in the wrong order, but
romcc actually requires it that (probably some stack-like
file processing)

Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi at coresystems.de>


Modified: trunk/coreboot-v2/util/romcc/romcc.c
===================================================================
--- trunk/coreboot-v2/util/romcc/romcc.c	2009-04-03 12:55:55 UTC (rev 4050)
+++ trunk/coreboot-v2/util/romcc/romcc.c	2009-04-03 14:04:06 UTC (rev 4051)
@@ -3,8 +3,8 @@
 #undef RELEASE_DATE
 #undef VERSION
 #define VERSION_MAJOR "0"
-#define VERSION_MINOR "70"
-#define RELEASE_DATE "23 October 2007"
+#define VERSION_MINOR "71"
+#define RELEASE_DATE "03 April 2009"
 #define VERSION VERSION_MAJOR "." VERSION_MINOR
 
 #include <stdarg.h>
@@ -24925,7 +24925,7 @@
 	}
 }
 
-static void compile(const char *filename, 
+static void compile(const char *filename, const char *includefile,
 	struct compiler_state *compiler, struct arch_state *arch)
 {
 	int i;
@@ -24998,7 +24998,10 @@
 	/* Enter the globl definition scope */
 	start_scope(&state);
 	register_builtins(&state);
+
 	compile_file(&state, filename, 1);
+	if (includefile)
+		compile_file(&state, includefile, 1);
 
 	/* Stop if all we want is preprocessor output */
 	if (state.compiler->flags & COMPILER_PP_ONLY) {
@@ -25065,6 +25068,7 @@
 int main(int argc, char **argv)
 {
 	const char *filename;
+	const char *includefile = NULL;
 	struct compiler_state compiler;
 	struct arch_state arch;
 	int all_opts;
@@ -25114,6 +25118,14 @@
 			else if (strncmp(argv[1], "-m", 2) == 0) {
 				result = arch_encode_flag(&arch, argv[1]+2);
 			}
+			else if (strncmp(argv[1], "--include=", 10) == 0) {
+				if (includefile) {
+					arg_error("Only one --include option may be specified.\n");
+				} else {
+					includefile = argv[1] + 10;
+					result = 0;
+				}
+			}
 			if (result < 0) {
 				arg_error("Invalid option specified: %s\n",
 					argv[1]);
@@ -25133,7 +25145,7 @@
 	if (!filename) {
 		arg_error("No filename specified\n");
 	}
-	compile(filename, &compiler, &arch);
+	compile(filename, includefile, &compiler, &arch);
 
 	return 0;
 }





More information about the coreboot mailing list