Error when compiling postgresql 9.6.7 with Visual Studio 15.5.6

2018-02-19 Thread Aditya Nugraha
Hello everyone,

   When trying to compile postgresql 9.6.7 with Visual Studio 15.5.6,
i am getting errors at these following line :
"C:\Users\nameless\Documents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\pgsql.sln"
(default targe
t) (1) ->
"C:\Users\nameless\Documents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\ascii_and_mic.vcxproj"
(d
efault target) (5) ->
"C:\Users\nameless\Documents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\postgres.vcxproj"
(defaul
t target) (6) ->
(ClCompile target) ->
  src/backend/utils/adt/pg_locale.c(927): error C2037: left of
'locale_name' specifies undefined struct/union '__crt_lo
cale_data' 
[C:\Users\nameless\Documents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\postgres.vcxpr
oj]
  src/backend/utils/adt/pg_locale.c(928): error C2198: 'wchar2char':
too few arguments for call [C:\Users\nameless\Docum
ents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\postgres.vcxproj]

4 Warning(s)
2 Error(s)

Searching through the mailinglist archive i am getting this thread :
http://www.postgresql-archive.org/Building-PostgreSQL-9-6devel-sources-with-Microsoft-Visual-C-2015-td5880108.html

But the intended patched file is different than above error which is
on this src/backend/utils/adt/pg_locale.c file.

Here is the snapshot of the offending code from pg_locale.c file :
/* Locale names use only ASCII, any conversion locale suffices. */
rc = wchar2char(iso_lc_messages, loct->locinfo->locale_name[LC_CTYPE],
sizeof(iso_lc_messages), NULL);

Can anyone tell me the fixes ?.


Cheers.



Aditya



Re: Error when compiling postgresql 9.6.7 with Visual Studio 15.5.6

2018-02-19 Thread Aditya Nugraha
Found out that the patch that is included in that discussion is
working fine for Visual Studio 2017 15.5.6, i think postgresql
developer should include it on upstream branch or 9.6.x variant.

Thanks a lot Tom!

@Thomas

I haven't checked it out but as above mentioned, the patch is working
fine so far, although i haven't check it thoroughly.

On Tue, Feb 20, 2018 at 3:54 AM, Thomas Munro
 wrote:
> On Tue, Feb 20, 2018 at 6:23 AM, Tom Lane  wrote:
>> Aditya Nugraha  writes:
>>>When trying to compile postgresql 9.6.7 with Visual Studio 15.5.6,
>>> i am getting errors at these following line :
>>>   src/backend/utils/adt/pg_locale.c(927): error C2037: left of
>>> 'locale_name' specifies undefined struct/union '__crt_lo
>>> cale_data' 
>>> [C:\Users\nameless\Documents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\postgres.vcxpr
>>> oj]
>>>   src/backend/utils/adt/pg_locale.c(928): error C2198: 'wchar2char':
>>> too few arguments for call [C:\Users\nameless\Docum
>>> ents\Works\Compiling\pgwininstall\builddir\postgresql\postgresql-9.6.7\postgres.vcxproj]
>>
>> This was previously discussed here:
>>
>> https://www.postgresql.org/message-id/flat/CANFyU959RRvAqmrGvLor%3Dgo3PSi4LdYcjDw8TQ6YRvzpouZrog%40mail.gmail.com
>>
>> Apparently Microsoft have changed their APIs in VS2015.  Somebody needs to
>> figure out what's the approved way now to get the locale name out of a
>> _locale_t object.
>
> [Not a Windows person, just curious]
>
> I wonder if the result of ResolveLocaleName("foo", output_buffer,
> output_buffer_size) would be the same as
> locale->locinfo->local_name[LC_TYPE] on the result of
> _create_locale(LC_CTYPE, "foo").
>
> https://msdn.microsoft.com/en-us/library/windows/desktop/dd319112(v=vs.85).aspx
>
> --
> Thomas Munro
> http://www.enterprisedb.com