bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NT multi-tasking issue


From: Andre Sihera
Subject: NT multi-tasking issue
Date: Wed, 28 Feb 2001 16:37:46 -0600

Hello!

I am experiencing a problem with GNU make on NT. The details of GNU make
are as follows:

C:\> make --v
GNU Make version 3.79, by Richard Stallman and Roland McGrath.
Built for i686-pc-cygwin
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
        Free Software Foundation, Inc.

The version (as downloaded from a GNU mirror site) was 3.79-3

C:\> set MAKEFLAGS
MAKEFLAGS=--win32 --keep-going --no-builtin-variables

The makefile that it fails with is huge and was generated by Imake but the
problems are very easy to identify. There are two:

1. If a build rule within a makefile causes the makefile to be re-read
   (e.g. when calculating included file dependencies) then this is launched
   in a separate process from the process that executes the final makefile.
   The two processes, though, are not scheduled properly leaving only one
   process to finish on return of the prompt; Weirdly, the second process
   then starts itself up some time later, probably after another task has
   been started.

   The "time" we talk about here is quite small (of the order of millisecs)
   but enough to wreak havoc with the logic of a script. For example, if a
   makefile contained:

   include blah.inc

   %.inc : %.org
     $(SOMETOOL) -out:$@ $<

   the problem should be visible. If you attempted to write a script that
   used the results of the makefile it would probably fail as the makefile
   would exit when blah.inc had been updated, *not* after the main target
   had been built.

2. The -j option appears to have no effect at all, especially if set to one.
   This is possibly connected with the first problem. I particularly wanted
   to use this option to be able to control the order in which sub-projects
   are built, and hence resolve inter-project dependencies. Unfortunately,
   even with a -j setting of one, sub-projects still manage to get started
   in parallel with two or three executing simultanously.

I hope this is enough information. I look foward to your response. If there
are any doubts about the way in which this part of GNU make, may I humbly
offer my assistance in helping to resolve this problem. It comes backed by
seven years of NT systems programming experience in real-time communications
environments.

Many thanks in advance,

Andre.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]