EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Make keeps installing the same files
From: "Johnson, Andrew N. via Core-talk" <core-talk at aps.anl.gov>
To: "Rivers, Mark L." <rivers at cars.uchicago.edu>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Date: Tue, 22 Jun 2021 23:33:20 +0000
I also lack understanding of how that could happen; I don’t see anything obvious in the build rules that could trigger it given your tile timestamps. I should have suggested trying make --trace to see what it said, but it’s too late for that now.

- Andrew


On Jun 22, 2021, at 6:08 PM, Mark Rivers <rivers at cars.uchicago.edu> wrote:

Ø  I could come up with some ways that might happen, but none of them would set the timestamps back to mid-May (the dates on your files above), assuming this is the same build area you were demonstrating in your original email and you saw that happening earlier today.
 
I did not change any code today, so the fact that both files are from mid-May is not surprising.  What I don’t understand is given the timestamps on those files why did “make” say it was installing them, and yet their timestamps in lib/ were old?
 
I have not restored anything from backups.
 
Mark
 
 
From: Johnson, Andrew N. <anj at anl.gov> 
Sent: Tuesday, June 22, 2021 6:05 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Subject: Re: Make keeps installing the same files
 
On Jun 22, 2021, at 5:42 PM, Mark Rivers <rivers at cars.uchicago.edu> wrote:
 
Ø  Do any of those libraries contain a version number header which gets recreated and triggers recompilation every time you run the build? It would only take the first-built library to do that and the others would then get re-linked with it as a result.
 
No, they don’t.
 
Ø  Are you building this on a local disk, or a file share of some kind? This kind of behavior can happen if the clocks of the two systems are slightly out of sync. Can you ‘ls -l’ a file installed into the lib directory and the same file in the build directory to see if their timestamps are any different.
 
This is a local disk on the Linux system.
 
But I see a strange problem.  The file in lib/ is 29 hours newer than the file in the build directory.
 
corvette:~/devel/areaDetector/ADCore>ls -l --time-style=f lib/linux-x86_64/libADBase.a
-r--r--r-- 1 epics domain users 3050868 2021-05-18 14:44:15.081349713-0500 lib/linux-x86_64/libADBase.a
 
corvette:~/devel/areaDetector/ADCore>ls -l --time-style=f ADApp/ADSrc/O.linux-x86_64/libADBase.a
-rw-rw-r-- 1 epics domain users 3050868 2021-05-17 09:40:31.599821920-0500 ADApp/ADSrc/O.linux-x86_64/libADBase.a
 
I could come up with some ways that might happen, but none of them would set the timestamps back to mid-May (the dates on your files above), assuming this is the same build area you were demonstrating in your original email and you saw that happening earlier today.
 
You haven’t restored any files from backups since then have you?
 


I did a “make clean” and now I see this.  The file in the lib/ directory is now just a fraction of a second newer than the file in the build directory.  Should they be the exact same time?
 
corvette:~/devel/areaDetector/ADCore>ls -l --time-style=f lib/linux-x86_64/libADBase.a
-r--r--r-- 1 epics domain users 3050868 2021-06-22 17:37:30.006615685 -0500 lib/linux-x86_64/libADBase.a
 
corvette:~/devel/areaDetector/ADCore>ls -l --time-style=f ADApp/ADSrc/O.linux-x86_64/libADBase.a
-rw-rw-r-- 1 epics domain users 3050868 2021-06-22 17:37:29.658618326 -0500 ADApp/ADSrc/O.linux-x86_64/libADBase.a
 
It just reported that it was installing the file.  But then the file in lib/ was newer (but not today) than the one in the build folder.
 
Installing a file does not copy the timestamp from the old file, so the fact that the installed file is a fraction newer than the built one is exactly what I would expect to see. If you run ‘make’ again now without cleaning it or doing anything else, does it still re-do the install or not?
 
When I do a build like that on a local drive, the time difference I see is of the order 0.05 seconds:
 
tux% ll --time-style=f libADBase.a ../../../lib/linux-x86_64/libADBase.a 
-rw-rw-r-- 1 anj aesctl 277808 2021-06-22 17:59:23.216522107 -0500 libADBase.a
-r--r--r-- 1 anj aesctl 277808 2021-06-22 17:59:23.267522353 -0500 ../../../lib/linux-x86_64/libADBase.a
 
- Andrew
 
 


 
From: Johnson, Andrew N. <anj at anl.gov> 
Sent: Tuesday, June 22, 2021 5:05 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Subject: Re: Make keeps installing the same files
 
Hi Mark, 
 
On Jun 22, 2021, at 4:48 PM, Mark Rivers via Core-talk <core-talk at aps.anl.gov> wrote:


 
I just noticed something strange.  “make” is installing the same files each time I run it, even though they are already installed.
 
corvette:~/devel/areaDetector/ADCore>make -sj
Installing library ../../../lib/linux-x86_64/libADBase.a
Installing library ../../../lib/linux-x86_64/libntndArrayConverter.a
Installing library ../../../lib/linux-x86_64/libNDPlugin.a
 
corvette:~/devel/areaDetector/ADCore>make -sj
Installing library ../../../lib/linux-x86_64/libADBase.a
Installing library ../../../lib/linux-x86_64/libntndArrayConverter.a
Installing library ../../../lib/linux-x86_64/libNDPlugin.a
 
This is base 7.0.5 on Centos 7.
 
Do any of those libraries contain a version number header which gets recreated and triggers recompilation every time you run the build? It would only take the first-built library to do that and the others would then get re-linked with it as a result.
 
Are you building this on a local disk, or a file share of some kind? This kind of behavior can happen if the clocks of the two systems are slightly out of sync. Can you ‘ls -l’ a file installed into the lib directory and the same file in the build directory to see if their timestamps are any different.
 
Also try just running a noisy serial ‘make’ in the first build directory to see what’s actually happening.
 
HTH,
 
- Andrew
 
-- 
Complexity comes for free, simplicity you have to work for.
 
-- 
Complexity comes for free, simplicity you have to work for.

-- 
Complexity comes for free, simplicity you have to work for.


References:
Make keeps installing the same files Mark Rivers via Core-talk
Re: Make keeps installing the same files Johnson, Andrew N. via Core-talk
RE: Make keeps installing the same files Mark Rivers via Core-talk
Re: Make keeps installing the same files Johnson, Andrew N. via Core-talk
RE: Make keeps installing the same files Mark Rivers via Core-talk

Navigate by Date:
Prev: RE: Make keeps installing the same files Mark Rivers via Core-talk
Next: failing tests on vxWorks Zimoch Dirk (PSI) via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
Navigate by Thread:
Prev: RE: Make keeps installing the same files Mark Rivers via Core-talk
Next: failing tests on vxWorks Zimoch Dirk (PSI) via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
ANJ, 23 Jun 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·