Boost logo

Boost-Build :

From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2006-03-14 15:09:05


Hi,

I stumbled upon strange behavior in my jamfiles which I think is a bug in
boost-build.

I have this in one of my jamfiles:

lib core : $(TOP)/sys/NT/savetrace/core/impl/dirwatch.cpp :
<name>Advapi32.lib ;
run test/dirwatch.cpp core : : : : test-dirwatch ;

This produces the following output from boost-build:

-----------------------------------------------------
C:/code/bin/boost-build/build\virtual-target.jam:984: in
virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
<p..\..\..\bld\src\savetrace\core\test-dirwatch.test\msvc-7.1\debug\link-static>dirwatch.obj
error: previous virtual target { msvc%msvc.compile.c++-dirwatch.obj.OBJ {
test/dirwatch.cpp.CPP } }
error: created from ./test-dirwatch
error: another virtual target { msvc%msvc.compile.c++-dirwatch.obj.OBJ {
/c:/code/sys/NT/savetrace/core/impl/dirwatch.cpp.CPP } }
error: created from ./test-dirwatch
error: added properties: none
error: removed properties: none
C:/code/bin/boost-build/build\virtual-target.jam:450: in
actualize-no-scanner from module object(file-target)@104
C:/code/bin/boost-build/build\virtual-target.jam:110: in
object(file-target)@104.actualize from module object(file-target)@104
C:/code/bin/boost-build/build\virtual-target.jam:731: in
actualize-source-type from module object(action)@106
C:/code/bin/boost-build/build\virtual-target.jam:752: in actualize-sources
from module object(action)@106
C:/code/bin/boost-build/build\virtual-target.jam:697: in
object(action)@106.actualize from module object(action)@106
C:/code/bin/boost-build/build\virtual-target.jam:273: in actualize-action
from module object(file-target)@107
C:/code/bin/boost-build/build\virtual-target.jam:458: in
actualize-no-scanner from module object(file-target)@107
C:/code/bin/boost-build/build\virtual-target.jam:110: in
object(file-target)@107.actualize from module object(file-target)@107
C:/code/bin/boost-build/build\virtual-target.jam:731: in
actualize-source-type from module object(action)@108
C:/code/bin/boost-build/build\virtual-target.jam:752: in actualize-sources
from module object(action)@108
C:/code/bin/boost-build/build\virtual-target.jam:697: in
object(action)@108.actualize from module object(action)@108
C:/code/bin/boost-build/build\virtual-target.jam:273: in actualize-action
from module object(file-target)@109
C:/code/bin/boost-build/build\virtual-target.jam:458: in
actualize-no-scanner from module object(file-target)@109
C:/code/bin/boost-build/build\virtual-target.jam:110: in
object(file-target)@109.actualize from module object(file-target)@109
C:/code/bin/boost-build/build\virtual-target.jam:731: in
actualize-source-type from module object(action)@110
C:/code/bin/boost-build/build\virtual-target.jam:752: in actualize-sources
from module object(action)@110
C:/code/bin/boost-build/build\virtual-target.jam:697: in
object(action)@110.actualize from module object(action)@110
C:/code/bin/boost-build/build\virtual-target.jam:273: in actualize-action
from module object(file-target)@111
C:/code/bin/boost-build/build\virtual-target.jam:458: in
actualize-no-scanner from module object(file-target)@111
C:/code/bin/boost-build/build\virtual-target.jam:110: in
object(file-target)@111.actualize from module object(file-target)@111
C:/code/bin/boost-build\build-system.jam:365: in load from module
build-system
C:\code\bin\boost-build\kernel\modules.jam:261: in import from module
modules
C:\code\bin\boost-build\kernel\bootstrap.jam:121: in boost-build from module
C:\code\bin\boost-build.jam:6: in module scope from module
--------------------------------------------

It complains about having two targets named dirwatch.obj, and that is indeed
the case -- except they go in different directories so this shouldn't be a
problem. But the strange thing is that I don't get errors and everything
works if I remove <name>Advapi32.lib from the requirements of lib core. I
think this is strange, I don't see why the presence of a pre-built lib
(which isn't even used) should affect the outcome of the build request.

I understand the jamfile snippet provided here is incomplete, but if this is
indeed a bug, and if someone needs a simpler way to reproduce the behavior
I'll be happy to assist, just let me know.

Thanks,
Emil


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk