[bug #16051] Non-existent prerequisites are not included in $?

2006-09-30 Thread Paul D. Smith

Update of bug #16051 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #3:

I've re-added this fix.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?16051

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: typos

2006-09-30 Thread Paul D. Smith
On Sunday, 6 August, Ralf Wildenhues ([EMAIL PROTECTED]) wrote:

 I noticed a couple of typos in the make manual.

I installed fixes for these.  Thanks!

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17740] make fails without any message

2006-10-05 Thread Paul D. Smith

Follow-up Comment #3, bug #17740 (project make):

Someone who sees this problem will need to either provide a reproducible test
case, or a description clear enough to allow me to create one.  Based on the
information in this bug I tried this:

  include foo.d
  foo.d: foo.x ; : cp $ $@
  all: ; : all

Then touch foo.d... but it didn't show the behavior you describe:

  $ touch foo.d
  $ make
  make: *** No rule to make target `foo.x', needed by `foo.d'.  
  Stop.
  $ /opt/src/make/old/make-3.81/make --version
  GNU Make 3.81
  Copyright (C) 2006  Free Software Foundation, Inc.
...

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?17740

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18116] filter_out functions seems to always return an empty result

2006-10-26 Thread Paul D. Smith

Update of bug #18116 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

As Philip says, the problem is in the makefile.  If you still have issues
after correcting that, post it here.

Cheers!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18116

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18139] make chooses wrong pattern rule

2006-10-28 Thread Paul D. Smith

Follow-up Comment #2, bug #18139 (project make):

It's not true that this is a Windows-only thing.  I reproduced it on my Linux
system.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18139

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18139] make chooses wrong pattern rule

2006-10-30 Thread Paul D. Smith

Follow-up Comment #5, bug #18139 (project make):

Boris, I don't see why %.o being intermediate makes a difference.  Make can
and does chain implicit rules.  I re-read the section on chaining and I don't
see anything that would contradict the basic premise of chaining, which is
that the length of the chain doesn't matter, only the order in which they're
defined in the makefile.  Of course I could be forgetting something.

I realize that just because someone works differently in 3.81 doesn't mean
it's broken; however in this case I really do think that 3.80 was correct...
unless, as I mentioned, I'm missing some special case.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18139

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18124] make-3.81 isn't parallel build safe

2006-10-30 Thread Paul D. Smith

Follow-up Comment #2, bug #18124 (project make):

FYI, there's some conversation on this bug over in the Red Hat Bugzilla
database.  I don't understand the bug and the patch doesn't enlighten me, so
I'm asking for some more detail.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18124

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18139] make chooses wrong pattern rule

2006-10-30 Thread Paul D. Smith

Follow-up Comment #8, bug #18139 (project make):

Hm.  Boris, is that the way it's always worked or is it something we changed
recently?  According to the docs as far as I can tell there's no such
distinction between rules that require intermediates and those that don't. 
In fact, it seems pretty clear that this distinction is not intended; the
docs on chaining say:

There are some special implicit rules to optimize certain cases that
 would otherwise be handled by rule chains.  For example, making `foo'
 from `foo.c' could be handled by compiling and linking with separate
 chained rules, using `foo.o' as an intermediate file.  But what
 actually happens is that a special rule for this case does the
 compilation and linking with a single `cc' command.  The optimized rule
 is used in preference to the step-by-step chain because it comes
 earlier in the ordering of rules.

The last sentence would not be necessary if the two passes model were in
place, since the no intermediates path would be chosen regardless of which
order it appeared in.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18139

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-10-30 Thread Paul D. Smith

Follow-up Comment #10, bug #15919 (project make):

Hi Icarus.  The easiest way to get a patch into GNU make is to attach it to
the bug report and/or create a separate patch item (the first is preferred). 
We'll review it and apply it as-is or else discuss it with you if necessary.

Also, if the patch involves significant amounts of new code you will need to
assign copyright to the FSF, and your employer will also need to do so if
you're employed for programming at all.  If you're concerned about this
contact me to discuss it.

Thanks for making the effort to fix this!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18173] Modification of search pattern for default make rule files

2006-11-01 Thread Paul D. Smith

Update of bug #18173 (project make):

 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

Heh.  Cute :-)

Feel free to use some other software to do your builds.  We won't be
offended.  We promise.

Cheers!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18173

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-11-12 Thread Paul D. Smith

Follow-up Comment #12, bug #15919 (project make):

Thanks Icarus; that's great.  Especially new testcases: that always helps. 
One thing: in general I like to have the ChangeLog entry describe what the
change does and how it fixes things, rather than just describing the symptoms
of the bug.  Do you have any comments on how this change fixes the problem, or
why it manifests during -j2 in particular?  Thanks!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18312] $(eval) within conditionals causes make to stop with syntax error

2006-11-15 Thread Paul D. Smith

Update of bug #18312 (project make):

  Status:None = Duplicate  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

This bug was already fixed in GNU make 3.81.  Thanks for the report!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18312

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17881] Better documentation of make rules

2006-11-21 Thread Paul D. Smith

Follow-up Comment #2, bug #17881 (project make):

Actually, make _does_ guarantee that rules will be processed in left-to-right
order.  If you never use parallelism, you can be sure your rules will always
run in that order.

If you do use parallelism, though, obviously more than one of these rules
will run at the same time.  Even though make still starts them in
left-to-right order in the makefile, it's up to your operating system to
schedule the programs.  In this case it's almost certain that commands to
build the second target will start before the commands to build the first
have completed.

I'm sure you're aware of this.  However, saying the order is insignificant
is not exactly correct.  Saying that it is unreliable during parallel builds
is better.

As for Howard's suggestion, that suggestion has been made before and I think
it's a good one.  However, it's not completely trivial to implement.  For one
thing, we can't afford to change the values of variables such as $, or even
$^ in some cases, so make would have to keep a separate list of prereqs to
run vs. prereqs used in automatic variables.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?17881

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18369] pattern rules don't work with spaces in filenames

2006-11-25 Thread Paul D. Smith

Update of bug #18369 (project make):

  Status:None = Duplicate  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

The short answer is, GNU make doesn't handle filenames with spaces in them. 
Make is really not a filename manipulator, it's a string parser.  And it uses
whitespace to delimit strings in all aspects of its implementation and
behavior.

Anyway, this is a duplicate of bug #712

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18369

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18396] stack size setrlimit call interacts badly with Solaris/x86 kernel bug

2006-11-28 Thread Paul D. Smith

Update of bug #18396 (project make):

  Item Group: Bug = Enhancement

___

Follow-up Comment #1:

 If 'make' needs to allocate a large amount (megabytes) of data,
 it would be better to do so on the heap, both from a
 portability standpoint (the stack size) and from a performance
 standpoint (it messes up the normally good locality of stack
 access).

 Alternatively, if it must allocate on the stack, then detecting
 and complaining about a too-low limit would be better in my
 opinion than silently changing it. It's easy to uncap the stack
 size explicitly in build scripts and whatnot when truly
 necessary.

Unfortunately, none of the above is true.  Make needs extra stack space
because it makes extensive use of the alloca() function.  It does not
allocate huge chunks of memory on the stack: if large amounts of memory are
needed they are allocated on the stack.  alloca() is used for modest-sized
memory chunks, to hold filenames and smaller strings (make is, at heart, a
string manipulation program).  Using heap, which requires a system call to
get more memory, for all of these small allocations would be much less
efficient than using the stack.  Not to mention the overhead of having to
allocate these memory segments to be used for a short time, then freeing them
again, over and over.

However, because make is also very recursive, even though no single alloca()
call is very large it's quite possible for the entirety of the alloca()
invocations for a complex makefile to use quite a bit of stack.

Of course, there's no way to determine how much stack will be used a priori,
since it depends entirely on the construction of the makefile, exactly which
functions are invoked in which order, and even the current state of the build
(whether various targets need to be rebuilt or not).  Further, there is no
portable way that I'm aware of to determine how much stack is left before the
program runs out.

Finally, there is no way to detect an out of stack error and exit gracefully
with a warning as you suggest: the behavior of alloca() is undefined if you
run out of stack space (it doesn't just return NULL as malloc() etc. do).

So.  In order to avoid the need for extra stack in GNU make all the
invocations of alloca() would need to be rewritten to use xmalloc(), and
those functions would need to be changed to be careful to free all that
memory whenever the function exited to avoid memory leaks... with what must
certainly be a decrease in performance (although of how much we can't be
sure).

On the other hand, as you point out, the problem on Solaris is a bug in the
kernel which you can hardly blame GNU make for.

However, your point about programs invoked by make inheriting the setrlimit()
is definitely something that seems problematic.  Perhaps GNU make could change
the stack limit back to what it was after it forks but before it execs its
child.  I wonder what happens if you change a limit to something too small
for the current processes resources?

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18396

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18396] stack size setrlimit call interacts badly with Solaris/x86 kernel bug

2006-11-28 Thread Paul D. Smith

Follow-up Comment #2, bug #18396 (project make):

I wrote:

 if large amounts of memory are needed they are allocated on the stack

Of course I meant on the _heap_ :-/.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18396

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18517] Compilation error in find_directory() in dir.c on Windows platforms

2006-12-13 Thread Paul D. Smith

Update of bug #18517 (project make):

  Status:None = Later  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

Hi all.

The make source code is undergoing some relatively major contortions right
now as I wrestle it to an ISO C standard behavior and throw out support for
KR C.  Along with this is a change to use the strcache capability I added in
the last release, throughout the entire codebase to greatly reduce the amount
of memory used by make and hopefully, in some cases at least, increase the
efficiency.  The changes you see currently in CVS are minor compared to the
ones I have locally in my workspace(s).  The good news is that this work is
almost done and as of last weekend my current version passes all the
regression tests again!  I'm adding some validation code and checking things
with valgrind, etc. but the end appears to be in sight.

The bad news is that since I don't have any Windows systems available to me
to test on (ditto for VMS, Amiga, etc.) those ports have definitely rotted
somewhat.  I fully expect there will be many instances of this sort of
problem, where strings were made constant in the POSIX port but now some love
has to be applied in the other ports.  I don't think it's really productive to
begin this debugging until I've committed all the changes I have locally.

In short, at the moment I will have to simply state that the CVS tree is
known not to be stable for non-POSIX operating systems.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18517

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18680] fix for bug#2846 does not work as expected, still hang sometimes

2007-01-03 Thread Paul D. Smith

Update of bug #18680 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

Doh!  Silly.  As a lame excuse I'll mention that the original fix was for
situations where errno was not 0 _before_ invoking the macro, not where it
was set to 0 inside the macro.  However it should have been obvious that the
latter was necessary as well.

Fix applied.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18680

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18872] problem colon after drive letter in prerequisite

2007-01-28 Thread Paul D. Smith

Update of bug #18872 (project make):

  Status:None = Fixed  
 Open/Closed:Open = Closed 
   Component Version:None = 3.81   
   Fixed Release:None = CVS

___

Follow-up Comment #2:

Only project admins can change the state of a bug (so you can't re-open it). 
If GCC is generated drive-lettered pathnames in a cygwin environment that is
arguably a bug in GCC on Cygwin; you should report it to either or both GCC
or Cygwin.

However, as Eli points out there has already been a change incorporated to
allow GNU make on Cygwin to handle drive letters properly (for some
definition of properly).  This change will be available in the next release
of GNU make.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18872

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18561] Why backslash line continuation introduce an extra space

2007-01-29 Thread Paul D. Smith

Update of bug #18561 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

It is by design; in fact it's mandated by the POSIX standard for make, which
states:

 When an escaped newline (one preceded by a backslash) is found
 anywhere in the makefile except in a command line, it shall be
 replaced, along with any leading white space on the following
 line, with a single space.

Since there is no limit to the length of a physical line in a makefile in GNU
make, I suggest you only break physical lines at whitespace.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18561

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18641] GNUmake 3.81, $(error ) sometimes unable to stop make process

2007-01-29 Thread Paul D. Smith

Update of bug #18641 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

I understand that this is an undocumented change in behavior.  However, I
think the new behavior is consistent with the documentation... if the user
suggests that the file does not need to exist for inclusion via -include
then it makes sense to me that a failure to build that file should not cause
make to exit.

I think what you really want is a solution to bug #102, so that you can have
mandatory include files but not get any warnings/errors unless they really
can't be built.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18641

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18641] GNUmake 3.81, $(error ) sometimes unable to stop make process

2007-01-29 Thread Paul D. Smith

Follow-up Comment #4, bug #18641 (project make):

The method for auto-generating dependencies described in the GNU make manual
is not the state-of-the-art method.  You should check my website
http://make.paulandlesley.org and look at the advanced auto-dependency
generation description there.  This process was created fro automake by Tom
Tromey and it's much superior to the process in the GNU make manual.  And, it
doesn't suffer from this issue of invalid warnings.

The solution to the problem is just as described in bug #102; the message
about makefiles not being rebuildable would be deferred until after the
makefile has tried to be created and only printed if it couldn't be.  I don't
see any issue with backward compatibility in this.

I took a very quick look at the SF page but there wasn't much there: no
homepage, no docs that I could find, etc.  If you want to discuss it,
probably the help-make@gnu.org mailing list is the best place.  Cheers!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18641

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18963] -include suppressing errors for too long?

2007-02-06 Thread Paul D. Smith

Update of bug #18963 (project make):

  Item Group: Bug = Documentation  

___

Follow-up Comment #3:

I can see that the documentation is not clear enough.  Perhaps it is trying
to be too stylized, to the point of obscuring its intent.

What the docs should say is: any included makefile (by either include or
-include), whether it exists or not, will be considered a target and make
will try to update it.  If the makefile exists and the update succeeds (this
includes the case where make does not have any rules to update the makefile),
then it is included.

If the update of the makefile fails then if it was include'd,  (although I
think it might be a duplicmake will fail; if it was -include'd, make will
ignore the error and continue on.  An update failing can be because the
makefile does not exist and make has no rule to build it; or because the
rules needed to build the makefile (or any of its prerequisites of course)
failed--regardless of whether the makefile exists or not.

I'm changing this to a doc bug.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18963

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19015] Initialisation of variable to ls and find fails with **missing separator

2007-02-10 Thread Paul D. Smith

Update of bug #19015 (project make):

  Status:None = Works for me   
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

Sorry, but this is not reproducible, and doesn't even make sense.  There's
nothing in the code that would treat any of these values specially.

You must have some issue in your makefile which is causing this; please
attach a sample makefile (don't cut and paste the contents as that will
change them).  Also always provide info on the operating system you're using
and what version it is, etc.

I'm closing this bug for now; if you have more information please add it and
I'll re-open.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19015

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18995] variable origin changes upon export or unexport

2007-02-10 Thread Paul D. Smith

Update of bug #18995 (project make):

  Item Group:None = Enhancement
Operating System:None = Any

___

Follow-up Comment #1:

Internally to make, an undefined origin means that the variable is not
known to make (when make looks it up in its internal tables, nothing is
found).

Obviously, once you export or unexport a variable, it has to be added to
make's internal tables so make can remember that you marked it as exported or
unexported... so then it's no longer undefined.

I can understand your point, however.  I've marked this as an enhancement
request.  It shouldn't be too difficult to implement: a new origin value for
undefined would need to be added, which is easy... but then all the places
the origin is used would need to be examined to determine if or how they
should react when a variable in this new state is found.

This would also allow us to create a way to undefine a variable; currently
once a variable is defined it can never go back to the undefined state again.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18995

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19035] Make recompiles source files eventhough the files are not modified

2007-02-12 Thread Paul D. Smith

Follow-up Comment #1, bug #19035 (project make):

Sorry, but there's nothing we can do unless you provide more details, such as
a small example of a makefile that does not work properly for you.

Note that Solaris and HP contain SystemV make; GNU make is not intended to be
a 100% compatible replacement for SystemV make.  GNU make is an implementation
of POSIX-standard make, with many (MANY) extensions.  Just because your
makefile works with Solaris and HP make does not automatically mean it will
work with GNU make--it all depends on what SystemV special features you may
be using, etc.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19035

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19183] double-colon pattern rules

2007-03-02 Thread Paul D. Smith

Update of bug #19183 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

This is not a bug.  Double colon implicit rules have a different meaning than
double-colon explicit rules.  See the section Match-Anything Pattern Rules
in the GNU make manual.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19183

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19236] Imported variable with trailing backslash messes up make's line parsing in nested evaluations

2007-03-08 Thread Paul D. Smith

Update of bug #19236 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

I agree this is unpleasant; however I don't see anything make can do about
it.  Eval works by first expanding its argument(s), then evaluating the
result.  In your example, after the expansion of $(Y) make sees:

ifeq (1,1)
B := X\
endif

and there's no possible way that the eval can know that this backslash was
originally contained in the variable A, rather than being written directly by
you.

The only solution to this is for YOU to be more cautious about when you allow
variables to expand.  If you defer the expansion of A so that it's done by the
eval itself instead of being done up front before eval is invoked, then you'll
get the behavior you want; change the definition of Y as follows:

define Y
ifeq (1,1)
B := $$(A)
endif
endef

By using $$(A), it won't expand during the expansion of Y, and eval will see
this:

ifeq (1,1)
B := $(A)
endif

with no backslash... THEN when eval evaluates this IT will expand A and set B
to the right value (X\).  For your real life example this would translate
to:

define $(COMP)_CUSTOM_WX_TARGET
ifneq ($(filter bcb%,$(TOOLSET)),)
$(1): export PATH := $(BCCDIR)bin;$$(PATH)
endif
endef

Although, as a general rule, I find it best to defer expansion of ALL
variables other than those that require it (typically as part of a call), so
the above might be more safely written:

define $(COMP)_CUSTOM_WX_TARGET
ifneq ($$(filter bcb%,$$(TOOLSET)),)
$(1): export PATH := $$(BCCDIR)bin;$$(PATH)
endif
endef

I'm closing this for now but if anyone has any ideas on how to make this work
better please add a note or bring it up on the mailing lists.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19236

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19309] parallel make issue with archive members

2007-03-21 Thread Paul D. Smith

Update of bug #19309 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

This is not a bug, and is not related to parallel make; you're using VPATH
incorrectly.  Paul's Third Rule of Makefiles states that you should never use
VPATH to find TARGETS.  VPATH is only usable to find SOURCES.

Read my discussion of VPATH here to learn why your example works the way it
does:

http://make.paulandlesley.org/vpath.html

You're also violating Paul's Second Rule of Makefiles, in this rule:

  .cc.o :
$(CXX) $(CXX_FLAGS) $(INCLUDES) -c -o $(DEST)/$@ $

ANY time you see a rule where it's constructing a target that is not EXACTLY
$@, you know the rule is incorrect.  Here you're building $(DEST)/$@, not
$@, so your rule is incorrect.

If you rework your example to use VPATH, etc. properly and still see
problems, please file a note with this bug and we can re-open it.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19309

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19626] Unexpected environment variable modification in command

2007-04-18 Thread Paul D. Smith

Update of bug #19626 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

This is the way make is documented to work; from the GNU make manual, section
Variables from the Environment:

   When `make' runs a command script, variables defined in the makefile
are placed into the environment of that command.  This allows you to
pass values to sub-`make' invocations (*note Recursive Use of `make':
Recursion.).  By default, only variables that came from the environment
or the command line are passed to recursive invocations.  You can use
the `export' directive to pass other variables.  *Note Communicating
Variables to a Sub-`make': Variables/Recursion, for full details.


With the single exception of the SHELL variable, all environment variables
are imported as make variables when make starts, and automatically marked as
exported so that when make runs a command their current values will be
exported into the environment of the command.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19626

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16389] Defaults for Objective-C

2007-04-18 Thread Paul D. Smith

Follow-up Comment #2, bug #16389 (project make):

I don't really understand the urgency around this: why not just add the rules
into your makefile if you need them?  The built-in rules are just that:
built-in; they can be added to or removed in makefiles.

I do realize this means that any makefile that uses objective-C needs to be
changed, but the same is true for any number of other languages that make
doesn't provide default rules for.

Further, even if we do change this for the next release of GNU make that
won't be out for some months, then it will be many months more before that
version is considered wide spread (I know of distros that still ship GNU make
3.79.1, and MANY that still use 3.80 more than a year after 3.81 was
released).

And finally, of course, requiring default rules just means makefiles are even
more tightly tied to GNU make (since no other make provides these default
rules as far as I know).

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?16389

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19656] strcmpi does not exist on my system, better use strcasecmp instead

2007-04-21 Thread Paul D. Smith

Follow-up Comment #1, bug #19656 (project make):

Can you please provide the error messages you received?  As far as I know GNU
make sources don't use strcmpi() except when compiling for non-POSIX systems.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19656

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19448] Re-exec after include file rebuild is more dependent on filesystem timestamps than strictly necessary.

2007-04-27 Thread Paul D. Smith

Follow-up Comment #3, bug #19448 (project make):

Sorry, but you're incorrect about the way original UNIX make worked.  In
fact, every version of make that I'm familiar with does and has always
considered equal timestamps as up to date.  The POSIX standard for make is
quite clear about this as well:

A target is considered out-of-date if it is older than any of its
prerequisites or if it does not exist.

And also:

The make utility examines time relationships and shall update those derived
files (called targets) that have modified times earlier than the modified
times of the files (called prerequisites) from which they are derived.

It's also incorrect to classify this behavior as a recent change in GNU make;
GNU make has always worked this way.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19448

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19448] Re-exec after include file rebuild is more dependent on filesystem timestamps than strictly necessary.

2007-04-30 Thread Paul D. Smith

Follow-up Comment #6, bug #19448 (project make):

In fact, your original idea of passing -W foo for each included file foo
so that the re-invoked make would realize it should not be built again WAS
implemented (by me) in an earlier version of GNU make.

However, it lasted only a few days out in the wild, because it immediately
hit build environments where many hundreds or even thousands of files were
included... and the re-exec of make failed because the environment was not
sufficiently large to be able to pass all those options through exec!

Considering there is really no way to ensure that you have enough space for
all possible uses, I took that code back out and reverted to the original
(and still current) behavior.

However, recently a new suggestion has been made which would enhance make to
understand @-files, which are apparently becoming more common even on some
UNIX platforms as a way to pass large numbers of arguments.  If that feature
was added to GNU make then make could take advantage of it to propagate the
-W flags in a way that wouldn't blow out the environment.  See patch #5809

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19448

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19035] Make recompiles source files eventhough the files are not modified

2007-04-30 Thread Paul D. Smith

Update of bug #19035 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19035

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18617] Better debugging facilities: tracing rule invocation.

2007-05-11 Thread Paul D. Smith

Update of bug #18617 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
Operating System:None = Any
   Fixed Release:None = CVS

___

Follow-up Comment #3:

I added a new debug statement to the basic debug output that specifies
where the command script was found for a given target, when make starts to
build that target.  For commands found in a makefile you get:

Invoking commands from makefile:lineno to update target `target'.

For builtin commands, you get:

Invoking builtin commands to update target `target'.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18617

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19900] Target-specific variables not honored for rules generated by $(eval)

2007-05-18 Thread Paul D. Smith

Update of bug #19900 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #3:

Closed.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19900

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #19975] Add function: $(mtime foo.c) - 1180203683

2007-05-29 Thread Paul D. Smith

Follow-up Comment #2, bug #19975 (project make):

Note that GNU make has received a Google Summer of Code project, to implement
the ability for users to customize the out of date algorithm used by make. 
You might consider waiting a couple of months and see what comes of that by
the end of the summer.  I have high hopes that it will be flexible and
powerful enough to provide all the functionality people need to implement
various algorithms including things like comparing stored stat(2) info as
well as .KEEP_STATE capabilities.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?19975

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20033] parallel (-j2) make with $(eval) construct segfaults

2007-06-13 Thread Paul D. Smith

Update of bug #20033 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #4:

OK, I found it.  I'm still not 100% sure why it makes a difference between
parallel and non-parallel jobs but I think I understand it.  The attached
patch definitely seems to fix the problem.

(file #13043)
___

Additional Item Attachment:

File name: 20033.diff Size:1 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20033

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20067] Unescaped meta characters in makefile database outputs

2007-06-13 Thread Paul D. Smith

Update of bug #20067 (project make):

  Item Group: Bug = Enhancement


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20067

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20018] Several inaccuracies/miswordings/typos in (texinfo) manual

2007-06-13 Thread Paul D. Smith

Update of bug #20018 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

 3.5 The Variable `MAKEFILE_LIST'
Already fixed (bug #16304)

 3.9 How `make' Reads a Makefile
Good catch; fixed this one.

 4.2 Rule Syntax
Fixed a while ago.

 4.9 Special Built-in Target Names
Fixed a few weeks ago.


Thanks for the report!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20018

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20133] 'make -p' always uses ':=' for pattern-specific variable assignments

2007-06-14 Thread Paul D. Smith

Follow-up Comment #1, bug #20133 (project make):

I looked at this briefly and it's tough.  In order to get the proper behavior
for the target-specific variables, make has to modify the way the variable is
stored; once that happens it's pretty hard to reconstruct the way the
variable originally appeared in the makefile.

I'll look at it more closely; there might be a way to get back the original
info.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20133

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20394] vpath directive drops entries

2007-07-07 Thread Paul D. Smith

Follow-up Comment #2, bug #20394 (project make):

It's not exactly correct to say that GNU make caches directories from the
10th on, but you're on exactly the right track; thanks for the note.

What make actually does is cache EVERY directory... BUT it caches them
lazily, AND it only allows 10 directories to be open at any one time. 
Basically, when make wants to check a file in a directory it opens the
directory for reading and looks for that file.  As it reads the directory it
caches the contents.  Once the file is found, it leaves the directory open
but stops reading.  If make looks for another file in that directory and it's
not in the cache, make continues reading (and caching) where it left off.  If
it gets to the end of the directory it closes the directory.

In order to avoid too many directories being open by make at one time, if
make gets to a point where more than 10 directories are open, it will
completely read and cache the current (latest) directory, then close it.

The issue of make's caching is well-known (see bug #443 for example).  In
your case it takes an odd twist but this is definitely the issue.  A
completely correctly-written makefile shouldn't run across cache problems,
but I recognize there are situations where it's not possible to write that
makefile.  However, in your case I think you can do what you want.  Change
your makefile like this:


LIBS := $(patsubst %,-l%,$(SUBDIRS))
LIBTARGETS := $(foreach L,$(LIBS),$(L)/lib$(L).a)

