[patch binutils]: Add --preprocessor-arg option to windres tool
Kai Tietz
ktietz70@googlemail.com
Fri Apr 8 19:44:00 GMT 2011
Hello,
This patch adds feature to windres tool, so that user can pass via
--preprocessor-arg
additional options to the preprocessor. This feature is necessary to
have a way to
invoke windres for multilib build so, that the bitness (-m32/-m64) can
be passed to
preprocessor.
ChangLog
2011-04-08 Kai Tietz
* windres.c (usage): Add new --preprocessor-arg option.
(option_values): Add new OPTION_PREPROCESSOR_ARG enumerator.
(option long_options): Add preprocessor-arg option.
(main): Handle it.
Tested for x86_64-w64-mingw32 and i686-w64-mingw32. Ok for apply?
Regards,
Kai
-------------- next part --------------
Index: src/binutils/windres.c
===================================================================
--- src.orig/binutils/windres.c 2010-06-19 10:31:05.000000000 +0200
+++ src/binutils/windres.c 2011-04-08 21:29:23.387259400 +0200
@@ -665,6 +665,7 @@ usage (FILE *stream, int status)
-O --output-format=<format> Specify output format\n\
-F --target=<target> Specify COFF target\n\
--preprocessor=<program> Program to use to preprocess rc file\n\
+ --preprocessor-arg=<arg> Additional preprocessor argument\n\
-I --include-dir=<dir> Include directory when preprocessing rc file\n\
-D --define <sym>[=<val>] Define SYM when preprocessing rc file\n\
-U --undefine <sym> Undefine SYM when preprocessing rc file\n\
@@ -734,7 +735,8 @@ enum option_values
OPTION_USE_TEMP_FILE,
OPTION_NO_USE_TEMP_FILE,
OPTION_YYDEBUG,
- OPTION_INCLUDE_DIR
+ OPTION_INCLUDE_DIR,
+ OPTION_PREPROCESSOR_ARG
};
static const struct option long_options[] =
@@ -745,6 +747,7 @@ static const struct option long_options[
{"output-format", required_argument, 0, 'O'},
{"target", required_argument, 0, 'F'},
{"preprocessor", required_argument, 0, OPTION_PREPROCESSOR},
+ {"preprocessor-arg", required_argument, 0, OPTION_PREPROCESSOR_ARG},
{"include-dir", required_argument, 0, OPTION_INCLUDE_DIR},
{"define", required_argument, 0, 'D'},
{"undefine", required_argument, 0, 'U'},
@@ -888,6 +891,23 @@ main (int argc, char **argv)
case OPTION_PREPROCESSOR:
preprocessor = optarg;
break;
+ case OPTION_PREPROCESSOR_ARG:
+ if (preprocargs == NULL)
+ {
+ quotedarg = quot (optarg);
+ preprocargs = xstrdup (quotedarg);
+ }
+ else
+ {
+ char *n;
+
+ quotedarg = quot (optarg);
+ n = xmalloc (strlen (preprocargs) + strlen (quotedarg) + 2);
+ sprintf (n, "%s %s", preprocargs, quotedarg);
+ free (preprocargs);
+ preprocargs = n;
+ }
+ break;
case 'D':
case 'U':
More information about the Binutils
mailing list