BUG #5707: Cross compilation for windows is broken

Lists: pgsql-bugs
From: "Richard Evans" <richard(dot)evans(at)datanomic(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #5707: Cross compilation for windows is broken
Date: 2010-10-12 15:48:45
Message-ID: 201010121548.o9CFmjPa038535@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 5707
Logged by: Richard Evans
Email address: richard(dot)evans(at)datanomic(dot)com
PostgreSQL version: 9.0.1
Operating system: Linux (Fedora 12)
Description: Cross compilation for windows is broken
Details:

When cross compiling for Windows using a separate build area, libpq.dll does
not build because the .def file cannot be found.

This appears to be caused by these lines in Makefile.shlib:

# If SHLIB_EXPORTS is set, the rules below will build a .def file from
# that. Else we build a temporary one here.
ifeq (,$(SHLIB_EXPORTS))
DLL_DEFFILE = lib$(NAME)dll.def
exports_file = $(DLL_DEFFILE)

$(exports_file): $(OBJS)
$(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $@ $^
else
DLL_DEFFILE = lib$(NAME)dll.def
endif

In Makefile.shlib from 8.4.5, the lines read:

# If SHLIB_EXPORTS is set, the rules below will build a .def file from
# that. Else we build a temporary one here.
ifeq (,$(SHLIB_EXPORTS))
DLL_DEFFILE = lib$(NAME)dll.def
exports_file = $(DLL_DEFFILE)

$(exports_file): $(OBJS)
$(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $@ $^
else
DLL_DEFFILE = $(srcdir)/lib$(NAME)dll.def
endif

Note the reference fo ${srcdir). If Makefile.shlib in 9.0.1 is updated to
match this, the build succeeds.

The configure command was somethinglike:

~/misc/postgresql-9.0.1/configure --host=mingw32 --prefix=/tmp/pg9
--without-zlib


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Richard Evans <richard(dot)evans(at)datanomic(dot)com>
Cc: pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2010-10-12 18:25:20
Message-ID: 1286907735-sup-6339@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Excerpts from Richard Evans's message of mar oct 12 12:48:45 -0300 2010:

> When cross compiling for Windows using a separate build area, libpq.dll does
> not build because the .def file cannot be found.
>
> This appears to be caused by these lines in Makefile.shlib:

Hmm, apparently this was made to work here:
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=26af72b4

and subsequently broken later:
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=234c7ce9

I think the real fix is to make the DEF files be generated in the
builddir, to complete the intention of the latter patch.

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Richard Evans <richard(dot)evans(at)datanomic(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2010-10-29 16:23:39
Message-ID: AANLkTimPRaJF8HsrExUU7y=R7Wtxd01d08q6O=9mjgpJ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

On Tue, Oct 12, 2010 at 2:25 PM, Alvaro Herrera
<alvherre(at)commandprompt(dot)com> wrote:
> Excerpts from Richard Evans's message of mar oct 12 12:48:45 -0300 2010:
>
>> When cross compiling for Windows using a separate build area, libpq.dll does
>> not build because the .def file cannot be found.
>>
>> This appears to be caused by these lines in Makefile.shlib:
>
> Hmm, apparently this was made to work here:
> http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=26af72b4
>
> and subsequently broken later:
> http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=234c7ce9
>
> I think the real fix is to make the DEF files be generated in the
> builddir, to complete the intention of the latter patch.

Is anyone working on that?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Richard Evans <richard(dot)evans(at)datanomic(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2010-10-29 21:08:42
Message-ID: 1288386407-sup-8831@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Excerpts from Robert Haas's message of vie oct 29 13:23:39 -0300 2010:
> On Tue, Oct 12, 2010 at 2:25 PM, Alvaro Herrera
> <alvherre(at)commandprompt(dot)com> wrote:
> > Excerpts from Richard Evans's message of mar oct 12 12:48:45 -0300 2010:
> >
> >> When cross compiling for Windows using a separate build area, libpq.dll does
> >> not build because the .def file cannot be found.
> >>
> >> This appears to be caused by these lines in Makefile.shlib:
> >
> > Hmm, apparently this was made to work here:
> > http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=26af72b4
> >
> > and subsequently broken later:
> > http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=234c7ce9
> >
> > I think the real fix is to make the DEF files be generated in the
> > builddir, to complete the intention of the latter patch.
>
> Is anyone working on that?

Not me. I tried, but mingw32-gcc doesn't work out of the box for me,
because configure is not testing for the right accept() arguments.
That's what I can do with the time I can dedicate to a problem like this
right now (i.e. not much).

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Richard Evans <richard(dot)evans(at)datanomic(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2011-02-26 07:14:37
Message-ID: 201102260714.p1Q7Eca05921@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs


Has this been addressed?

---------------------------------------------------------------------------

Alvaro Herrera wrote:
> Excerpts from Robert Haas's message of vie oct 29 13:23:39 -0300 2010:
> > On Tue, Oct 12, 2010 at 2:25 PM, Alvaro Herrera
> > <alvherre(at)commandprompt(dot)com> wrote:
> > > Excerpts from Richard Evans's message of mar oct 12 12:48:45 -0300 2010:
> > >
> > >> When cross compiling for Windows using a separate build area, libpq.dll does
> > >> not build because the .def file cannot be found.
> > >>
> > >> This appears to be caused by these lines in Makefile.shlib:
> > >
> > > Hmm, apparently this was made to work here:
> > > http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=26af72b4
> > >
> > > and subsequently broken later:
> > > http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=234c7ce9
> > >
> > > I think the real fix is to make the DEF files be generated in the
> > > builddir, to complete the intention of the latter patch.
> >
> > Is anyone working on that?
>
> Not me. I tried, but mingw32-gcc doesn't work out of the box for me,
> because configure is not testing for the right accept() arguments.
> That's what I can do with the time I can dedicate to a problem like this
> right now (i.e. not much).
>
> --
> lvaro Herrera <alvherre(at)commandprompt(dot)com>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +


From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Richard Evans <richard(dot)evans(at)datanomic(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2011-03-03 15:40:23
Message-ID: AANLkTim-HY3o876MVC05=CTi_aW-n8LFCoK=jEXnxHwy@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

On Sat, Feb 26, 2011 at 2:14 AM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Has this been addressed?

Not me. Sounds like no one cares enough to figure out how to do this.
Perhaps this should be a TODO.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Richard Evans <richard(dot)evans(at)datanomic(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5707: Cross compilation for windows is broken
Date: 2011-03-10 03:49:16
Message-ID: 201103100349.p2A3nGL03630@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Robert Haas wrote:
> On Sat, Feb 26, 2011 at 2:14 AM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> > Has this been addressed?
>
> Not me. Sounds like no one cares enough to figure out how to do this.
> Perhaps this should be a TODO.

Agreed. TODO added:

Fix cross-compiling on Windows

* http://archives.postgresql.org/pgsql-bugs/2010-10/msg00110.php

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +