- Include <alloca.h> even on non-__GNUC__ systems.
authorPaul Smith <psmith@gnu.org>
Sat, 3 Oct 2009 20:08:20 +0000 (20:08 +0000)
committerPaul Smith <psmith@gnu.org>
Sat, 3 Oct 2009 20:08:20 +0000 (20:08 +0000)
- Add some tests for unresolved bugs.

ChangeLog
function.c
make.h
tests/ChangeLog
tests/scripts/features/include
tests/scripts/variables/MAKE
tests/scripts/variables/MAKEFLAGS [new file with mode: 0644]

index 3b894adda6d5922a6b7b0a9da466231e383fa611..860a1f4631a7167594dafff7135c8c8494c276d7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-10-03  Paul Smith  <psmith@gnu.org>
+
+       * make.h: Include <alloca.h> even on systems where __GNUC__ is
+       defined.  Not sure why it was done the other way.
+       Requested by David Boyce <dsb@boyski.com>.
+
 2009-09-30  Boris Kolpackov  <boris@codesynthesis.com>
 
        * dep.h (dep): Add the DONTCARE bitfield.
index d3acd8b6c99da277ba5ef1d96db2c89b6cdca022..ad3e0d2dfb8b45350053d74532738f6f1909aac0 100644 (file)
@@ -382,7 +382,8 @@ string_glob (char *line)
       idx += len;
       result[idx++] = ' ';
 
-      free (chain->name);
+      /* Because we used PARSEFS_NOCACHE above, we have to free() NAME.  */
+      free ((char *)chain->name);
       free (chain);
       chain = next;
     }
diff --git a/make.h b/make.h
index 60d141293a0007bcce0ed519fa7ef1bd89ece715..f9c7e1b1d76f5c5990b2330b9b3b2d2b3792e1b7 100644 (file)
--- a/make.h
+++ b/make.h
@@ -23,28 +23,25 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #undef  HAVE_CONFIG_H
 #define HAVE_CONFIG_H 1
 
+/* Specify we want GNU source code.  This must be defined before any
+   system headers are included.  */
+
+#define _GNU_SOURCE 1
+
 /* AIX requires this to be the first thing in the file.  */
-#ifndef __GNUC__
-# if HAVE_ALLOCA_H
-#  include <alloca.h>
-# else
-#  ifdef _AIX
+#if HAVE_ALLOCA_H
+# include <alloca.h>
+#else
+# ifdef _AIX
  #pragma alloca
-#  else
-#   ifndef alloca /* predefined by HP cc +Olibcalls */
+# else
+#  ifndef alloca /* predefined by HP cc +Olibcalls */
 char *alloca ();
-#   endif
 #  endif
 # endif
 #endif
 
 
-/* Specify we want GNU source code.  This must be defined before any
-   system headers are included.  */
-
-#define _GNU_SOURCE 1
-
-
 #ifdef  CRAY
 /* This must happen before #include <signal.h> so
    that the declaration therein is changed.  */
index 77b37e3676d2f5c885beab0c856e8c65a61c6b2d..aeee9b478a490867061fa7ee49f5722240d4bc5d 100644 (file)
@@ -1,3 +1,12 @@
+2009-10-03  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/MAKE: Rewrite for new run_make_test() format.
+
+       * scripts/variables/MAKEFLAGS: Created.
+       Add test for Savannah bug #2216 (still open).
+
+       * scripts/features/include: Test for Savannah bug #102 (still open).
+
 2009-09-30  Boris Kolpackov  <boris@codesynthesis.com>
 
        * scripts/features/include: Add diagnostics issuing tests for
index 7ad4112bb2af0576820b831e56ba46f066ed11f3..ba8908cdc1e103c1db8c6770ee53f584dbfc7fdd 100644 (file)
@@ -165,4 +165,15 @@ baz: end
 #MAKE#: *** No rule to make target `end', needed by `baz'.  Stop.\n",
 512);
 
+if ($all_tests) {
+    # Test that include of a rebuild-able file doesn't show a warning
+    # Savannah bug #102
+    run_make_test(q!
+include foo
+foo: ; @echo foo = bar > $@
+!,
+                  '', "#MAKE#: `foo' is up to date.\n");
+    rmfiles('foo');
+}
+
 1;
index 079c57eb5c24b908f04915d9685da3be66f60f81..d1081dac13aacc08304f071293898db5de1ef525 100644 (file)
@@ -1,35 +1,24 @@
 #                                                                   -*-perl-*-
 
-$description = "The following test creates a makefile to test MAKE \n"
-              ."(very generic)";
+$description = "Test proper behavior of the MAKE variable";
 
 $details = "DETAILS";
 
-open(MAKEFILE,"> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE "TMP  := \$(MAKE)\n";
-print MAKEFILE "MAKE := \$(subst X=\$(X),,\$(MAKE))\n\n";
-print MAKEFILE "all:\n";
-print MAKEFILE "\t\@echo \$(TMP)\n";
-print MAKEFILE "\t\$(MAKE) -f $makefile foo\n\n";
-print MAKEFILE "foo:\n";
-print MAKEFILE "\t\@echo \$(MAKE)\n";
-
-# END of Contents of MAKEFILE
-
-close(MAKEFILE);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "$mkpath\n$mkpath -f $makefile foo\n"
-       . "${make_name}[1]: Entering directory `$pwd'\n"
-       . "$mkpath\n${make_name}[1]: Leaving directory `$pwd'\n";
-
-&run_make_with_options($makefile,"",&get_logfile,0);
-
-&rmfiles("foo");
-# COMPARE RESULTS
-&compare_output($answer,&get_logfile(1));
+run_make_test(q!
+TMP  := $(MAKE)
+MAKE := $(subst X=$(X),,$(MAKE))
+all:
+       @echo $(TMP)
+       $(MAKE) -f #MAKEFILE# foo
+
+foo:
+       @echo $(MAKE)
+!,
+              '',
+              "#MAKEPATH#\n#MAKEPATH# -f #MAKEFILE# foo\n"
+              . "#MAKE#[1]: Entering directory `#PWD#'\n"
+              . "#MAKEPATH#\n#MAKE#[1]: Leaving directory `#PWD#'\n");
+
+rmfiles("foo");
 
 1;
diff --git a/tests/scripts/variables/MAKEFLAGS b/tests/scripts/variables/MAKEFLAGS
new file mode 100644 (file)
index 0000000..0b567e8
--- /dev/null
@@ -0,0 +1,43 @@
+#                                                                   -*-perl-*-
+
+$description = "Test proper behavior of MAKEFLAGS";
+
+$details = "DETAILS";
+
+# Normal flags aren't prefixed with "-"
+run_make_test(q!
+all: ; @echo $(MAKEFLAGS)
+!,
+              '-e -r -R', 'Rre');
+
+# Long arguments mean everything is prefixed with "-"
+run_make_test(q!
+all: ; @echo $(MAKEFLAGS)
+!,
+              '--no-print-directory -e -r -R', '--no-print-directory -Rre');
+
+
+if ($all_tests) {
+    # Recursive invocations of make should accumulate MAKEFLAGS values.
+    # Savannah bug #2216
+    run_make_test(q!
+MSG = Fails
+all:
+       @echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
+       @MSG=Works $(MAKE) -e -f #MAKEFILE# jump
+jump:
+       @echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
+       @$(MAKE) -f #MAKEFILE# print
+print:
+       @echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
+       @echo $(MSG)
+.PHONY: all jump print
+!,
+                  '--no-print-directory',
+                  'all: MAKEFLAGS= --no-print-directory
+jump: MAKEFLAGS= --no-print-directory -e
+print: MAKEFLAGS= --no-print-directory -e
+Works');
+}
+
+1;