Package: pmake
Version: 1.111-1
Severity: normal

In parallel mode with a Makefile using VPATH, when a target has several
commands to update it, a change of directory done in an earlier command
is mistakenly carried over to later commands.

Reproduce like this in an empty directory:

mkdir src src/sub build
echo hi > src/sub/file.in
tr X '\t' >build/Makefile <<'EOF'
srcdir = ../src
VPATH = ../src

$(srcdir)/sub/file: $(srcdir)/sub/file.in FORCE
Xcd $(srcdir)/sub && cat file.in
Xpwd; echo stamp > $@

FORCE:
EOF

cd build
pmake -j2

Output:
| --- ../src/sub/file ---
| cd ../src/sub && cat file.in
| hi
| pwd; echo stamp > ../src/sub/file
| /tmp/t/src/sub
| sh: line 5: ../src/sub/file: No such file or directory
| *** [../src/sub/file] Error code 1
| 1 error
|
| pmake: stopped in /tmp/t/build

The output of 'pwd' shows that the second command line starts off in the
wrong directory.

Expected output ('make -j2' or 'pmake' without -j):
[...]
| cd ../src/sub && cat file.in
| hi
| pwd; echo stamp > ../src/sub/file
| /tmp/t/build

This may be exposed for example when building Libtool with pmake -j2,
when the rebuild rule for $(srcdir)/libltdl/stamp-mk triggers.

I tried this on NetBSD 4.99.70, its make has the problem as well.
If you have access to newer versions, can you try it out?  Do you
have contacts to upstream to report this or should I report it
otherwise?

Cheers, and thanks for maintaining Debian,
Ralf

-- System Information:
Debian Release: lenny/sid
  APT prefers stable
  APT policy: (500, 'stable'), (100, 'testing'), (80, 'unstable'), (9, 
'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.22-3-686
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)

Versions of packages pmake depends on:
ii  libc6                         2.7-13     GNU C Library: Shared libraries

pmake recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to