[ccan] [PATCH 8/9] configurator: Pass output cflag to configurator

Kevin Locke kevin at kevinlocke.name
Mon Sep 19 10:52:05 AEST 2016


Unfortunately, not all compilers support -o as a command-line option for
specifying the output file.  Visual Studio cl.exe issues warning D9035
when -o is given, which is detected as a compile warning by the
configurator.

To support such compilers, pass the output flag as the last flag to the
configurator.

This is a breaking change.  Existing scripts which pass flags to the
compiler must be modified to add "-o" as the last flag.  As noted in the
cover letter for this patch series, I'm open to considering alternatives
if this is unacceptable.

Signed-off-by: Kevin Locke <kevin at kevinlocke.name>
---
 Makefile                          | 2 +-
 tools/configurator/configurator.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 127b875..f36ccb5 100644
--- a/Makefile
+++ b/Makefile
@@ -89,7 +89,7 @@ FORCE:
 
 # Ensure we don't end up with empty file if configurator fails!
 config.h: tools/configurator/configurator Makefile Makefile-ccan
-	tools/configurator/configurator $(CC) $(CCAN_CFLAGS) > $@.tmp && mv $@.tmp $@
+	tools/configurator/configurator $(CC) $(CCAN_CFLAGS) -o > $@.tmp && mv $@.tmp $@
 
 include tools/Makefile
 -include inter-depends
diff --git a/tools/configurator/configurator.c b/tools/configurator/configurator.c
index 0c30aff..820ccf7 100644
--- a/tools/configurator/configurator.c
+++ b/tools/configurator/configurator.c
@@ -36,7 +36,7 @@
 #endif
 
 #define DEFAULT_COMPILER "cc"
-#define DEFAULT_FLAGS "-g3 -ggdb -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition"
+#define DEFAULT_FLAGS "-g3 -ggdb -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition -o"
 
 #define OUTPUT_FILE "configurator.out"
 #define INPUT_FILE "configuratortest.c"
@@ -672,7 +672,7 @@ int main(int argc, const char *argv[])
 	if (argc > 1) {
 		if (strcmp(argv[1], "--help") == 0) {
 			printf("Usage: configurator [-v] [<compiler> <flags>...]\n"
-			       "  <compiler> <flags> will have \"-o <outfile> <infile.c>\" appended\n"
+			       "  <compiler> <flags> will have \"<outfile> <infile.c>\" appended\n"
 			       "Default: %s %s\n",
 			       DEFAULT_COMPILER, DEFAULT_FLAGS);
 			exit(0);
@@ -691,7 +691,7 @@ int main(int argc, const char *argv[])
 	if (argc == 1)
 		argv = default_args;
 
-	cmd = connect_args(argv, " -o " OUTPUT_FILE " " INPUT_FILE);
+	cmd = connect_args(argv, OUTPUT_FILE " " INPUT_FILE);
 	for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)
 		run_test(cmd, &tests[i]);
 	free(cmd);
-- 
2.9.3



More information about the ccan mailing list