[OE-core] [PATCH v2] initscripts: fix timestamp check at bootmisc.sh

Phil Blundell philb at gnu.org
Tue Dec 13 12:36:25 UTC 2011


On Tue, 2011-12-13 at 12:26 +0000, Richard Purdie wrote:
> On Tue, 2011-12-13 at 08:58 +0200, Lauri Hintsala wrote:
> >  # Set the system clock from hardware clock
> > -# If the timestamp is 1 day or more recent than the current time,
> > +# If the timestamp is more recent than the current time,
> >  # use the timestamp instead.
> >  /etc/init.d/hwclock.sh start
> >  if test -e /etc/timestamp
> >  then
> > -	SYSTEMDATE=`date  -u +%2m%2d%2H%2M%4Y`
> > -	read TIMESTAMP < /etc/timestamp
> > -        NEEDUPDATE=`expr \( $TIMESTAMP \> $SYSTEMDATE + 10000 \)`
> > -        if [ $NEEDUPDATE -eq 1 ]; then 
> > -		date -u $TIMESTAMP
> > +	SYSTEMDATE=`date -u +%4Y%2m%2d`
> > +	TIMESTAMP=`cat /etc/timestamp | awk '{ print substr($0,9,4) substr($0,1,4); }'`
> > +	NEEDUPDATE=`expr \( $TIMESTAMP \> $SYSTEMDATE \)`
> > +	if [ $NEEDUPDATE -eq 1 ]; then
> > +		date -u `cat /etc/timestamp`
> >  		/etc/init.d/hwclock.sh stop
> >  	fi
> >  fi
> 
> 
> For reference, the code in the boot process is trying not to cause
> fork/exec calls. This is why it does:
> 
> read TIMESTAMP < /etc/timestamp
> 
> since this is faster than forking to run cat. Could we fix this in a
> different way to avoid the fork/execs?

For the same reason it would probably be nice to replace that call to
"expr" (which was in the old version too) with a shell expansion.

p.






More information about the Openembedded-core mailing list