[Insight-developers] (ITK) Build Errors terminus.kitware -- W inXP-VC60, library rebuil ds

Miller, James V (Research) millerjv@crd.ge.com
Mon, 17 Mar 2003 16:02:21 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C2ECC8.80D45A90
Content-Type: text/plain

Well here a test that I ran the other day.  It happens to mimic the problem
that Matt was having.  In ITK, there is a library under Utilities called
DICOMParser.  In Code/IO is there is a class that uses this library called
itkDICOMImageIO2. If I make a change to Utilities/DICOMParser/DICOMFile.cxx
and tell DevStudio to rebuild the IO library, it does not recompile
DICOMFile.cxx.  It instead thinks that Utilities/DICOMParser is up to date
and links the IO library using the old DICOMParser lib.
 
Matt added the DICOMParser library to the IO project using "Add Files To
Project..." and then a change to DICOMFile.cxx does cause the IO library to
build.
 
Otherwise, I would fathom that you are correct in that the incremental
linker is trying to incrementally link an old executable with a new library
and complaining.
 
Sorry for the specific example. But I am in the rush to talk to someone.....
 
Jim
 

-----Original Message-----
From: Ken Martin [mailto:ken.martin@kitware.com]
Sent: Monday, March 17, 2003 3:11 PM
To: 'Miller, James V (Research)'; 'Insight-developers (E-mail)'; 'CMake
developers (E-mail)'
Subject: RE: [Insight-developers] (ITK) Build Errors terminus.kitware --
WinXP-VC60, library rebuil ds



I just checked and as far as I can see CMake is setting up the target
dependencies (and chaining them) correctly for both VS6 and VC7. (it is easy
to verify from VS just look at the project dependencies). Having seen this
type of problem before on occasion, my suspicion is that this is a bug in
the VS incremental linker or VS dependency checks.  Unfortunately the
offending dashboard was cleaned so there is little remaining evidence.
Looking at the dashboard it seems clear that ITKCommon was rebuilt (the
symbols are missing as they should be) the problem seems to be that some
examples still think that the symbols should be there. So either the
executable is screwed up (VS is trying to relink the executable) or the
specific test .obj file (Smooth something or another in this case) has not
been rebuilt, but that is a VS dependency issue. It would have been nice if
we could have checked if the Smooth...obj was up to date or not.

 

Ken

 

 

-----Original Message-----
From: insight-developers-admin@public.kitware.com
[mailto:insight-developers-admin@public.kitware.com] On Behalf Of Miller,
James V (Research)
Sent: Monday, March 17, 2003 2:18 PM
To: Insight-developers (E-mail); CMake developers (E-mail)
Subject: [Insight-developers] (ITK) Build Errors terminus.kitware --
WinXP-VC60, library rebuil ds

 

The build errors on terminus.kitware are referencing methods that I removed
from the system on Friday.  These symbols were never used, so I deleted them
to simplify the code.

 

Since we have these build errors, it looks VC6 did not rebuild all the
libraries or an old object file is lying around.

 

The reason I bring this up on the list(s) is that we have had a lot of
problems recently with VC6 building applications (examples) where the
dependent libraries are not being rebuilt.  Here is an example:  change some
code in library A.  Library B links with library A.  Executable C links with
library B.  If you just tell VC6 to build executable C, then library A does
not get rebuilt.  If you build from the top using the ALL_BUILD target, then
everything works fine. I think Matt discovered if he added the other
libraries to the particular projects (using "Add files to project"), then
the rebuilds are triggered properly.  However, this information is lost the
next time CMake is run.

Have other people seen this? Can CMake add the link libraries that an
executable uses that are also built by the workspace to the dependent
projects? Or is this necessary?

I think I have seen this same behavior on VC7.

Jim Miller 
_____________________________________
Visualization & Computer Vision
GE Research
Bldg. KW, Room C218B
P.O. Box 8, Schenectady NY 12301

millerjv@research.ge.com <mailto:millerjv@research.ge.com> 

