Обсуждение: MinGW versus _strtoui64() ?
Per a comment from Petr Jelinek, I added this in commit 23a27b039d94ba35:
#ifdef WIN32 return _strtoui64(str, endptr, base);
#else ...
Several of the Windows buildfarm members are good with that, but
narwhal is not:
numutils.c: In function `pg_strtouint64':
numutils.c:406: warning: implicit declaration of function `_strtoui64'
...
Creating library file: libpostgres.a
utils/adt/numutils.o(.text+0x67b): In function `pg_strtouint64':
C:/msys/1.0/local/pgbuildfarm/buildroot/HEAD/pgsql.build/src/backend/utils/adt/numutils.c:406: undefined reference to
`_strtoui64'
collect2: ld returned 1 exit status
Any thoughts how to fix that?
regards, tom lane
On 13/03/16 03:30, Tom Lane wrote: > Per a comment from Petr Jelinek, I added this in commit 23a27b039d94ba35: > > #ifdef WIN32 > return _strtoui64(str, endptr, base); > #else ... > > Several of the Windows buildfarm members are good with that, but > narwhal is not: > > numutils.c: In function `pg_strtouint64': > numutils.c:406: warning: implicit declaration of function `_strtoui64' > ... > Creating library file: libpostgres.a > utils/adt/numutils.o(.text+0x67b): In function `pg_strtouint64': > C:/msys/1.0/local/pgbuildfarm/buildroot/HEAD/pgsql.build/src/backend/utils/adt/numutils.c:406: undefined reference to `_strtoui64' > collect2: ld returned 1 exit status > Looks like it has to be limited to MSVC not WIN32, mingw does not have it. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Petr Jelinek <petr@2ndquadrant.com> writes:
> On 13/03/16 03:30, Tom Lane wrote:
>> Per a comment from Petr Jelinek, I added this in commit 23a27b039d94ba35:
>>
>> #ifdef WIN32
>> return _strtoui64(str, endptr, base);
>> #else ...
>>
>> Several of the Windows buildfarm members are good with that, but
>> narwhal is not:
> Looks like it has to be limited to MSVC not WIN32, mingw does not have it.
So you're thinking "#ifdef _MSC_VER"? Or something else?
regards, tom lane
On 13/03/16 04:24, Tom Lane wrote: > Petr Jelinek <petr@2ndquadrant.com> writes: >> On 13/03/16 03:30, Tom Lane wrote: >>> Per a comment from Petr Jelinek, I added this in commit 23a27b039d94ba35: >>> >>> #ifdef WIN32 >>> return _strtoui64(str, endptr, base); >>> #else ... >>> >>> Several of the Windows buildfarm members are good with that, but >>> narwhal is not: > >> Looks like it has to be limited to MSVC not WIN32, mingw does not have it. > > So you're thinking "#ifdef _MSC_VER"? Or something else? > Sorry for brevity, yes, that should work, afaics mingw has strtoul so the code should compile fine with that ifdef. Also just checked to make sure, the _strtoui64 was added in VS 7.0 (the version before VS 2003) so should work well enough compatibility wise. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Petr Jelinek <petr@2ndquadrant.com> writes:
> On 13/03/16 04:24, Tom Lane wrote:
>> So you're thinking "#ifdef _MSC_VER"? Or something else?
> Sorry for brevity, yes, that should work, afaics mingw has strtoul so
> the code should compile fine with that ifdef. Also just checked to make
> sure, the _strtoui64 was added in VS 7.0 (the version before VS 2003) so
> should work well enough compatibility wise.
Pushed that way. Thanks for the help!
regards, tom lane