SUNWspro C++ and 2007 DST changes
Hi,
I support a rather large code base of SPARC/Solaris deployed applications written in 4.2 SUNWspro C++. In 2007, the US govt is extending Daylight Savings Time by 1 month (beginning March 11, 2007).
Obviously, I will need some kind of patch to apply to my Solaris OEs, my 4.2 SUNWspro C++ installations, etc. I would then re-compile my entire code base, etc. with the hopeful result that all apps would then be in compliance w/ recognizing the DST 2007 changes.
Does anyone have a pointer to the necessary steps SUNWspro C++ developers need to take to successfully patch and build their code base into DST 2007 compliance?
thanks,
Ben
# 1
Refer to the following Sun Alerts for details.
http://sunsolve.sun.com/search/document.do?assetkey=1-26-102754
http://sunsolve.sun.com/search/document.do?assetkey=1-26-102178
http://sunsolve.sun.com/search/document.do?assetkey=1-26-102775
and possibly this one
http://sunsolve.sun.com/search/document.do?assetkey=1-26-102617
C++ 4.2 has been End Of Service Life for many years. No patches and no support are available for it. (You could try Sun Service, contracting for updates on a time and materials basis, but you would have to be really, really desperate to hold onto this obsolete compiler.)
If you don't need to support versions of Solaris earlier than Solaris 8, you should upgrade to Sun Studio 11. C++ 5.8 has a -compat=4 option that accepts source code that was intended for C++ 4.2, and generates compatible binary code. Studio 11 is free, and you can get it here:
http://developers.sun.com/sunstudio/
If you still have systems running old versions of Solaris, you should consider upgrading them to Solaris 10, which is also free.
# 3
Hi,
I have a similar situation as Ben. However, I'm talking about a lot of S/W and upgrading to the latest compiler is not an option. I need to first determine if I will be impacted by this or not. My code uses objects of the class RWDate (one that comes with the SUNWspro CC compiler and not from a RogueWave library) only. It runs during normal hours (8am - 6pm) and does not do any cross-regional conversions for time. Following is how RWDate is used in my code:
Object creation -
1. RWDate sdate;
2. RWDate nxtcpn(da,mo,yr);
Methods called on object -
1. sdate +=3;
2. RWDate::now();
3. mo = sdate.month();
4. yr = sdate.year();
5. da = sdate.dayOfMonth();
As far as my understanding goes, RWDate will get its time from the underlying SUN OS and as long as the OS is patched for DST adjustment, I should be fine. Is that a correct assumption?
Thanks in advance,
Sonny.
# 4
Although the RW Tools.h++ library gets current time from the Solaris clock, it unfortunately does its own time and date calculations, including DST adjustments. Getting proper operation requires patching the Tools.h++ installation.
Without a patch, the RW Tools.h++ time and date calculations will assume that
DST starts on the first Sunday in April (April 1), when it actually starts on the second Sunday of March (March 11), and that
DST ends on the last Sunday of Oct (Oct 28), when it actually ends on the first Sunday of Nov (Nov 4).
Date and time operations that cross or enter the gaps (when old Standard Time is now Daylight Time) could be off by 1 hour. On the date of the old or new time change, times in the range 1 to 3 am could give the wrong date.