[coreboot] [PATCH] romcc --include=settings.h support

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri Apr 3 15:44:55 CEST 2009


On 03.04.2009 15:33, Stefan Reinauer wrote:
> I figured we really want to have settings.h, so I added support for it
> to romcc.
>   

Awesome, thanks!

> This patch implements --include=file.h for romcc.
>   

Please add --include to the romcc usage messsage as well.

> Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
>
> Index: util/romcc/romcc.c
> ===================================================================
> --- util/romcc/romcc.c	(revision 4046)
> +++ util/romcc/romcc.c	(working copy)
> @@ -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);
>   

This looks strange. Do we really want to compile the include file
_after_ compiling the .c file? Wouldn't that make all #defines ineffective?

>  
>  	/* 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;
>  }
>   

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list