all: $(TARGET)

$(TARGET): $(LIBTARGETS)
$(CC) -o $@ $(LIBDIRS) $(LIBS)

$(LIBTARGETS): FORCE
$(MAKE) -w -C $(@D) -f Makefile $(MAKECMDGOALS)
FORCE:


This has some other advantages over the method you were using (for one thing,
your example does not work properly if any of the sub-makes fail).

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20394

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20394] vpath directive drops entries

2007-07-10 Thread Paul D. Smith

Follow-up Comment #4, bug #20394 (project make):

Something like that could be tricky to accomplish, since make is highly
recursive: when make starts checking for timestamps on files it doesn't know
whether that file was found using implicit or explicit rules, etc.

Plus, I think it would be even more confusing to have some kinds of targets
(implicit) behave unexpectedly while others (explicit) behaved as expected,
but more slowly.

To fix this problem we need to add a way to determine if the cache is stale.

My idea on how to do this is for make to keep a counter that is incremented
every time make invokes a subprocess.  Or maybe, from a correctness point of
view, it should be updated every time a subprocess _finishes_.  Then when a
directory was cached it would store the current value of that counter.  The
next time the cached data was consulted, if the current counter was greater
than the stored counter the cache would be considered stale and new data
would be read.

This would significantly reduce the efficiency of the cache, but it would
increase correctness and the cache would still be useful while make is
looking for things to build--for situations where there's very little or
nothing to do the cache would still be a big win.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20394

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2007-07-10 Thread Paul D. Smith

Follow-up Comment #20, bug #15919 (project make):

OK, I went through both this bug and bug 3330 last night, and I do see the
problem; thanks for all your work and the patch you provided Icarus.

However, I'm not entirely sure that the way you solved this problem is the
best one.  Setting the state of the intermediate file to cs_not_started seems
incorrect to me; it does seem to solve the problem, at least for the cases
described in these bug reports, but it means that after we're done the
intermediate file is marked as not started which I'm not sure is correct.

Also, I do see J. David's issue with a pattern rule invoked twice on my
vanilla CVS head tree with the original patch applied.

I have an alternative change that feels more correct: after all the prereqs
of the intermediate file are done, if we don't need to make the intermediate
file then we call notice_finished_file() on it to complete it.  With this
patch, J. David's example works correctly as do the other examples in both
this bug and bug 3330.

I attach the code change only here: obviously the real fix will involve
change logs, test cases, etc.  I think your idea of having a timeout is a
good one, Icarus, but I think I will make it general so that EVERY test we
run has a timeout; these can be modified on a per test basis of course.

Please let me know whether this patch solves all the issues you have in real
life and any other comments you have.

(file #13283)
___

Additional Item Attachment:



___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20394] vpath directive drops entries

2007-07-12 Thread Paul D. Smith

Follow-up Comment #6, bug #20394 (project make):

I haven't looked into it carefully, but it's not immediately clear to me that
it's a simple thing to avoid the directory cache for chained/intermediate
rules, vs. any other kind of rule.

The disadvantage with the is_stale boolean is that every time something
goes stale you have to walk through the entire cache and reset all the
boolean values.

If you use a counter then you don't have to touch anything in the cache until
and unless you need to look at that cached data, then you compare (and update)
the counter kept with that set of data.

It may be that our caches are not large enough to make a difference,
practically speaking; I'm not sure.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20394

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20452] Incorrect use of variable_buffer_output() in expand_deps() [file.c]

2007-07-13 Thread Paul D. Smith

Update of bug #20452 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

You're absolutely right.  Good catch.  One note: your fix for the second case
is incorrect; it should be:

d-name = strcache_add_len (variable_buffer, o - variable_buffer);


Patch attached.

(file #13338)
___

Additional Item Attachment:



___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20452

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


RE: problem

2007-07-28 Thread Paul D. Smith
Gupta, Sonia (Product Engineering Services, Mumbai) writes:

  While doing qmake calculator.pro we get an error Qfile:: file not
  specified.atleast 100 times. Can you tell us why is that.

No.  This list is for discussion of bugs and issues with building and
using GNU make itself.

First, unless you made a typo, you are using qmake, which is not GNU
make.

Second, even if you're really using GNU make your problem is with the
code you're trying to build (missing headers, librarires, etc.) and
not with GNU make itself.  You'll have to ask on a mailing list
dedicated to the software you're trying to build.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2007-08-15 Thread Paul D. Smith

Update of bug #15919 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #22:

OK, I did a bunch more testing and created test cases to cover all the
aspects of this bug reported here and in 3330.  Fix committed.  Thanks to both
of you for your work on this issue.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #3330] gmake -j2 does very different things to gmake -j1

2007-08-15 Thread Paul D. Smith

Update of bug #3330 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #4:

OK, committed a fix for this (and bug #15919), plus test cases.  Thanks to
Icarus for all his work on this.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?3330

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20995] \ along multiple lines lines for '...' doesn't work

2007-09-07 Thread Paul D. Smith

Update of bug #20995 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 
 Summary: \ along multiple lines lines for '...' doesn't work
 =  along multiple lines lines for '...' doesn't work 

___

Follow-up Comment #1:

Hi Frank; the 3.81 behavior is correct.  The POSIX spec for make says:

When an escaped newline is found in a command line in a makefile, the
command line shall contain the backslash, the newline, and the next line,
except that the first character of the next line shall not be included if it
is a tab.

See the GNU make manual subsection Splitting Command Lines (node Splitting
Lines), in section Command Syntax, chapter Writing the Commands in Rules,
for details.

We are discussing adding a .ONESHELL feature for the next version of GNU
make; if we do that then this could be used to get the kind of behavior you're
looking for.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20995

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21376] Random Segmentation fault when run with -j n

2007-10-20 Thread Paul D. Smith

Update of bug #21376 (project make):

  Status:None = Duplicate  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

This is a duplicate of bug #20033.  There's a patch attached to that bug.

I only was able to determine this by looking at the stack trace you provided
to the mailing list; when reporting bugs please remember to add in stack
traces, etc. wherever possible.

Cheers.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21376

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21661] Make expands command-line variable defnitions after/during every command invocation

2007-11-28 Thread Paul D. Smith

Follow-up Comment #5, bug #21661 (project make):

Ah, now it's clear what the confusion is.  This happens because make puts
command line variable settings into the environment to be exported to the
subshell.  And, of course, before make can invoke a subshell it has to expand
all the variables that are to be exported.

See
http://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html#Variables_002fRecursion

You can avoid this by adding an explicit unexport var to your makefile.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21661

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22198] wrong target name - possibly buffer overflow with long shell-result

2008-02-27 Thread Paul D. Smith

