[Privoxy-devel] how costly is --enable-strptime-sanity-checks ?

Lee ler762 at gmail.com
Mon May 2 14:27:38 UTC 2016


On 5/1/16, Fabian Keil <fk at fabiankeil.de> wrote:
> Lee <ler762 at gmail.com> wrote:
>
>> On 4/30/16, Fabian Keil <fk at fabiankeil.de> wrote:
>> > Lee <ler762 at gmail.com> wrote:
>> >
>> >> Looking on the bright side, the nice thing about migrating to the
>> >> cygwin cross-compiler is that I get to learn so many new things :)
>> >>
>> >> How expensive would it be it to have --enable-strptime-sanity-checks
>> >> default to on?
>> >
>> > It should be fairly inexpensive. It has been enabled by default by the
>> > FreeBSD port for a couple of years and nobody complained about it.
>> >
>> >> dunno if this means anything or not, but this is the rabbit hole I'm
>> >> going down now:
>> >>
>> >> ./configure --build=i686-pc-cygwin --host=i686-w64-mingw32
>> >> --enable-mingw32  --enable-strptime-sanity-checks  --enable-zlib
>> >>
>> >> $ grep "Error: Failed to parse" privoxy.log
>> >> 2016-04-29 19:18:50.638 00000270 Error: Failed to parse '' generated
>> >> with '%a, %d %b %Y %H:%M:%S' to recreate 'Mon, 1 Jan 2525 00:00:00
>> > [...]
>> >> 2016-04-29 19:18:51.793 0000027c Error: Failed to parse '' generated
>> >> with '%a, %d %b %Y %H:%M:%S' to recreate 'Wed, 31 Dec 1969 23:59:59
>> >> GMT'.
>> >
>> > I believe a 32 bit time_t would explain these failures.
>>
>> except it sure looks like size_t is 32 bits using gcc -mno-cygwin or
>> i686-w64-mingw32-gcc
>> ./configure comes back with
>>   checking size of size_t... 4
>> for both.
>
> Why should the size of size_t affect the size of time_t?

Got me.  I don't know what I was thinking.  How about this:
$ cat size.c
#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[]) {
  time_t tm;
  printf("sizeof time_t = %d\n", sizeof(tm) );
}

----- new cross-compiler
~/t
$ i686-w64-mingw32-gcc size.c -o test

~/t
$ ./test
sizeof time_t = 4

----- old cygwin 1.5 / gcc v3
[1.5] /cygdrive/c/cygwin/home/Lee/t
$ gcc -mno-cygwin size.c -o test

[1.5] /cygdrive/c/cygwin/home/Lee/t
$ ./test
sizeof time_t = 4

So why isn't there a 'year 2038' problem with gcc -mno-cygwin?

Rebuild privoxy using the old gcc v3 -mno-cygwin with
--enable-strptime-sanity-checks & run the regression tests again.
Only one log msg about a date problem:
$ grep "Failed to parse" privoxy.log
2016-05-02 10:19:23.931 00000efc Error: Failed to parse '' generated
with '%a, %d %b %Y %H:%M:%S' to recreate 'Wed, 31 Dec 1969 23:59:59
GMT'.

/cygdrive/c/temp
$

Lee


More information about the Privoxy-devel mailing list