Groups | Search | Server Info | Login | Register


Groups > comp.arch.embedded > #32372

Re: 32 bits time_t and Y2038 issue

Path csiph.com!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From David Brown <david.brown@hesbynett.no>
Newsgroups comp.arch.embedded
Subject Re: 32 bits time_t and Y2038 issue
Date Tue, 18 Mar 2025 20:29:38 +0100
Organization A noiseless patient Spider
Lines 145
Message-ID <vrchj2$35fbp$1@dont-email.me> (permalink)
References <vqpkf9$1sbsa$1@dont-email.me> <vqpoi3$226ih$1@dont-email.me> <slrnvtbaot.sal.news-1513678000@a-tuin.ms.intern> <vrbado$2133a$1@dont-email.me> <vrbi79$2a30t$1@dont-email.me> <vrc74l$2133a$2@dont-email.me>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
Injection-Date Tue, 18 Mar 2025 20:29:39 +0100 (CET)
Injection-Info dont-email.me; posting-host="cb24ce54d7e2437a3053ee939238c262"; logging-data="3325305"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19xlT+th1OjC4RdIeBpNIL2mgii2fj5hBs="
User-Agent Mozilla Thunderbird
Cancel-Lock sha1:CNJ3fvsb2yQQj//T7iE9uskRl9A=
Content-Language en-GB
In-Reply-To <vrc74l$2133a$2@dont-email.me>
Xref csiph.com comp.arch.embedded:32372

Show key headers only | View raw


On 18/03/2025 17:31, pozz wrote:
> Il 18/03/2025 11:34, David Brown ha scritto:
>> On 18/03/2025 09:21, pozz wrote:
>>> Il 15/03/2025 17:30, Michael Schwingen ha scritto:
>>>> On 2025-03-11, David Brown <david.brown@hesbynett.no> wrote:
>>>>> package as-is.  For anything other than a quick demo, my preferred 
>>>>> setup
>>>>> is using makefiles for the build along with an ARM gcc toolchain.  
>>>>> That
>>>>> way I can always build my software, from any system, and archive the
>>>>> toolchain.  (One day, I will also try using clang with these packages,
>>>>> but I haven't done so yet.)
>>>>
>>>> Same here.  I just switched to ARM gcc + picolibc for all my ARM 
>>>> projects -
>>>> this required some changes in the way my makefiles generate linker 
>>>> scripts
>>>> and startup code, and now I am quite happy with that setup.
>>>
>>> One day or another I will try to move from my actual build system 
>>> (that depends on silicon vendor IDE, libraries, middleware, drivers, 
>>> and so on) to a generic makefile and generic toolchain.
>>>
>>> Sincerely I tried in the past with some issues. First of all, I use a 
>>> Windows machine for development and writing makefiles that work on 
>>> Windows is not simple. Maybe next time I will try with WSL, writing 
>>> makefiles that work directly in Unix.
>>
>> Install msys2 (and the mingw-64 version of gcc, if you want a native 
>> compiler too).  Make sure the relevant "bin" directory is on your 
>> path. Then gnu make will work perfectly, along with all the little 
>> *nix utilities such as touch, cp, mv, sed, etc., that makefiles 
>> sometimes use.
> 
> Do you run <msys>\usr\bin\make.exe directly from a cmd.exe shell? Or do 
> you open a msys specific shell?
> 

Either works fine.

So does running "make" from whatever IDE, editor or other tool you want 
to use.

> 
>> The only time I have seen problems with makefiles on Windows is when 
>> using ancient partial make implementations, such as from Borland, 
>> along with more advanced modern makefiles, or when someone mistakenly 
>> uses MS's not-make "nmake" program instead of "make".
>>
>> Of course your builds will be slower on Windows than on Linux, since 
>> Windows is slow to start programs, slow to access files, and poor at 
>> doing it all in parallel, but there is nothing hindering makefiles in 
>> Windows.  My builds regularly work identically under Linux and 
>> Windows, with the same makefiles.
> 
> I tried to use make for Windows some time ago, but it was a mess. Maybe 
> msys2 system is much more straightforward.
> 

I have been using "make" on DOS, 16-bit Windows, OS/2, Windows of many 
flavours, and Linux of all sorts for several decades.  I really can't 
understand why some people feel it is difficult.  (Older makes on DOS 
and Windows were more limited in their features, but worked well enough.)

These days I happily use it on Windows with recursive make (done 
/carefully/, as all recursive makes should be), automatic dependency 
generation, multiple makefiles, automatic file discovery, parallel 
builds, host-specific code (for things like the toolchain installation 
directory), and all sorts of other bits and pieces.

>>> Another problem that I see is the complexity of actual projects: 
>>> TCP/IP stack, cripto libraries, drivers, RTOS, and so on. Silicon 
>>> vendors usually give you several example projects that just works 
>>> with one click, using their IDE, libraries, debuggers, and so on. 
>>> Moving from this complex build system to custom makefiles and 
>>> toolchain isn't so simple.
>>
>> That's why you still have a job.  Putting together embedded systems is 
>> not like making a Lego kit.  Running a pre-made demo can be easy - 
>> merging the right bits of different demos, samples and libraries into 
>> complete systems is hard work.  It is not easy whether you use an IDE 
>> for project and build management, or by manual makefiles.  Some 
>> aspects may be easier with one tool, other aspects will be harder.
> 
> You're right.
> 
> 
>>> Suppose you make the job to "transform" the example project into a 
>>> makefile. You start working with your preferred IDE/text 
>>> editor/toolchain, you are happy.
>>> After some months the requirements change and you need to add a 
>>> driver for a new peripheral or a complex library. You know there are 
>>> ready-to-use example projects in the original IDE from silicon vendor 
>>> that use exactly what you need (mbedtls, DMA, ADC...), but you can't 
>>> use them because you changed your build system.
>>
>> Find the files you need from the SDK or libraries, copy them into your 
>> own project directories (keep them organised sensibly).
>>
>> A good makefile picks up the new files automatically and handles all 
>> the dependencies, so often all you need is a new "make -j".  But you 
>> might have to set up include directories, or even particular flags or 
>> settings for different files. >
>>> Another problem is debugging: launch a debug sessions that means 
>>> download the binary through a USB debugger/probe and SWD port, add 
>>> some breakpoints, see the actual values of some variables and so on. 
>>> All this works very well without big issues if using original IDE. 
>>> Are you able to configure *your* custom development system to launch 
>>> debug sessions?
>>
>> Build your elf file with debugging information, open the elf file in 
>> the debugger.
> 
> What do you mean with "open the elf file in the debugger"?
> 

A generated elf file contains all the debug information, including 
symbol maps and pointers to source code, as well as the binary. 
Debuggers work with elf files - whether the debugger is included in an 
IDE or is stand-alone.

> 
>> You probably have a bit of setup to specify things like the exact 
>> microcontroller target, but mostly it works fine.
>>
>>> Eventually another question. Silicon vendors usually provide custom 
>>> toolchains that often are a customized version of arm-gcc toolchian 
>>> (yes, here I'm talking about Cortex-M MCUs only, otherwise it would 
>>> be much more complex).
>>> What happens if I move to the generic arm-gcc?
>>>
>>
>> This has already been covered.  Most vendors now use standard 
>> toolchain builds from ARM.
>>
>> What happens if the vendor has their own customized tool and you 
>> switch to a generic ARM tool depends on the customization and the tool 
>> versions.  Usually it means you get a new toolchain with better 
>> warnings, better optimisation, and newer language standard support.  
>> But it might also mean vendor-supplied code with bugs no longer works 
>> as it did.  (You don't have any bugs in your own code, I presume :-) )
> 
> :-)
> 

Back to comp.arch.embedded | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-11 16:22 +0100
  Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-11 17:32 +0100
    Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-11 23:21 +0100
      Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-12 10:33 +0100
        Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-12 16:48 +0100
          Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-12 17:39 +0100
            Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-12 18:13 +0100
              Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-12 19:18 +0100
                Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-13 09:57 +0100
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-13 16:51 +0100
                Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-14 13:27 +0100
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-14 14:20 +0100
    Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-12 08:44 +0100
      Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-12 11:14 +0100
      Re: 32 bits time_t and Y2038 issue antispam@fricas.org (Waldek Hebisch) - 2025-03-14 01:48 +0000
        Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-14 08:36 +0100
    Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-15 16:30 +0000
      Re: 32 bits time_t and Y2038 issue Grant Edwards <invalid@invalid.invalid> - 2025-03-15 17:02 +0000
        Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-15 23:26 +0000
      Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-18 09:21 +0100
        Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-18 11:34 +0100
          Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-18 17:31 +0100
            Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-18 20:29 +0100
              Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-21 09:20 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-21 13:54 +0100
                Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-21 20:53 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-22 11:19 +0100
                Re: 32 bits time_t and Y2038 issue antispam@fricas.org (Waldek Hebisch) - 2025-03-21 14:35 +0000
          Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-18 18:28 +0000
            Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-18 20:43 +0100
              Re: 32 bits time_t and Y2038 issue Grant Edwards <invalid@invalid.invalid> - 2025-03-18 20:58 +0000
                Re: 32 bits time_t and Y2038 issue Hans-Bernhard Bröker <HBBroeker@gmail.com> - 2025-03-18 23:31 +0100
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-19 11:24 +0100
                Re: 32 bits time_t and Y2038 issue Grant Edwards <invalid@invalid.invalid> - 2025-03-19 14:27 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-19 17:33 +0100
                Re: 32 bits time_t and Y2038 issue Grant Edwards <invalid@invalid.invalid> - 2025-03-19 19:08 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-19 21:14 +0100
                Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-21 09:48 +0000
                Re: 32 bits time_t and Y2038 issue Grant Edwards <invalid@invalid.invalid> - 2025-03-21 13:27 +0000
                Re: 32 bits time_t and Y2038 issue antispam@fricas.org (Waldek Hebisch) - 2025-03-19 22:09 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-20 09:26 +0100
                Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-21 22:40 +0100
                Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-21 09:23 +0000
                Re: 32 bits time_t and Y2038 issue Hans-Bernhard Bröker <HBBroeker@gmail.com> - 2025-03-21 22:38 +0100
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-19 08:24 +0100
              Re: 32 bits time_t and Y2038 issue antispam@fricas.org (Waldek Hebisch) - 2025-03-21 14:04 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-21 16:45 +0100
                Re: 32 bits time_t and Y2038 issue pozz <pozzugno@gmail.com> - 2025-03-21 22:51 +0100
                Re: 32 bits time_t and Y2038 issue Hans-Bernhard Bröker <HBBroeker@gmail.com> - 2025-03-22 00:00 +0100
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-22 14:29 +0100
                Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-22 14:46 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-22 17:57 +0100
                Re: 32 bits time_t and Y2038 issue antispam@fricas.org (Waldek Hebisch) - 2025-03-22 15:57 +0000
                Re: 32 bits time_t and Y2038 issue David Brown <david.brown@hesbynett.no> - 2025-03-22 18:02 +0100
        Re: 32 bits time_t and Y2038 issue Michael Schwingen <news-1513678000@discworld.dascon.de> - 2025-03-18 18:44 +0000

csiph-web