Update of bug #22198 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22198

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22379] Segmentation fault with wildcard archive rule

2008-03-12 Thread Paul D. Smith

Follow-up Comment #2, bug #22379 (project make):

No, that Debian bug is different (and that whole section of code is different
in the next release of GNU make, so it's no longer needed).

Please try the attached patch and see if it works.

(file #15253)
___

Additional Item Attachment:

File name: p.diff Size:0 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22379

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22379] Segmentation fault with wildcard archive rule

2008-03-27 Thread Paul D. Smith

Update of bug #22379 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #3:

I'm closing this as the bug is fixed in my testing.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22379

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22442] Old-style cancelation of implicit rules

2008-03-27 Thread Paul D. Smith

Follow-up Comment #1, bug #22442 (project make):

I'm not sure your reading of POSIX is correct.  It says:

-
Inference rules can be redefined. A target that matches an existing inference
rule shall overwrite the old inference rule. An empty rule can be created with
a command consisting of simply a semicolon (that is, the rule still exists and
is found during inference rule search, but since it is empty, execution has no
effect). The empty rule can also be formatted as follows:

rule: ;

where zero or more blanks separate the colon and semicolon.
-

To me this seems to reaffirm make's behavior: the rule exists and is found
during inference rule search, but execution has no effect.

I think you can get the behavior you want by some combination of removing
suffixes in .SUFFIXES, and perhaps changing the order in which they appear.

If not can you provide a simple test case?  You can dummy out the actual
compilation with touch and cp etc. commands.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22442

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21716] The following works in 3.80 but not in 3.81

2008-05-25 Thread Paul D. Smith

Update of bug #21716 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21716

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #23793] MAKEFLAGS with only variable settings X=y does not work properly

2008-07-07 Thread Paul D. Smith

Update of bug #23793 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

I don't believe this is a bug.  The GNU make manual says:

`MAKEFLAGS' begins with a hyphen only when it begins with an option that has
no single-letter version, such as `--warn-undefined-variables'

In general, it's not correct to put $(MAKEFLAGS) in a recipe line when
invoking a sub-make.  MAKEFLAGS is intended to be passed to the sub-make
through the environment, not the command line, and this will happen
automatically for you all the time.

Sub-makes should be invoked as just $(MAKE), with no $(MAKEFLAGS).

For more information, see section Communicating Options to a Sub-make in
the GNU make manual.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?23793

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24164] Improper Evaluation of Multiple Target rules with Static Patterns

2008-09-01 Thread Paul D. Smith

Update of bug #24164 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #3:

The followup comments are correct and this is expected and documented
behavior; I'm closing this as not a bug.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24164

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24486] Have make print a progress report during build?

2008-10-08 Thread Paul D. Smith

Update of bug #24486 (project make):

Severity:  3 - Normal = 1 - Wish   

___

Follow-up Comment #1:

There is no good way to do this without completely rearchitecting how GNU
make works.

See:

http://www.mail-archive.com/[EMAIL PROTECTED]/msg06212.html

for example.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24486

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24522] $(info) does not nothing

2008-10-10 Thread Paul D. Smith

Update of bug #24522 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

The $(info) function was added in GNU make 3.81.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24522

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24723] multiple results created as a group

2008-11-02 Thread Paul D. Smith

Follow-up Comment #2, bug #24723 (project make):

Make can already do this with pattern rules.  I'm assuming you mean with
explicit rules?

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24723

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25140] Pattern-specific variable assignment behaves differently compared to normal variables

2008-12-27 Thread Paul D. Smith

Update of bug #25140 (project make):

  Item Group: Bug = Enhancement

___

Follow-up Comment #1:

The reason this happens is because pattern-specific variables are treated
very differently from target-specific variables, internally.  With
target-specific variables there is an actual target and the variables are kept
and expanded with reference to that target.  Since an explicit target is
stated, even if that target is not known already we can create one to hook
these variables to when the makefile is read in.

With pattern-specific variables there is no known target at the time the
pattern variable is defined, so pattern variables are simply kept as a list of
potential variable settings.  They are not resolved when the makefile is read
in, because there's no target to hook them to.  They are resolved when the
target is to be built: at that time all the pattern-specific variable patterns
are matched, one at a time, to the target and if it matches the expansion
occurs.  Obviously that comes in the second phase of the build, after the
makefiles have all been read in (and, in your example, the variable $(v) has
been reset).

It's potentially conceivable that all the pattern-specific variables with the
exact same pattern could be treated as target-specific variables are, and the
variable settings for that pattern can be combined into a group.  However,
even that would not be 100% accurate; suppose you had two patterns %.bar and
foo%.bar, then with a target of foobaz.bar you could reasonably expect the
pattern-specific variables to be handled as if they were target-specific
variables for foobaz.bar... but there's really no way to do that.

This behavior is actually quite tricky to get right: combining :=, +=,
inheritance, etc.

I'll leave this open as an enhancement request.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25140

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25190] define expansion seems to lose the final newline

2008-12-27 Thread Paul D. Smith

Update of bug #25190 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

This is not a bug.  See the GNU make manual, section Defining Variables
Verbatim, where it says:

The value in an ordinary assignment cannot contain a newline; but the
newlines that separate the lines of the value in a `define' become part of the
variable's value (_except for the final newline which precedes the `endef' and
is not considered part of the value_).

Note the final parenthetical comment (highlight added).

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25190

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25578] target without target specific variable setting receives setting from unrelated target

2009-02-19 Thread Paul D. Smith

Update of bug #25578 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

The problem is you forgot a backslash in the programs/retriever/rules.mk
file, so the variable assignment is not attached to the target but is rather
just a normal assignment.


lib/libOPSCarchretrhook.$(SL):
LINK_LIBS:=
   OPSCcomm 
   OPSCbase 
   errors


Should be:

lib/libOPSCarchretrhook.$(SL): 
LINK_LIBS:=
   OPSCcomm 
   OPSCbase 
   errors


You can find out where variables were assigned very easily by running make
with the -p option; this will print the entire database make used, and the
filename/linenumber where each was defined in the makefile.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25578

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25578] target without target specific variable setting receives setting from unrelated target

2009-02-19 Thread Paul D. Smith

Follow-up Comment #2, bug #25578 (project make):

Hm.  The markup seems to have swallowed my should be section.  Also, the
email seems to have deleted ALL the backslashes.  Anyway, you get the idea.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25578

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20495] debug version crashes on windows on close(-1)

2009-03-07 Thread Paul D. Smith

Update of bug #20495 (project make):

  Status:None = Fixed  
 Assigned to:None = eliz   
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20495

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25844] Spelling error in French debugging messages

2009-03-13 Thread Paul D. Smith

Update of bug #25844 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

