From 97f106fa105b5d776fb0d6ce3b60493d25f825f4 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Thu, 1 Jul 2010 07:16:00 +0000 Subject: [PATCH] - Add whitespace to command line invocation in features/recursion - Set up .FEATURES with separate calls for optional features, as some compilers don't like conditionals inside macro invocations. --- ChangeLog | 6 ++++++ main.c | 23 ++++++++++++++++------- tests/ChangeLog | 7 ++++++- tests/scripts/features/recursion | 2 +- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 58eb673b..0768309c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-07-01 Paul Smith + + * main.c (main): Append optional features using separate calls. + Not as efficient but not all compilers allow conditionals inside + macro calls. Fixes Savannah bug #29244. + 2010-01-10 Paul Smith * make.h (patheq): Rename strieq() to patheq() for clarity. diff --git a/main.c b/main.c index f45f6086..20b445a0 100644 --- a/main.c +++ b/main.c @@ -1124,20 +1124,25 @@ main (int argc, char **argv, char **envp) /* define_variable_cname (".TARGETS", "", o_default, 0)->special = 1; */ define_variable_cname (".RECIPEPREFIX", "", o_default, 0)->special = 1; - /* Set up .FEATURES */ + /* Set up .FEATURES + We must do this in multiple calls because define_variable_cname() is + a macro and some compilers (MSVC) don't like conditionals in macros. */ define_variable_cname (".FEATURES", "target-specific order-only second-expansion else-if" - "shortest-stem undefine" + " shortest-stem undefine", + o_default, 0); #ifndef NO_ARCHIVES - "archives" + do_variable_definition (NILF, ".FEATURES", "archives", + o_default, f_append, 0); #endif #ifdef MAKE_JOBSERVER - "jobserver" + do_variable_definition (NILF, ".FEATURES", "jobserver", + o_default, f_append, 0); #endif #ifdef MAKE_SYMLINKS - "check-symlink" + do_variable_definition (NILF, ".FEATURES", "check-symlink", + o_default, f_append, 0); #endif - , o_default, 0); /* Read in variables from the environment. It is important that this be done before $(MAKE) is figured out so its definitions will not be @@ -3182,7 +3187,11 @@ die (int status) directory. Must wait until after remove_intermediates(), or unlinks of relative pathnames fail. */ if (directory_before_chdir != 0) - chdir (directory_before_chdir); + { + /* If it fails we don't care: shut up GCC. */ + int _x; + _x = chdir (directory_before_chdir); + } log_working_directory (0); } diff --git a/tests/ChangeLog b/tests/ChangeLog index eaacaece..c8f3aab2 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2010-07-01 Paul Smith + + * scripts/features/recursion: Add a space to separate command-line + args. Fixes Savannah bug #29968. + 2009-11-12 Boris Kolpackov * scripts/features/vpath3: Test for the new library search @@ -6,7 +11,7 @@ 2009-10-06 Boris Kolpackov * scripts/features/se_explicit: Enable the test for now fixed - savannah bug 25780. + Savannah bug 25780. 2009-10-06 Boris Kolpackov diff --git a/tests/scripts/features/recursion b/tests/scripts/features/recursion index b9dfd4f4..a6b8f909 100644 --- a/tests/scripts/features/recursion +++ b/tests/scripts/features/recursion @@ -16,7 +16,7 @@ last: @echo MAKELEVEL = $(MAKELEVEL) @echo THE END ', - ('CFLAGS=-O -w' . ($parallel_jobs ? '-j 2' : '')), + ('CFLAGS=-O -w' . ($parallel_jobs ? ' -j 2' : '')), ($vos ? "#MAKE#: Entering directory `#PWD#' make 'CFLAGS=-O' -f #MAKEFILE# foo