<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Granted, just given a file path and a timestamp -- don't know if it is an import .lib or not.<BR>
Either takes more smarts on the consumer, or I think more likely, more smarts on the producer.<BR>
At least on Windows, the .objs within an import .lib are easily discernable as the special import type and not containing static code. You can actually have hybrid .libs. For example msvcrt.lib contains mostly imports but also static startup code (thus no need for crt0.o or such). Anyway, I think the smarts belong in the producer as that is what would lead to less i/o.<BR>
<BR>
I'm starting to need a bug database. :)<BR>
<BR>
e.g. cleanup this redundancy:<BR>
C:\dev2\cm3.2\m3-mail\postcard\src\UtimeExtra.i3(31):<*EXTERNAL*> PROCEDURE localtime (clock: long_star): struct_tm_star;<BR> C:\dev2\cm3.2\m3-mail\webcard\src\OSUtils.m3(226): tm := localtime(ADR(secs))^<BR> C:\dev2\cm3.2\m3-mail\webcard\src\UtimeExtra.i3(31):<*EXTERNAL*> PROCEDURE localtime (clock: long_star): struct_tm_star;<BR><BR>
(make ANSI time.h available on Win32 also, if it helps)<BR>
<BR>
- Jay<BR><BR><BR>
<HR id=stopSpelling>
<BR>
> Date: Sat, 23 Feb 2008 16:27:59 +0100<BR>> From: wagner@elegosoft.com<BR>> To: jayk123@hotmail.com<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] unnecessary relinks when import libs change<BR>> <BR>> I think cm3 reacts conservative if an imported library changes<BR>> because programs may be built standalone. A possible optimization<BR>> would be to check if the symbols are still the same (as you suggested)<BR>> and avoid the re-link in case of building shared (but not if building<BR>> standalone, as the symbols may be the same, but the code has changed).<BR>> <BR>> Olaf<BR>> <BR>> Quoting Jay <jayk123@hotmail.com>:<BR>> <BR>> > I see a lot of like:<BR>> ><BR>> > == package C:\\dev2\\cm3.2\m3-obliq\synloc == +++ ['cm3.exe -build <BR>> > -keep -DROOT=/C/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.6.0 <BR>> > -DCM3_VERSION_NUMBER=050600 -DCM3_LAST_CHANGED=2008-01-31 @M3novm', <BR>> > 'cm3.exe -ship -keep -DROOT=/C/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.6.0 <BR>> > -DCM3_VERSION_NUMBER=050600 -DCM3_LAST_CHANGED=2008-01-31 @M3novm'] <BR>> > +++<BR>> > --- building in NT386GNU ---<BR>> ><BR>> > ignoring ../src/m3overrides<BR>> > new "/C/cm3/pkg/libm3/NT386GNU/m3.lib" -> archiving synwr.lib <BR>> > *** This line ****mklib -out:synwr.lib SynWr.io SynWr.mo <BR>> > SynLocation.io SynLocation.mo 2>&1 > synwr.lstgcc -shared <BR>> > -Wl,@_m3responsefile1.txt 2>&1 > synwr.lstCreating library file: <BR>> > synwr.lib--- shipping from NT386GNU ---<BR>> ><BR>> > This is mildly dumb.<BR>> > I should check as to why m3.lib changed, but an import .lib changing <BR>> > is rarely legitimate cause for a relink.<BR>> > As long as no symbols were added or removed, no relink is needed.<BR>> > Even then, it usually doesn't matter, but harder to tell.<BR>> ><BR>> > It's true the import .libs have "hints" as to "ordinals" but I don't <BR>> > think anyone cares about those.<BR>> ><BR>> > Definitely maybe the fix should be that when the import .lib is <BR>> > made, if the list of symbols exported is identical to the previous <BR>> > version, don't update the file.<BR>> ><BR>> > - Jay<BR>> > _________________________________________________________________<BR>> > Connect and share in new ways with Windows Live.<BR>> > http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012008<BR>> <BR>> <BR>> <BR>> -- <BR>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin<BR>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194<BR>> <BR><BR><br /><hr />Helping your favorite cause is as easy as instant messaging. You IM, we give. <a href='http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join' target='_new'>Learn more.</a></body>
</html>