1 --- cc1111-2.9.0.orig/as/asranlib/asranlib.c
2 +++ cc1111-2.9.0/as/asranlib/asranlib.c
3 @@ -22,6 +22,8 @@ along with this program. If not, see <h
9 #include "dbuf_string.h"
12 @@ -593,6 +595,47 @@ do_ranlib (const char *archive)
13 char tmpfile[] = "arXXXXXX";
18 + char *source_date_epoch;
19 + unsigned long long epoch;
21 + source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
23 + if (source_date_epoch)
26 + epoch = strtoull (source_date_epoch, &endptr, 10);
28 + if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
29 + || (errno != 0 && epoch == 0))
31 + fprintf (stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno));
35 + if (endptr == source_date_epoch)
37 + fprintf (stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr);
41 + if (*endptr != '\0')
43 + fprintf (stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr);
47 + if (epoch > ULONG_MAX)
49 + fprintf (stderr, "Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu \n", ULONG_MAX, epoch);
59 if (NULL == _mktemp (tmpfile) || NULL == (outfp = fopen (tmpfile, "wb")))
60 @@ -628,7 +671,7 @@ do_ranlib (const char *archive)
62 symtab_size = 4 + 4 * nsym + str_length;
64 - fprintf (outfp, ARMAG AR_SYMBOL_TABLE_NAME "%-12d%-6d%-6d%-8d%-10d" ARFMAG, (int) time (NULL), 0, 0, 0, symtab_size);
65 + fprintf (outfp, ARMAG AR_SYMBOL_TABLE_NAME "%-12d%-6d%-6d%-8d%-10d" ARFMAG, (int) now, 0, 0, 0, symtab_size);