On Tue, Feb 16, 2016 at 9:34 AM, Nelson H. F. Beebe <be...@math.utah.edu> wrote:
...
Thank you for all of the feedback.
I agree that many of the failures are due to inadequate library
support, and we should eventually improve the tests to detect
the inferior interfaces and diagnose them as such. However,
that is not on my short list, for now.

> In addition, compilation on MacOS X 10.10 (Yosemite) and 10.11 (El
> Capitan) produces these warnings from clang masquerading as gcc:
>
>         make[3]: Entering directory 
> '/private/var/tmp/build/bare/grep-2.23/lib'
>         Makefile:1684: target '.deps/alloca.Po' given more than once in the 
> same rule
>           CC       argmatch.o

I actually wrote a patch to fix the automake bug that led to this,
but did not find the time to write a stand-alone test case.
Today, I wrote the commit log entry and am attaching the
incomplete diff (no NEWS and no test) here, in case someone
wants to help move this along before I find time.
From 7a5fb319e557a94b64785d4312ceda197e317248 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyer...@fb.com>
Date: Thu, 18 Feb 2016 09:19:44 -0800
Subject: [PATCH] do not emit rule with two .deps/alloca.Po dependents

On a system using our replacement alloca, make would emit
this warning:
  target '.deps/alloca.Po' given more than once in the same rule
That arose because automake would emit a rule depending on both
./.deps/alloca.Po and .deps/alloca.Po. Normally, duplicate
dependents are avoided by virtue of their names being keys in
the %dep_files hash, but in this case, that particular file
was specified in two different ways.
* bin/automake.in (handle_ALLOCA): When the $dir prefix is empty,
make it './', to ensure that when we add ./.deps/alloca.Po
it is deduped.
---
 bin/automake.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/bin/automake.in b/bin/automake.in
index c1d1a8a..7508bc2 100644
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -2208,6 +2208,7 @@ sub handle_ALLOCA
   $lt ||= '';
   my $dir = handle_LIBOBJS_or_ALLOCA "${lt}ALLOCA";

+  $dir eq '' and $dir = './';
   $var->requires_variables ("\@${lt}ALLOCA\@ used", $lt . 'ALLOCA');
   $dep_files{$dir . '$(DEPDIR)/alloca.P' . $myobjext} = 1;
   require_libsource_with_macro ($cond, $var, FOREIGN, 'alloca.c');
-- 
2.6.4

Reply via email to