james.miller@research.ge.com
(518) 387-4005, Dial Comm: 8*833-4005, 
Cell: (518) 505-7065, Fax: (518) 387-6981 

 

 


------_=_NextPart_001_01C2ECC8.80D45A90
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">


<META content="MSHTML 6.00.2715.400" name=GENERATOR>
<STYLE>@font-face {
	font-family: Tahoma;
}
@font-face {
	font-family: Comic Sans MS;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
	COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
	COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
	COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
	COLOR: blue; TEXT-DECORATION: underline
}
P {
	FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman"
}
SPAN.EmailStyle19 {
	COLOR: navy; FONT-FAMILY: Arial
}
DIV.Section1 {
	page: Section1
}
</STYLE>
</HEAD>
<BODY lang=EN-US vLink=blue link=blue>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff size=2>Well here&nbsp;a 
test that I ran the other day.&nbsp; It happens to mimic the problem that Matt 
was having.&nbsp; In ITK, there is a library under Utilities called 
DICOMParser.&nbsp; In Code/IO is there is a class that uses this library called 
itkDICOMImageIO2. If I make a change to Utilities/DICOMParser/DICOMFile.cxx and 
tell DevStudio to rebuild the IO library, it does not recompile 
DICOMFile.cxx.&nbsp; It instead thinks that Utilities/DICOMParser is up to date 
and links the IO library using the old DICOMParser lib.</FONT></SPAN></DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff size=2>Matt added the 
DICOMParser library to the IO project using "Add Files To Project..." and then a 
change to DICOMFile.cxx does cause the IO library to build.</FONT></SPAN></DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff size=2>Otherwise, I 
would fathom that you are correct in that the incremental linker is trying to 
incrementally link an old executable with a new library and 
complaining.</FONT></SPAN></DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff size=2>Sorry for the 
specific example. But I am in the rush to talk to 
someone.....</FONT></SPAN></DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2>Jim</FONT></SPAN></DIV>
<DIV><SPAN class=678185620-17032003><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> Ken Martin 
  [mailto:ken.martin@kitware.com]<BR><B>Sent:</B> Monday, March 17, 2003 3:11 
  PM<BR><B>To:</B> 'Miller, James V (Research)'; 'Insight-developers (E-mail)'; 
  'CMake developers (E-mail)'<BR><B>Subject:</B> RE: [Insight-developers] (ITK) 
  Build Errors terminus.kitware -- WinXP-VC60, library rebuil 
  ds<BR><BR></FONT></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I just checked and as 
  far as I can see CMake is setting up the target dependencies (and chaining 
  them) correctly for both VS6 and VC7. (it is easy to verify from VS just look 
  at the project dependencies). Having seen this type of problem before on 
  occasion, my suspicion is that this is a bug in the VS incremental linker or 
  VS dependency checks. &nbsp;Unfortunately the offending dashboard was cleaned 
  so there is little remaining evidence. Looking at the dashboard it seems clear 
  that ITKCommon was rebuilt (the symbols are missing as they should be) the 
  problem seems to be that some examples still think that the symbols should be 
  there. So either the executable is screwed up (VS is trying to relink the 
  executable) or the specific test .obj file (Smooth something or another in 
  this case) has not been rebuilt, but that is a VS dependency issue. It would 
  have been nice if we could have checked if the Smooth&#8230;obj was up to date or 
  not.</SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN></FONT>&nbsp;</P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Ken</SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN></FONT>&nbsp;</P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN></FONT>&nbsp;</P>
  <DIV 
  style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
  <P class=MsoNormal><FONT face=Tahoma size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">-----Original 
  Message-----<BR><B><SPAN style="FONT-WEIGHT: bold">From:</SPAN></B> 
  insight-developers-admin@public.kitware.com 
  [mailto:insight-developers-admin@public.kitware.com] <B><SPAN 
  style="FONT-WEIGHT: bold">On Behalf Of </SPAN></B>Miller, James V 
  (Research)<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Monday, 
  March 17, 2003 2:18 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 
  Insight-developers (E-mail); CMake developers (E-mail)<BR><B><SPAN 
  style="FONT-WEIGHT: bold">Subject:</SPAN></B> [Insight-developers] (ITK) Build 
  Errors terminus.kitware -- WinXP-VC60, library rebuil ds</SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=2><SPAN 
  style="FONT-SIZE: 10pt">The build errors on terminus.kitware are referencing 
  methods that I removed from the system on Friday.&nbsp; These symbols were 
  never used, so I deleted them to simplify the code.</SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=2><SPAN 
  style="FONT-SIZE: 10pt">Since we have these build errors, it looks VC6 did not 
  rebuild all the libraries or an old object file is lying 
  around.</SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=2><SPAN 
  style="FONT-SIZE: 10pt">The reason I bring this up on the list(s) is that we 
  have had a lot of problems recently with VC6 building applications (examples) 
  where the dependent libraries are not being rebuilt.&nbsp; Here is an 
  example:&nbsp; change some code in library A.&nbsp; Library B links with 
  library A.&nbsp; Executable C links with library B.&nbsp; If you just tell VC6 
  to build executable C, then library A does not get rebuilt.&nbsp; If you build 
  from the top using the ALL_BUILD target, then everything works fine. I think 
  Matt discovered if he added the other libraries to the particular projects 
  (using "Add files to project"), then the rebuilds are triggered 
  properly.&nbsp; However, this information is lost the next time CMake is 
  run.</SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=2><SPAN 
  style="FONT-SIZE: 10pt">Have other people seen this? Can CMake add the link 
  libraries that an executable uses that are also built by the workspace to the 
  dependent projects? Or is this necessary?</SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=2><SPAN 
  style="FONT-SIZE: 10pt">I think I have seen this same behavior on 
  VC7.</SPAN></FONT></P>
  <P style="MARGIN: 0in 0in 0pt"><B><FONT face="Comic Sans MS" color=navy 
  size=3><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: navy; FONT-FAMILY: 'Comic Sans MS'">Jim 
  Miller</SPAN></FONT></B> <BR><B><I><FONT face=Arial color=red size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: red; FONT-STYLE: italic; FONT-FAMILY: Arial">_____________________________________</SPAN></FONT></I></B><BR><EM><I><FONT 
  face=Arial color=black size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">Visualization &amp; 
  Computer Vision</SPAN></FONT></I></EM><I><FONT face=Arial color=black 
  size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: black; FONT-STYLE: italic; FONT-FAMILY: Arial"><BR><EM><I><FONT 
  face=Arial><SPAN style="FONT-FAMILY: Arial">GE 
  Research</SPAN></FONT></I></EM><BR><EM><I><FONT face=Arial><SPAN 
  style="FONT-FAMILY: Arial">Bldg. KW, Room 
  C218B</SPAN></FONT></I></EM><BR><EM><I><FONT face=Arial><SPAN 
  style="FONT-FAMILY: Arial">P.O. Box 8, Schenectady NY 
  12301</SPAN></FONT></I></EM><BR><BR></SPAN></FONT></I><EM><I><U><FONT 
  face="Times New Roman" color=blue size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: blue"><A 
  href="mailto:millerjv@research.ge.com">millerjv@research.ge.com</A></SPAN></FONT></U></I></EM></P>
  <P style="MARGIN: 0in 0in 0pt"><EM><I><U><FONT face="Times New Roman" 
  color=blue size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: blue">james.miller@research.ge.com</SPAN></FONT></U></I></EM><BR><I><FONT 
  face=Arial color=black size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: black; FONT-STYLE: italic; FONT-FAMILY: Arial">(518) 
  387-4005, Dial Comm: 8*833-4005, </SPAN></FONT></I><BR><I><FONT face=Arial 
  color=black size=1><SPAN 
  style="FONT-SIZE: 7.5pt; COLOR: black; FONT-STYLE: italic; FONT-FAMILY: Arial">Cell: 
  (518) 505-7065, Fax: (518) 387-6981</SPAN></FONT></I> </P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</P></DIV></DIV></DIV></BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C2ECC8.80D45A90--