Slashdot Mirror


The BBC Looks At Rollover Bugs, Past and Approaching

New submitter Merovech points out an article at the BBC which makes a good followup to the recent news (mentioned within) about a bug in Boeing's new 787. The piece explores various ways that rollover bugs in software have led to failures -- some of them truly disastrous, others just annoying. The 2038 bug is sure to bite some people; hopefully it will be even less of an issue than the Year 2000 rollover. From the article: It was in 1999 that I first wrote about this," comments [programmer William] Porquet. "I acquired the domain name 2038.org and at first it was very tongue-in-cheek. It was almost a piece of satire, a kind of an in-joke with a lot of computer boffins who say, 'oh yes we'll fix that in 2037' But then I realised there are actually some issues with this.

59 comments

  1. Ask Mel by Sarten-X · · Score: 5, Funny

    It's not a rollover bug; It's a rollover feature!

    --
    You do not have a moral or legal right to do absolutely anything you want.
    1. Re:Ask Mel by cant_get_a_good_nick · · Score: 1

      I already posted, so I can't mod... one of the coolest geek stories around.

    2. Re:Ask Mel by Anonymous Coward · · Score: 0

      GPS 12-bit Week rollover on April 7, 2019. Some GPS devices handle a new 13-bit week value.

  2. You cant win... by jellomizer · · Score: 4, Insightful

    If you reuse code, you get rollover bugs.
    If you start over from scratch you get brand new bugs.

    Reusing the code, you have a lot of the issue from the past already fixed, so you are not introducing bugs that you had in the past.
    Making new code, you can modernise the code set, so you don't run into particular troubled code, and is easier to follow.

    Programmers are human beings, they make mistakes, they can't give 110% every day. Even the best of them will often have a stupid bug, that they can't believe that they had slip.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:You cant win... by Anonymous Coward · · Score: 1

      I personally have encountered rollover bugs not just in operating systems... but in machine firmware. One ultra-expensive piece of equipment had a firmware issue that would cause big issues if the machine stayed up for more than 18-24 months, so every so often, after a major patch for stuff was released, part of the maintenance window was physically shutting off an entire rack of stuff, depowering it (as in physically pulling the plugs), waiting 10-15 minutes for the capacitors to drain, then plugging it back in and firing it up.

      The ironic thing is that this expensive piece of equipment was built like a tank in every other way... but let it stay up for over two years, and it promptly will fall flat on its face until the entire box gets a power cycle.

    2. Re:You cant win... by ArcadeMan · · Score: 1

      If you're a programmer and you believe you can give 110% even for one day, you have other problems.

    3. Re:You cant win... by AndreiK · · Score: 1

      Sure you can. If you normally work for an hour a day, working an extra 6 minutes today means I gave 110%.

    4. Re:You cant win... by ArcadeMan · · Score: 1

      If you normally work for an hour a day that means you're only giving ~0.041667% to begin with.

    5. Re:You cant win... by jim_deane · · Score: 1

      At 248 days on-line, the Boeing Dreamliner has a similar problem.

      http://www.wsj.com/articles/fa...

      Not a problem I want to have at 40,000 feet (about 12 km).

    6. Re:You cant win... by Mal-2 · · Score: 1

      Sure you can give 110%, just like an engine can deliver 110% of sustained power (which is how marine and aviation engines are rated, not instantaneous power). It just can't do that indefinitely, and it decreases reliability. Either service must be more frequent, or it's going to fail sooner, or both. Nonetheless, many marine engines are held in excess of 100% for hours or days on end.

      Similarly, if you take work output divided by calendar time, you can deliver 110%... for a while. If you try to sustain this, you burn out. Just look at the game development industry for an example. They expect 110% or more, all the time, consequences be damned (so long as they fall on the hapless employees).

      --
      How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
  3. OpenBSD is 2038-ready by QuietLagoon · · Score: 3, Informative

    Since the OpenBSD 5.5 release a year ago, the OS is fully ready for the onslaught of 2038.

    1. Re:OpenBSD is 2038-ready by Anonymous Coward · · Score: 0

      Yeah, it finally caught up to NetBSD in that regard...

    2. Re:OpenBSD is 2038-ready by QuietLagoon · · Score: 1

      Good to see proactive OS's taking care of this issue.

    3. Re:OpenBSD is 2038-ready by Anonymous Coward · · Score: 0

      Now NetBSD will catch up to OpenBSD when it drops support for 32-bit time_t.

  4. 49.7 days by Anonymous Coward · · Score: 0
  5. some that never made the list. by nimbius · · Score: 4, Funny

    Minuteman III nuclear missile: Due to an unsigned integer bug, missile resets to the year 1900 and targets Grover Clevelands presbyterian ministry as part of the clandestine war on christmas
    US Presidential Limousine: Function call returns a flawed short int that causes the vehicle to lose entropy in its timekeeping, routinely deploying countermeasures and refusing to operate in the presence of a black president.
    UCLA Scheduling mainframe: strconv slurps an undersized signed int, causing date/time tracking problems and resulting in comfortable, plausible and very useful class scheduling to occur.
    Russian RT-23 Molodets missile: timer returns a null or negative value, resulting in an active launch thats aborted by sergei usually after he has his first cup of coffee...but sometimes after the paper.

    --
    Good people go to bed earlier.
  6. Volunteers by dfgfgfdgsgsdfsdf · · Score: 3, Insightful

    Given that so much of the GNU/Linux code base is written by volunteers I wonder who it is exactly that is going to fix all of the code. I mean back when it was written Computer programming was much less of a gold rush. Nowadays everyone is competing for jobs that pay $120,000. Who is willing to go through all of the old code and fix it for free?

    1. Re:Volunteers by Greyfox · · Score: 2

      Oh we went to a 64 bit time_t ages ago. You should just have to recompile, even if you use long instead of time_t. Assuming you ever upgraded your machine to a 64 bit platform, which won't be a problem for most people by 2038. Even the US military and NASA should be on 64 bit systems by then. So essentially we've already fixed the problem for Linux. Specific installations that don't upgrade might have some problems, but most of those systems won't last another couple of decades and will require replacement sooner. Specific in-house software that was compiled 32 bits and the the source lost might also have problems. Any remaining SCO installations might also still have problems. I actually kind of hope I can spend my last couple of years before retirement stamping out the remaining SCO installations, naturally while billing $200 an hour.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:Volunteers by belthize · · Score: 3, Insightful

      Given that so much of the non-GNU/Linux code is written by paid programmers I wonder who it is exactly that is going to fix all the code. I mean back when it was written Computer programming was much less of a gold rush. Nowadays everyone is competing for jobs that pay $120,000. Who is willing to pay programmers to go through all of the old code to fix it.

      It's really not an issue. It's already fixed in OpenBSD. Certainly there's some user space code that also counts seconds since 1970 but if folks would simply start now there's no future fix necessary. The set of code written today which will be in use in 2038 will be vanishingly small. The remaining folks will pay some gray hair to knock it into shape. Missed code will make itself apparent sometime that Tuesday morning.

    3. Re:Volunteers by Anonymous Coward · · Score: 1

      Specific installations that don't upgrade might have some problems, but most of those systems won't last another couple of decades and will require replacement sooner. Specific in-house software that was compiled 32 bits and the the source lost might also have problems.

      And also binary protocols where a timestamp is sent using 32bits on the wire. NTP for example. I'm sure there're dozens of others. Public ones should be fixed by 2038. In-house/proprietary ones could conceivable get missed if it's not well maintained or no-one knows the details of the protocol well enough to realise it's affected.

      NTP is actually a little odd in that it uses 32 unsigned bits of 64bits as seconds as seconds since 1st January 1900 so it's not a unix epoch. The result is NTP is affected 2 years earlier, in 2036. The latest version of NTP currently has support for selecting the 'era' to add a few extra bits to workaround the rollover issue. Not currently rolled out everywhere but should be by 2036. Future versions might also use 128bits.

    4. Re:Volunteers by jythie · · Score: 1

      People who could not get those 120k/year jobs but still want to work on something interesting?

      The higher the pay, typically, the more engaging the work. But there are far more programmers working on dull stuff for 60k/year that could probably use the hobby lets their brains turn to mush.

  7. We encountered a similar bug by Registered+Coward+v2 · · Score: 1

    when we had an equipment malfunction and our data logger's time stamped data made no sense - one second we were recording values of x and the next second normal values. Turned out the daylight savings time switch had occurred during the incident and as a result all the time stamps and resulting data were screwed up.

    --
    I'm a consultant - I convert gibberish into cash-flow.
    1. Re:We encountered a similar bug by cant_get_a_good_nick · · Score: 1

      Why didn't/couldn't you use GMT?

    2. Re:We encountered a similar bug by Registered+Coward+v2 · · Score: 1

      Why didn't/couldn't you use GMT?

      Good question. We wondere tht ourselves why the idiots that programmed it used local times. Since they probably never operated a piece of equipment in their life they probably assumed we'd want local time but never asked; which illustrates the classic user / developer disconnect. Years later while on. Control room design project I had to tell developers that the all digital panel design they were so proud of was interesting, cool, futuristic and totally useless for actually operating a plant.. As a result the final design we developed was one operators could actually understand and use.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    3. Re:We encountered a similar bug by Megane · · Score: 1

      I use MythTV as my DVR, and I use the OTA guide data from the broadcast signal. Twice a year I have to delete the entire contents of its guide database, because it doesn't handle the DST change properly. I don't know whether it's the guide data format itself not being able to handle it, or a bug in MythTV, but at least MythTV uses UTC time internally.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  8. Cobol by Anne+Thwacks · · Score: 1
    If you have any Cobol programs at risk of this, you had better act now, since the average age of Cobol programmers in 2038 will probably be over 80!

    There is no chance whatever of the code being replaced if its working now, because no one will sign off a replacement if it still works.

    --
    Sent from my ASR33 using ASCII
    1. Re:Cobol by Viol8 · · Score: 1

      I know this goes against the myth of untouchable Cobol code hidden away that no one dares even look at - but bit by bit it is being replaced (by C++, java, C# whatever). Or at least in the companies I've worked in it was. One small sub section at a time with plenty of testing and a proper rollback plan.

  9. Why rollover? by jovius · · Score: 2

    Isn't mouseover the modern term?

    1. Re:Why rollover? by Coren22 · · Score: 1

      Can you even buy mice with balls anymore?

      --
      APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
    2. Re:Why rollover? by Anonymous Coward · · Score: 0

      Remember to spay and neuter your mice.

  10. Windows one is my fave by cant_get_a_good_nick · · Score: 2, Informative

    There was a counter in Windows that rolled over after 28 days I think (like the 787 bug, but 1000 ticks.second not 100).

    Even Microsoft knew that no Windows box could stay up that long.

    (And before you mod me as a troll, think about it and know that MS could have made a bigger counter, but didn't feel the need to)

    1. Re:Windows one is my fave by Anonymous Coward · · Score: 0

      Which version of Windows?

    2. Re:Windows one is my fave by singularity · · Score: 3, Informative

      The version of Windows was Windows 95, and the number of days was 49.7.

      https://support.microsoft.com/...

      --
      - (c) 2018 Hank Zimmerman
    3. Re:Windows one is my fave by operagost · · Score: 1

      It was Windows 95 and 98, and the rollover happened at 49.7 days.

      And yes, you are a troll because it's quite easily explained as a garden variety mistake due to careless programming. An unsigned 32 bit integer can hold up to 4 billion. 4 billion milliseconds is about 49.7 days. 4 billion sounds "big enough"-- but it isn't when we're talking milliseconds. And clearly, a Windows box COULD stay up that long, or else the bug would never have been discovered.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    4. Re:Windows one is my fave by Greystripe · · Score: 1

      Considering it was still there in Windows 98 apparently a Windows 95 box couldn't stay up that long.

    5. Re:Windows one is my fave by Anonymous Coward · · Score: 0

      ... not to interrupt the MS mocking but something similar happened with the Crucial M4 SSDs - worked fine for a few hundred hours and then would fail after an hour's u-time.

    6. Re:Windows one is my fave by Anonymous Coward · · Score: 0

      I kept my win 95 running for at least 6 months at a time - just as a simple music player. (Maybe my copy was fixed though - it was on a PC I bought in 1998... guess I'll never know now.)

  11. 2038 is working itself out already by jandrese · · Score: 2

    Several years ago I was really concerned about the 2038 rollover because so many protocols have hard baked 32 bit timestamp fields in them. Even if systems were updated the protocols might not be. But I've come to realize that once the systems are updated, the protocol tend to follow suit in the next revision, and in the next 23 years pretty much every protocol is going to go through at least one revision. There are still going to be a few holdouts that have trouble in 2038, but I'm expecting it to be as much of an event as the year 2000. A few fringe things act weird or even stop working, but pretty much everything important is OK.

    --

    I read the internet for the articles.
    1. Re:2038 is working itself out already by omglolbah · · Score: 3, Insightful

      In the business I work "profibus" is considered a "new" technology. The standard was published in 1989.

      We still run a token ring coax network for most critical systems on a significant part of the oil rigs in the North sea and on onshore installations supporting them.

      Some of the controllers are 20 years old and just milling along happily. We did a replacement of NVRAM recently and that is all the service the modules need.
      I fully expect this crud to still be in use in 20 years. Conservative bastards >.

    2. Re:2038 is working itself out already by Viol8 · · Score: 4, Insightful

      If the hardware is still fully operational after 20 years in a hostile enviroment like an oil rig I'd say its anything but "crud". It was probably some of the best kit on the market.

      This might come as a shock but a lot of businesses want kit that Just Works reliably 24/7, not the latest trendy junk that would impress a Hipster cycling past on his fixie bike but lasts about 5 minutes in the real world.

    3. Re:2038 is working itself out already by aNonnyMouseCowered · · Score: 1

      This could be a problem when running simulation software. You set the date to 2040 and bam your VM crashes.

    4. Re:2038 is working itself out already by omglolbah · · Score: 4, Interesting

      Oh it is good gear, but the list of 'bugs' and 'erratas' on the gear is growing longer and longer for every month it stays in service. Spare parts are almost impossible to come by, and even the toolchain needed to update the programs are old enough to require special dedicated workstations.

      It is not a matter of 'working' it is a matter of 'will work in the future'. Right now all the gear has reached "end of life" and spare parts are very close to being "ebay if you're lucky" in terms of procurement. Trying to get the customer to upgrade BEFORE we're already screwed and have to 'rush' an upgrade is the game we're in now.

      Doing a 3 year project in 6 months (while in some cases doable..) leads to badly rushed design and future redesigns. We've seen this over and over in the past 10 years.

      An example is that the new hardware has built in EX barriers on each channel, the termination boards are much better and a variety of other improvements. This translates into -4- massive cabinets being reduced to one. Real-estate offshore is hugely expensive and this would save staggering amounts of money compared to expanding equipment rooms... but they want the stuff they're used to, not the stuff that is current.

      The hilarity of the whole thing is that the 'current' stuff is now installed all over the rig where old hardware is not available so now we have both systems running in parallel with a ton of 'interfacing' and single points of failure introduced as a result.

      It can drive an engineer mad.

    5. Re:2038 is working itself out already by omglolbah · · Score: 1

      Oh.. and the environment is not very hostile. Everything is fully battery backed, fully environmentally shielded and there are virtually no vibrations reaching the room.

      Hell, after 20 years in operation the room hardly has dust anywhere. The controllers look brand new when inspected.

      I love working with the system as is, but trying to shoe-horn the new system requirements into the existing hardware is tricky at best. We're running all our data over a 2mbit token ring network.

    6. Re:2038 is working itself out already by tlhIngan · · Score: 1

      If the hardware is still fully operational after 20 years in a hostile enviroment like an oil rig I'd say its anything but "crud". It was probably some of the best kit on the market.

      Yeah, but it's now unsupported kit and who knows if there are rollover issues? It already ran 20 years, so it's conceivable it will run another 20+ years and hit the 2038 bug, then what? And catching this bug is a lot more subtle than the y2k bug.

      We've already run into rollover issues - on an old processor board that people are still paying us to support (it was over 10 years old when it was designed, and practically every component on it is EOL'd except the Ethernet chip. Fortunately it's the Ethernet chip that basically is the problem). Considering the volumes and the customer involved (they only really come back to us annually) we never bothered updating the software and now what were automated tests and provisioning tools don't work anymore so when we repair and reflash them, it has to be done manually because the automated tools don't work anymore. It's not worth the time to update the tools (too little money, too little quantity, too infrequent).

    7. Re:2038 is working itself out already by Darinbob · · Score: 1

      Ah, but signed 32-bit dates have the problem. A quick change to unsigned 32-bit fields extends this from 2038 to 2106.
      Of course, I can hear the screaming even from here, everyone is mandated to use 64-bits! Except that this is not practical thing in many contexts, when you're on a computer with not enough speed or ram. Or when the date doesn't really matter as it's used in a safer context. Or just admit up front that the system is not POSIX (which they very often are not on small embedded machines), and don't use Jan 1 1970 as the base epoch. But people don't do this, they think this is reinventing the wheel.

      The ultimate problems with 2038 I think come from misuse of the time value, and not understanding the range that you need. The seconds since Jan 1 1970 was originally invented to store the time and date of file modifications. That works. Those times will still be entirely correct a thousand years from now. The expected life of a file, on that particular tape or magnetic drum, was going to be much shorter than 68 years. There would also never be any files created before Jan 1 1970 anyway. The snag, which bites so many people, is that this got appropriated into other uses for which it was never intended. As in being used for a general purpose date system, using only 32 bits, completely insane and so many people don't see that. For instance I worked on a medical system that used this time format for birth days, which failed badly for people born before 1902. Few people foresaw this because they just assumed that time was going to work (it's in a library after all, and its sacrilegeous to second guess a library).

  12. Not my problem... by Anonymous Coward · · Score: 0

    I will be retiring in 2030, so not my problem.

  13. Have fun with that... by Anonymous Coward · · Score: 1

    ...because I'm going to be in a fucking jar on a shelf in 2038.

    1. Re:Have fun with that... by Demena · · Score: 1

      Alive or dead?

  14. So Is Mac OS X. by tlambert · · Score: 4, Informative

    So Is Mac OS X.

    I converted time_t to 64 bits on 64 bit systems (which include the most recent iPhones) as part of the changes for 64 bit binary support on the G5 when I wrote the 64 bit binary loader support into exec/fork/spawn, and again as part of UNIX Conformance. It's basically been fixed since Tiger.

    1. Re:So Is Mac OS X. by Anonymous Coward · · Score: 0

      OpenBSD now has a 64-bit time_t on 32-bit systems. time_t was always 64-bit on 64-bit systems on OpenBSD.

    2. Re:So Is Mac OS X. by unrtst · · Score: 1

      OpenBSD now has a 64-bit time_t on 32-bit systems. time_t was always 64-bit on 64-bit systems on OpenBSD.

      IMO this is one of the things that is being mostly ignored. Back around 2000, many people were saying things along the lines of, "we'll all be on 64bit or larger systems by 2038, so it will solve itself". Many more people have ignorantly joined that line of thought, since almost all mainstream cpu's are 64bit now. That said,there are still a large number of 32bit cpu's being made (like almost every android device CPU there is, and most Apple iPhone/iPad things, and many of the chromebooks out there):

      All ARMv7 based CPU's, such as:
      * Qualcomm Snapdragon S4 (nexus 7)
      * ARM Cortex-A9 (ex. Exynos 4210 in Galaxy Tab 3)
      * ARM Cortex-A15 (ex. nvidia tegra K1 in NVIDIA SHIELD; Galaxy Tab 4 and S, ASUA Chromebook C201 with Rockchip 3288)

      Apple mobile products:
      * Apple A4 (ARM Cortex-A8): iPhone 4, iPod Touch (4th gen), Apple TV (2nd gen)
      * Apple A5 (ARM Cortex-A9): iPad 2, iPhone 4S, iPod Touch (5th gen), iPad mini
      * Apple A6 (ARM Cortex-A15): iPhone 5

      Some notable 64bit exceptions:
      * Apple A7 (ARMv8-A): iPhone 5S
      * Apple A8 (ARMv8-A): iPhone 6 and 6 Plus
      * Apple A8X (ARMv8-A): iPad Air 2
      * Exynos 5433: Galaxy Note 4 (but it only runs in 32bit mode)
      * Exynos 7420: Galaxy S6 and S6 Edge
      * NVIDIA Tegra X1: ... I don't know if this is in anything yet.

      The work that OpenBSD did needs done everywhere. 32bit systems need to have a 64bit time_t.
      Also, like y2k, there will be LOADS of data storage issues - databases that need tables altered, etc. Unlike the printed date, it will be far more difficult to make assumptions about the values based on proximity to the current date (ie. 9/11/01 was considered to be 2001, but 7/4/48 was considered 1948). time_t was a signed 32bit int, so it will wrap around to negative which has an poorly defined behavior.

      Anyway.. the point that I assume is in the article is probably about future dates (and timestamps). Those will be major issues far before 2038 itself arrives (just like scheduling systems in the late 90's had to be the first to be updated).

  15. Y2K was -not- a small issue by mccalli · · Score: 5, Insightful

    The reason so little went wrong is because people spent ages testing and upgrading/fixing beforehand. Had we left it all to 1st Jan 2000 there would have been issues,

    It annoys me to see Y2K trotted out time and time again as a non-event. It was a very big event, and by the large part it was very successfully handled.

    1. Re:Y2K was -not- a small issue by PPH · · Score: 1

      Had we left it all to 1st Jan 2000

      I burned a lot of midnight oil during the month of January, 19100.

      --
      Have gnu, will travel.
  16. A Trivial Issue by CAOgdin · · Score: 0

    I love the way that the entire world-o'-geeks gets upset about a triviality. What prevents future *NIX releases from changing the "base date" to, say, 2010, and changing all the dependent modules to compute properly? Are there to be no future *NIX releases between now an 2038?

    Are there programmers who, in their cleverness, have use primitive code that still relies on the older base date without reference to the underlying O.S.? Sure. But, change the base date soon, and all their bugs will appear LONG before 2038, but they'll be individual and isolated, and easily identified.

    Geez. Much ado about NOTHING. This sounds more like an out-of-sync April Fool's joke than a serious problem...or, was that the original point?

    1. Re:A Trivial Issue by Anonymous Coward · · Score: 1

      You're the kind of guy who knows just enough to be incredibly dangerous.

      The epoch is baked into so many algorithms that only a complete idiot would consider changing it. It's also standardized by POSIX, which is why so many algorithms rely on it for calendar manipulation. In POSIX each day is precisely 86400 "seconds" (regardless of leap second), which makes calendar computation easy, without resort to a complex library.

      The proper thing to do is simply change the type of time_t to 64-bits, even on 32-bit systems. It's what NetBSD and OpenBSD have done. Linux will probably get a more complex solution, similar to Large File Support, where a compile-time macro selects 32-bit or 64-bit time_t and system call wrappers.

      time_t is 64-bits on most 64-bit POSIX systems because struct timeval was defined to use a long, and most POSIX systems are LP64, whereas Windows systems are IL32P64.

    2. Re:A Trivial Issue by Demena · · Score: 1

      Someone had to say that first sentence. I do not have mod points so, my compliments.

  17. Assuming "american" programmers by tekrat · · Score: 1

    Yes, the average age of an American or Russian COBOL programmer will be 80 or over by 2038... However, you're discounting the Filipinos...

    Most of those kids are in their late 20's at most, so they'll be around in 2038. Assuming our Mainframe isn't phased out due to budget cuts, I suspect that the code written in 1980 will still be maintained and running well past 2038.

    --
    If telephones are outlawed, then only outlaws will have telephones.
  18. Case Study and Analysis of Ariane 5 .. by DougPaulson · · Score: 1

    "I question a management culture that appeared to assume that the rocket’s inertial reference system that functioned perfectly when fitted into Ariane4 would achieve the same results when fitted into Ariane5." ref

  19. The 2038 bug may show up early by Megane · · Score: 1

    Thanks to the math required for date conversion, the 2038 bug may actually show up a couple of years early. How do I know? I tried setting the clock forward in an embedded system I wrote the code for. Its calendar actually seems to fail in 2036. I haven't tried it in a while, but I think I can't even set the date past January 2036. I didn't try to figure out exactly why it failed earlier than it should have, because the library code looks pretty messy.

    It's using the standard date library stuff from the IAR compiler, so I'm hoping that sometime within 20 years there will be an option to select a 64-bit compatible time/date library, and it can just be recompiled. At least I used time_t for everything related to Unix date values... I think. Also, the hardware it runs on only has a 32-bit counter for the RTC clock, but I'm sure that it could simply check the high bit, and add 2^32 after the rollover.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }