Boost logo

Boost-Build :

From: Thomas Witt (witt_at_[hidden])
Date: 2002-09-03 10:21:29

Hash: SHA1


On Tuesday 03 September 2002 16:56, David Abrahams wrote:
> I don't understand the question. Can you please be more specific?

Sorry I try.

Given the following lib target and msvc-tools

lib A : a.cpp b.cpp ;

On the first run (i.e. after clean) the corresponding archive command will be

link /lib /out:libA.lib a.o b.o

Change b.cpp and recompile the archive command is

link /lib /out:libA.lib libA.lib a.o b.o

i.e. the existing libA.lib is used as an input file for the new libA.lib. I
think this is unneccessary as _all_ object files, not only the newly
compiled, are used as input for the new archive. IIUC the archive would be
complete without the old lib. Furthermore the redundant input seems to cause
problems. With Intel6 and VC.NET it looks as if sometimes old code from
libA.lib is preferred over new code from the object files. As a result the
lib and the sources are out of sync. I do not think this is an intel problem
as the MS linker gets used.

In my copy I changed the archive action from

actions updated together piecemeal vc-Archive
if exist "$(<)" set _$(<:B)_="$(<)"
$(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(<)" %_$(<:B)_% @"$(>)"


actions updated together piecemeal vc-Archive
$(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(<)" @"$(>)"

and everything worked fine.

- --Thomas

- --
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see



Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at