Fix variation in timestamps caused by timezone differences.
authorVagrant Cascadian <vagrant@debian.org>
Fri, 2 Oct 2015 16:11:51 +0000 (09:11 -0700)
committerTom Rini <trini@konsulko.com>
Sun, 11 Oct 2015 21:12:12 +0000 (17:12 -0400)
When building with SOURCE_DATE_EPOCH set, avoid use of mktime in
default_image.c, which converts the timestamp into localtime. This
causes variation based on timezone when building u-boot.img and
u-boot-sunxi-with-spl.bin targets.

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Tested-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Paul Kocialkowski <contact@paulk.fr>
tools/default_image.c

index 18940af5b532a1a0e3c6e6d28dc027e48f05b836..3ed7014147ca9ba0077113104e3de33744889fb8 100644 (file)
@@ -89,7 +89,6 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd,
 {
        uint32_t checksum;
        char *source_date_epoch;
-       struct tm *time_universal;
        time_t time;
 
        image_header_t * hdr = (image_header_t *)ptr;
@@ -103,13 +102,10 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd,
        if (source_date_epoch != NULL) {
                time = (time_t) strtol(source_date_epoch, NULL, 10);
 
-               time_universal = gmtime(&time);
-               if (time_universal == NULL) {
+               if (gmtime(&time) == NULL) {
                        fprintf(stderr, "%s: SOURCE_DATE_EPOCH is not valid\n",
                                __func__);
                        time = 0;
-               } else {
-                       time = mktime(time_universal);
                }
        } else {
                time = sbuf->st_mtime;