[PATCH v1 0/6] TIMESTAMP output section command
Jan Beulich
jbeulich@suse.com
Tue Oct 7 13:44:09 GMT 2025
More information about the Binutils mailing list
Tue Oct 7 13:44:09 GMT 2025
- Previous message (by thread): [PATCH v1 0/6] TIMESTAMP output section command
- Next message (by thread): [PATCH v1 0/6] TIMESTAMP output section command
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 07.10.2025 15:31, Ulf Samuelsson wrote: > > Den 2025-10-07 kl. 15:06, skrev Jan Beulich: >> On 07.10.2025 14:58, Ulf Samuelsson wrote: >>> Den 2025-10-07 kl. 14:43, skrev Jan Beulich: >>>> On 07.10.2025 14:39, binutils@emagii.com wrote: >>>>> [PATCH v1 1/6] ld:TIMESTAMP command, ldlex.l >>>>> [PATCH v1 2/6] ld:TIMESTAMP command, ldgram.y >>>>> [PATCH v1 3/6] ld:TIMESTAMP command, ldlang.* >>>>> [PATCH v1 4/6] ld:TIMESTAMP info >>>>> [PATCH v1 5/6] ld:TIMESTAMP ChangeLog >>>>> [PATCH v1 6/6] ld:TIMESTAMP NEWS >>>>> >>>>> ld:TIMESTAMP command >>>>> >>>>> Add TIMESTAMP command to linker. >>>>> >>>>> The TIMESTAMP command inserts a QUAD-word entry with the current time >>>>> into the image at the current location. >>>>> The value is the number of seconds since the Epoch, >>>>> 1970-01-01 00:00:00 +0000 (UTC) >>>>> >>>>> The main purpose for the command is for application headers >>>>> in embedded systems which often require a timestamp to be able to >>>>> exactly identify the build. >>>> And those embedded systems all agree on all the field properties? I find >>>> it hard to believe that anything time related can be "general purpose". >>> Each company is likely to have their own definition of the application >>> header >>> So you create a linker command file that will generate a header >>> according to your specification. >>> >>> Many will want to have a timestamp inside the application header so they >>> can use >>> that to ensure that two devices are running exactly the same code. >>> >>> The TIMESTAMP is generated using the "time" function which I assume is >>> what people expect. >>> It is highly unlikely that a company will release or even build two >>> different images that are linked in >>> exactly the same second, so it is enough resolution. >> A lot of assumptions. I can't help the impression that what we want instead >> is a time _value_ (at higher precision) which one can then use in arbitrary >> expressions. >> >> Jan > > It is not assumptions. It is based on experience. > > A system that allows new versions of the application to be downloaded > needs to verify that the application is bona fide before execution if it > wants to be considered professional. > > Do you disagree with this? > > If an embedded application has problems, you often want to verify the > problem > on another identical unit, and you need to ensure that you run the same > software. > > Do you disagree with that? This is all fine, but doesn't require timestamps to address. See e.g. the --build-id= option. And you effectively ... > A timestamp with a one second resolution is in practice a unique > identifier that shows you > if one image is the same as another. I do not see any use for any higher > resolution. > The actual value of the timestamp is not important at all. ... say just that right here. As to 1s resolution - how do you know? Fast systems may be able to link multiple binaries within a second. Systems' times may also be off. So no, I don't view a timestamp as a reliable "unique ID" in the first place. If you want to embed timestamps in binaries, then only for that very purpose - to record time. > I fail to see the use of an arbitrary time within the linking process is > useful > in an expression. Please enlighten me with an example when this would be > useful. It would simply allow you to do what you want, while allowing others to do things even just slightly differently. Jan
- Previous message (by thread): [PATCH v1 0/6] TIMESTAMP output section command
- Next message (by thread): [PATCH v1 0/6] TIMESTAMP output section command
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list