Messages in this thread | | | Subject | Re: [PATCH] [next] initramfs: Parse KBUILD_BUILD_TIMESTAMP as UTC date | From | Andrew Donnellan <> | Date | Fri, 18 Aug 2023 10:32:46 +1000 |
| |
On Sat, 2023-07-29 at 17:02 +1200, Paulo Miguel Almeida wrote: > When KBUILD_BUILD_TIMESTAMP is specified, the date command will parse > it to Unix Epoch time in UTC. However, the date command is > timezone-aware so it will convert from the local timezone to UTC > first > which hits some of the sanity checks added on commit 5efb685bb3af1 > ("initramfs: Check negative timestamp to prevent broken cpio > archive") > > This creates an edge case for the UTC+<N> part of the world. For > instance > > - In New Zealand (UTC+12:00): > $ date -d"1970-01-01" +%s > -43200 > > $ make KBUILD_BUILD_TIMESTAMP=1970-01-01 > make[1]: Entering directory '<snip>/linux/' > GEN Makefile > DESCEND objtool > INSTALL libsubcmd_headers > CALL ../scripts/checksyscalls.sh > GEN usr/initramfs_data.cpio > ERROR: Timestamp out of range for cpio format > make[4]: *** [../usr/Makefile:76: usr/initramfs_data.cpio] > Error 1 > > - In Seattle, WA (UTC-07:00): > $ date -d"1970-01-01" +%s > 32400 > > $ make KBUILD_BUILD_TIMESTAMP=1970-01-01 > <builds fine> > > Parse KBUILD_BUILD_TIMESTAMP date string as UTC so no localtime > conversion is done which fixes the edge case aforementioned. > > Signed-off-by: Paulo Miguel Almeida > <paulo.miguel.almeida.rodenas@gmail.com>
This should also be documented in Documentation/kbuild/kbuild.rst, including a note that you can still use local time if you include the timezone specifier.
Thanks, -- Andrew Donnellan OzLabs, ADL Canberra ajd@linux.ibm.com IBM Australia Limited
| |