| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
| Cc: | Marco Atzeri <marco(dot)atzeri(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: narwhal and PGDLLIMPORT |
| Date: | 2014-02-15 22:41:37 |
| Message-ID: | 21816.1392504097@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> On 2014-02-15 17:26:30 -0500, Tom Lane wrote:
>> The interesting question here is why it used to work. There is no
>> "extern" for in6addr_any in our code, so there must have been a
>> declaration of that constant in some system header. Which one, and
>> what linkage is it defining, and where was the linkage getting
>> resolved before?
> mingwcompat.c has the following ugly as heck tidbit:
> #ifndef WIN32_ONLY_COMPILER
> /*
> * MingW defines an extern to this struct, but the actual struct isn't present
> * in any library. It's trivial enough that we can safely define it
> * ourselves.
> */
> const struct in6_addr in6addr_any = {{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
Yeah, I noticed that. AFAICS, mingwcompat.c isn't built in Cygwin builds,
so we'd probably need to put the constant someplace else entirely if we
end up defining it ourselves.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2014-02-15 22:48:00 | Re: narwhal and PGDLLIMPORT |
| Previous Message | Marco Atzeri | 2014-02-15 22:40:22 | Re: narwhal and PGDLLIMPORT |