[linux-l] linux freundliche DCF77 Uhr

Frank Reker frank at reker.net
Mi Mär 31 22:17:18 CEST 2004


Jan-Benedict Glaw disse:
> On Wed, 2004-03-31 20:44:21 +0200, Frank Reker <frank at reker.net>
> wrote in message <2357.10.0.0.121.1080758661.squirrel at posta.babelps.it>:
>> Also zum kompilieren ist die synchronisation sowieso egal, selbst
>> wenn die Rechner mehrerer Stunden auseinanderliegen. Man bekommt
>> hoechstens unschoene Warnungen "modification time in the future".
>
> So ein Blödsinn! Anhand von timestamps werden bei ordentlichen Makefiles
> die Weichen gestellt, ob etwas neu erzeugt werden muß, oder eben nicht.
>
> Wenn eine Maschine eine .c-Datei generiert und eine 2te just danach
> prüft, ob das object file neu gebaut werden muß, dann hast Du den Salat.

make ueberprueft, ob das .c-File neuer ist als das .o file, dann wird
kompiliert, sonst nicht. (Um praeziser zu sein muss die Datei rechts
neben dem Doppelpunkt (im makefile) neuer sein als die links daneben,
damit die nachfolgenden Anweisungen ausgefuehrt werden.)
z.B.:
a: b c d ...
<tab>do_something
do_something wird ausgefuehrt wenn b oder c oder d ...
neuer ist als a.
Aber die Timestamps von a, b, c, d, ... werden alle vom NFS-Server
generiert, nicht vom Client. Der Client ueberprueft diese zwar,
dabei ist die lokale Zeit des Clients jedoch zweitrangig.

Make ueberprueft zwar auch, ob eine Datei in der Zukunft liegt,
das hat aber keine Auswirkungen auf die zu treffende Entscheidung
ob kompiliert wird oder nicht. Die Warnung wird nur generiert, da
bei *nicht* NFS-filesystems eine Zeit in der Zukunft auf einen
abnormalen Zustand hindeutet, z.B. Veraenderung der lokalen Zeit
(z.B. durch einen aufruf von hwclock ohne --adjust option). In
einem solchen Fall sind die timestamps nicht mehr aussagekraeftig,
und ein make unter Umstaenden nicht vollstaendig.
Kommt die Warnung durch nichtsynchronisation von NFS-Server/Client,
hat sie keine Bewandniss und kann ignoriert werden.


-- 
Don't worry be happy ...
Ciao Frank



Mehr Informationen über die Mailingliste linux-l