Hi; note that translation is not handled by the GNU make team, but rather by
the GNU translation team.  There's not much we can do to fix this problem,
because we dynamically download the latest translation from the GNU
translation team every time we build a new release; the translations are not
kept in the GNU make source tree so we can't keep updates.

You need to contact the translation team for the language you're concerned
about.  You can start here: http://translationproject.org/domain/make.html to
find the right team.

I'm closing this bug in Savannah, but feel free to reopen if you have
troubles.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25844

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #26075] $(wildcard) function holds parent directories open preventing deletes

2009-04-04 Thread Paul D. Smith

Follow-up Comment #5, bug #26075 (project make):

Hm, that's interesting.  There's no doubt that the directory cache causes
unexpected consequences when your makefile does things behind the scenes
that make doesn't know about (so it can't update the cache appropriately).

However, this is the first time I've ever heard the assertion that it is
actually slower than no cache at any time, much less on average, or by
magnitudes.

I'm not saying you're wrong, because I've never tested it myself.  But, do
you have any hard data to prove this assertion?

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?26075

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #26207] corner cases in 'override' logic for variables

2009-05-31 Thread Paul D. Smith

Update of bug #26207 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

The initial behavior is indeed correct, as Manoj has explained.  Once a
variable is elevated to the status of override, which is the highest
priority a variable can have, any subsequent assignment or append to that
variable which is of a lower priority will be ignored.  You can continue to
append to that variable, or even change its value, but only if you precede the
subsequent assignments with override as well.  I added some text to the GNU
make manual that might make this clearer.

As for the other effects you observed, those are due to a real bug in the
system.  I've attached a patch here which I will be committing as soon as
Savannah's source control systems come back up.

(file #18213)
___

Additional Item Attachment:

File name: read.diff  Size:0 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?26207

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25460] make -n better documentation

2009-05-31 Thread Paul D. Smith

Update of bug #25460 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #2:

Modified the GNU make manual and man pages to give appropriate caveats.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25460

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25694] New functions missing in quick reference

2009-05-31 Thread Paul D. Smith

Update of bug #25694 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

Fixed in source code.  Thanks.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25694

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25697] Segmentation fault setting .DEFAULT_GOAL

2009-06-01 Thread Paul D. Smith

Update of bug #25697 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #2:

The issue here is by doing this:

.DEFAULT_GOAL := $(myDefaultGoal)  #restore the previous default rule

you are actually setting the .DEFAULT_GOAL variable to contain a single space
rather than an empty string--make always preserves all TRAILING whitespace
after a value, so any space between the value and a comment, for example, is
included in the value.

Obviously make should not crash even so, and I've fixed this bug; now you'll
get:

make: *** No targets.  Stop.

I also noticed make wasn't expanding this variable before use, which is
wrong.  Fixed that too.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25697

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #26307] gnash in firefox high CPU

2009-06-01 Thread Paul D. Smith

Follow-up Comment #3, bug #26307 (project make):

Well, I surely don't know.

GNU make is a tool used to control compiling programs.  It has absolutely
nothing to do with Firefox, Gnash, Red Hat, swfdec or any other codec, or
anything else related even remotely to the problem you're having as far as I
can determine.

I recommend using Google to search for something like gnash bug reporting
or similar.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?26307

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24588] $$(eval) with SECONDEXPANSION causes segmentation faults

2009-06-01 Thread Paul D. Smith

Follow-up Comment #2, bug #24588 (project make):

See also duplicate bug #24622 for another example.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24588

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24488] phony targets are case insensitive with case insensitive file system

2009-06-01 Thread Paul D. Smith

Update of bug #24488 (project make):

  Item Group: Bug = Enhancement

___

Follow-up Comment #1:

I'm not convinced that this request is something we actually want to
implement; .PHONY is not only used for completely phony targets (where using
case-sensitive matching would make sense), it's also used to mark real files
that could appear on the filesystem as always rebuilt for various reasons. 
In this case you would want them to be treated case-insensitively.

Even if we wanted to do this, there's no easy way to do it: the
--enable-case-insensitive flag is a _compile-time_ flag which changes the
entire behavior of make at a code level.  There is no facility in the codebase
today to track case-insensitive flags on a per file target.

As for special targets not being case-insensitive, that is not a bug. 
Case-insensitivity does not apply to special documented targets like .PHONY
etc.

I'm marking this as Enhancement right now but I'm inclined to close it as
Not a Bug.  Comments requested.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24488

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #23986] make doesnt make cookies

2009-06-01 Thread Paul D. Smith

Update of bug #23986 (project make):

  Status:None = Works for me   
 Open/Closed:Open = Closed 

___

Follow-up Comment #1:

You need to get the version of Linux installed in the Ronco Auto-Kitchen
9000, then drop to the command line and run make cookies from there.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?23986

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24277] make leaks FDs through $(shell)

2009-06-01 Thread Paul D. Smith

Update of bug #24277 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #2:

Thanks for the report.  I ended up fixing this slightly differently, by
adding a test for fileno() into configure.in and running CLOSE_ON_EXEC() on
fileno() of the FILE*.  Checking /proc/self/fd in a $(shell ...) confirms this
works.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24277

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24251] Random error including rebuilt makefiles

2009-06-01 Thread Paul D. Smith

Update of bug #24251 (project make):

 Privacy: Private = Public 
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24251

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24488] phony targets are case insensitive with case insensitive file system

2009-06-01 Thread Paul D. Smith

Update of bug #24488 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24488

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16670] Repeated backslash-escaped newlines not POSIXly replaced

2009-06-02 Thread Paul D. Smith

Follow-up Comment #1, bug #16670 (project make):

OK, the fix for this is simple enough.  However, it does cause user-visible
changes.  It's not so much the replacing of each backslash/newline/following
whitespace with a space that's the issue, it's the fact that TRAILING
whitespace on the previous line is no longer condensed.  The current behavior
basically condenses ALL whitespace starting with the last non-whitespace
character on the previous line and going until the next non-whitespace
character (where backslash/newline are considered whitespace) and replaces it
with a single space.  So, in the current version of make this:

FOO = a
 b

Gives a value of $(FOO) that is a b.  In the new behavior this would give
a b, because the trailing whitespace on the previous line is
preserved, plus one extra space for the backslash/newline/following
whitespace.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?16670

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16670] Repeated backslash-escaped newlines not POSIXly replaced

2009-06-02 Thread Paul D. Smith

Follow-up Comment #2, bug #16670 (project make):

Ugh.  Savannah's comments kind of suck.  I mean, the current behavior gives:

a b


and the POSIXly-correct behavior would give:

a b


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?16670

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #26593] Assertion failure when building glibc with CVS make

2009-06-03 Thread Paul D. Smith

Update of bug #26593 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #3:

Yes, this is bad.  The fix is simple as you suggest.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?26593

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24588] $$(eval) with SECONDEXPANSION causes segmentation faults

2009-06-03 Thread Paul D. Smith

Update of bug #24588 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #3:

Fixed using a change almost identical to yours.  Thanks!

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24588

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24655] shell_var.length isn't set causing duplicates from target_environment.

2009-06-03 Thread Paul D. Smith

Update of bug #24655 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

I can't reproduce the problem (I don't get failures in the SHELL unit tests)
but I agree that the change you proposed is necessary and I've made it in the
source code.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24655

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25712] make update does not work in an out-of-source-tree configuration

2009-06-04 Thread Paul D. Smith

Update of bug #25712 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

This is not officially supported but I made changes to allow it to work.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25712

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2009-06-04 Thread Paul D. Smith

Update of bug #15919 (project make):

  Status:   Fixed = None   
 Open/Closed:  Closed = Open   

___

Follow-up Comment #28:

I've been running the unit tests for months and never had a failure in
targets/SECONDARY.  I still don't, using the latest downloaded code (there is
an odd issue with variable/SHELL that I don't see at home but do see here as a
result of my checkins over the last week; I think the test is wrong bug I
don't understand why I didn't see this at home).

I tried to reproduce the INTERMEDIATE file failure by editing the
INTERMEDIATE test file and adding -j2 and -j5 to the
run_make_with_options invocations for test 3, 4, and 5 and I got correct
behavior there as well; no errors reported.

I wonder if this is somehow behaving differently on Linux?

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2009-06-05 Thread Paul D. Smith

Follow-up Comment #29, bug #15919 (project make):

I took a copy of glibc 2.9 and tried building it with -j10 on my uniprocessor
and on my dual core (actually single hyperthreading CPU) and it worked fine.

But when I took it to a 4-way hyperthreading (8 core) system and ran with
-j10 I did see some bad behavior: not hangs though.  Instead it seemed the
same recipe was being invoked 1 time which eventually caused the build system
to fail, because at the end of the recipe there's a job that removes a file. 
If the multiple recipes run in the right way then one of the instances
removes that file before the next one gets a chance to use it.

I'll look at this.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2009-06-06 Thread Paul D. Smith

Update of bug #15919 (project make):

  Status:None = Fixed  
 Open/Closed:Open = Closed 

___

Follow-up Comment #30:

I debugged this and applied the change Knut suggested; after this glibc with
make -j10 builds without error.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?15919

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25703] .LIBPATTERNS is not pattern dependent.

2009-06-06 Thread Paul D. Smith

Update of bug #25703 (project make):

  Item Group: Bug = Enhancement

___

Follow-up Comment #1:

I'm marking this as an enhancement, since the code works as designed.  I
agree it would be nice to allows LIBPATTERNS (and VPATH!) to use
target-specific and pattern-specific values.

Right now, though, we don't set up the variable sets properly before doing
the lookups for this to happen.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25703

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22010] The increased stack rlimit is inherited by the subprocesses to make.

2009-06-06 Thread Paul D. Smith

Update of bug #22010 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #1:

Fixed; if I change the stack limit I remember the original value and reset it
after forking for a job.  I also added ulimit to the list of shell commands so
make will choose the slow path when ulimit is present.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22010

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22434] Consider a dependancy as target file and try to make the file

2009-06-06 Thread Paul D. Smith

Update of bug #22434 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #6:

This problem is happening because in your Viewer.cpp file you say:

#include Viewer

Because of this, when automake generates the automated prerequisites for the
.o file (in src/.deps/) one of the prerequisites is the simple word Viewer.

When make sees that prerequisite, it tries to build it.  Make has no idea
that you really mean a header file here that it can't see: it looks for a file
Viewer and one doesn't exist, so it tries to build it.  Make has a built-in
rule that says you can build any program FOO from FOO.cpp, and since it
wants to build Viewer and it finds a Viewer.cpp... voila.  It tries to compile
it and fails.

This may or may not be a bug, but if it is it's a problem in automake's
automated dependency generation, not GNU make.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22434

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #22442] Old-style cancelation of implicit rules

2009-06-06 Thread Paul D. Smith

Update of bug #22442 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

Closing.  Feel free to re-open if you have more details.  But, if you're just
looking for help then the help-m...@gnu.org mailing list might be more
productive.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?22442

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #23361] Infinite loop when including file that depends on a phony target

2009-06-06 Thread Paul D. Smith

Update of bug #23361 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #2:

Dave's comment is correct.  This is behaving as expected.  Not ideally, but
as expected.  Since make re-execs itself it's actually quite difficult to know
what files were already built by a previous incarnation.

For a while I had a feature where the re-exec would add -o options for all
makefiles rebuilt so that the next invocation would not try to rebuild them. 
However, some people rely on this behavior AND it also caused problems with
makefiles that have lots of included files: the re-exec was failing due to
running out of environment space.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?23361

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #23210] target/dependants with equal mtime

2009-06-06 Thread Paul D. Smith

Update of bug #23210 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #3:

The problem is that the mtime of objects in an archive is based on the format
of the archive.  There's not much we can do about this: it is what it is.  If
the timestamp of the objects in the archive is 1 second granularity, then
that's all we have.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?23210

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21854] Dependency to a -llibname to be made in a not yet existing directory doesn't match(?)

2009-06-06 Thread Paul D. Smith

Update of bug #21854 (project make):

  Status:None = Fixed  
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #2:

This bug has already been fixed in the latest CVS version of make.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21854

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21823] Potential NULL pointer dereference on hash.c, hash_insert

2009-06-06 Thread Paul D. Smith

Update of bug #21823 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS

___

Follow-up Comment #4:

Fixed by removing the confusing test.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21823

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #21198] Wrong order of prerequisites with 3.81/CVS

2009-06-07 Thread Paul D. Smith

Update of bug #21198 (project make):

  Status:None = Fixed  
 Assigned to:None = psmith 
 Open/Closed:Open = Closed 
   Component Version: CVS = 3.81   
   Fixed Release:None = CVS

___

Follow-up Comment #3:

Fixed.  This is gross: the way we construct then reverse the prereq list
leads to some hackery due to second expansion, and the hackery was incomplete
such that this bug occurred.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?21198

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #24622] $$(eval) creating new targets causes segmentation fault

2009-06-07 Thread Paul D. Smith

Update of bug #24622 (project make):

  Status:   Duplicate = Fixed  
 Assigned to:None = psmith 
   Fixed Release:None = CVS

___

Follow-up Comment #5:

Oops.  I had a change I was testing that fixed this bug but took it out. 
Added it back now and this is really fixed (reports an error but does not
segfault).

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?24622

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


<    3   4   5   6   7   8   9   10   11   12   >