Contrib PROGRAM problem

Started by Boszormenyi Zoltanalmost 13 years ago16 messages
#1Boszormenyi Zoltan
zb@cybertec.at

Hi,

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

[zozo@localhost oid2name]$ make
x86_64-w64-mingw32-gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
--param=ssp-buffer-size=4 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security
-fno-strict-aliasing -fwrapv -fexcess-precision=standard -I../../src/interfaces/libpq -I.
-I. -I../../src/include -I./src/include/port/win32 -DEXEC_BACKEND
"-I../../src/include/port/win32" -c -o oid2name.o oid2name.c
x86_64-w64-mingw32-gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
--param=ssp-buffer-size=4 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security
-fno-strict-aliasing -fwrapv -fexcess-precision=standard oid2name.o -L../../src/port
-lpgport -L../../src/interfaces/libpq -lpq -L../../src/port
-Wl,--allow-multiple-definition -lpgport -lz -lcrypt -lwsock32 -ldl -lm -lws2_32
-lshfolder -o oid2name

Note the "-o oid2name". Then "make install" of course fails, it expects
the .exe suffix:

[zozo@localhost oid2name]$ LANG=C make DESTDIR=/home/zozo/pgc93dev-win install
/usr/bin/mkdir -p '/home/zozo/pgc93dev-win/usr/x86_64-w64-mingw32/sys-root/mingw/bin'
/usr/bin/install -c oid2name.exe
'/home/zozo/pgc93dev-win/usr/x86_64-w64-mingw32/sys-root/mingw/bin'
/usr/bin/install: cannot stat 'oid2name.exe': No such file or directory
make: *** [install] Error 1

Ditto for "make clean":

[zozo@localhost oid2name]$ make clean
rm -f oid2name.exe
rm -f oid2name.o

All other binaries that are under src/bin or src/backend get
the proper .exe. DLLs are OK under both contrib or src.

Best regards,
Zoltán Böszörményi

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Boszormenyi Zoltan (#1)
Re: Contrib PROGRAM problem

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Boszormenyi Zoltan
zb@cybertec.at
In reply to: Alvaro Herrera (#2)
1 attachment(s)
Re: Contrib PROGRAM problem

2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

Do you mean the attached patch? It indeed fixes the build.

Best regards,
Zoltán Böszörményi

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/

Attachments:

pgxs-fix.patchtext/x-patch; name=pgxs-fix.patchDownload
--- src/makefiles/pgxs.mk.orig	2013-01-18 23:10:57.808370762 +0100
+++ src/makefiles/pgxs.mk	2013-01-18 23:11:22.741554459 +0100
@@ -296,5 +296,5 @@
 
 ifdef PROGRAM
 $(PROGRAM): $(OBJS)
-	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
 endif
#4Andrew Dunstan
andrew@dunslane.net
In reply to: Boszormenyi Zoltan (#3)
Re: Contrib PROGRAM problem

On 01/18/2013 05:19 PM, Boszormenyi Zoltan wrote:

2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

Do you mean the attached patch? It indeed fixes the build.

ifdef PROGRAM
$(PROGRAM): $(OBJS)
-	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
endif

Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and adjust
the dependency for "all" in the same manner? Otherwise make will rebuild
it whether or not it's needed, won't it?

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Boszormenyi Zoltan
zb@cybertec.at
In reply to: Andrew Dunstan (#4)
Re: Contrib PROGRAM problem

2013-01-18 23:37 keltezéssel, Andrew Dunstan írta:

On 01/18/2013 05:19 PM, Boszormenyi Zoltan wrote:

2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

Do you mean the attached patch? It indeed fixes the build.

ifdef PROGRAM
$(PROGRAM): $(OBJS)
-    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
endif

Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and adjust the dependency
for "all" in the same manner? Otherwise make will rebuild it whether or not it's needed,
won't it?

With this in place:

all: $(PROGRAM)$(X) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES))
$(addsuffix .control, $(EXTENSION))

[zozo@localhost contrib]$ make
make -C adminpack all
make[1]: Entering directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make[1]: *** No rule to make target `.exe', needed by `all'. Stop.
make[1]: Leaving directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make: *** [all-adminpack-recurse] Error 2

It's not a good idea it seems.

cheers

andrew

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Andrew Dunstan
andrew@dunslane.net
In reply to: Boszormenyi Zoltan (#5)
Re: Contrib PROGRAM problem

On 01/18/2013 05:45 PM, Boszormenyi Zoltan wrote:

2013-01-18 23:37 keltezéssel, Andrew Dunstan írta:

On 01/18/2013 05:19 PM, Boszormenyi Zoltan wrote:

2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

Do you mean the attached patch? It indeed fixes the build.

ifdef PROGRAM
$(PROGRAM): $(OBJS)
-    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) 
$(LIBS) -o $@
+    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) 
$(LIBS) -o $@$(X)
endif

Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and
adjust the dependency for "all" in the same manner? Otherwise make
will rebuild it whether or not it's needed, won't it?

With this in place:

all: $(PROGRAM)$(X) $(DATA_built) $(SCRIPTS_built) $(addsuffix
$(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))

[zozo@localhost contrib]$ make
make -C adminpack all
make[1]: Entering directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make[1]: *** No rule to make target `.exe', needed by `all'. Stop.
make[1]: Leaving directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make: *** [all-adminpack-recurse] Error 2

It's not a good idea it seems.

Because that's only half of what I suggested.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#6)
1 attachment(s)
Re: Contrib PROGRAM problem

On 01/18/2013 07:03 PM, Andrew Dunstan wrote:

It's not a good idea it seems.

Because that's only half of what I suggested.

This patch seems to do the right thing.

It probably needs to be applied to all the live branches.

cheers

andrew

Attachments:

pgxsfix.patchtext/x-patch; name=pgxsfix.patchDownload
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 318d5ef..1d93d3e 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -100,7 +100,11 @@ ifdef PG_CPPFLAGS
 override CPPFLAGS := $(PG_CPPFLAGS) $(CPPFLAGS)
 endif
 
-all: $(PROGRAM) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))
+ifdef PROGRAM
+PROGRAMX = $(PROGRAM)$(X)
+endif
+
+all: $(PROGRAMX) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))
 
 ifdef MODULE_big
 # shared library parameters
@@ -288,6 +292,6 @@ ifneq (,$(MODULES)$(MODULE_big))
 endif
 
 ifdef PROGRAM
-$(PROGRAM): $(OBJS)
+$(PROGRAMX): $(OBJS)
 	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
 endif
#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#7)
Re: Contrib PROGRAM problem

Andrew Dunstan <andrew@dunslane.net> writes:

This patch seems to do the right thing.

Hmm ... seems kinda grotty ... isn't there a cleaner way?

It probably needs to be applied to all the live branches.

Agreed on back-patching once we have the right thing, but I don't like
this version too much.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#8)
Re: Contrib PROGRAM problem

On 01/18/2013 11:42 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

This patch seems to do the right thing.

Hmm ... seems kinda grotty ... isn't there a cleaner way?

It probably needs to be applied to all the live branches.

Agreed on back-patching once we have the right thing, but I don't like
this version too much.

I'm happy of you can find something cleaner.

We can't just have a dependency of all on $(PROGRAM)($X) because if
PROGRAM is empty but X is not it will do something horrid like try to
build ".exe".

If we do it the way Zoltan suggested then on Windows even if
$(PROGRAM)$(X) exists and is up to date it could be rebuilt, since the
target name won't exist.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#10Peter Eisentraut
peter_e@gmx.net
In reply to: Andrew Dunstan (#4)
Re: Contrib PROGRAM problem

On Fri, 2013-01-18 at 17:37 -0500, Andrew Dunstan wrote:

ifdef PROGRAM
$(PROGRAM): $(OBJS)
- $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX)

$(LIBS) -o $@

+ $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX)

$(LIBS) -o $@$(X)

endif

Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and
adjust
the dependency for "all" in the same manner? Otherwise make will
rebuild
it whether or not it's needed, won't it?

The above is the way it's done everywhere else in the source tree.

I think the reason this works is that either make or the system call
that make uses is aware of this naming issue somehow.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#11Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Eisentraut (#10)
Re: Contrib PROGRAM problem

On 01/18/2013 11:59 PM, Peter Eisentraut wrote:

The above is the way it's done everywhere else in the source tree.

I think the reason this works is that either make or the system call
that make uses is aware of this naming issue somehow.

Oh, hmm, all these years playing with this stuff and I never realized
msys make had these smarts built in, as it apparently does:

$ cat xx.make
foo:
touch foo.exe
$ make -f xx.make
touch foo.exe

$ make -f xx.make
make: `foo' is up to date.

Sorry for the noise.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#12Boszormenyi Zoltan
zb@cybertec.at
In reply to: Andrew Dunstan (#6)
1 attachment(s)
Re: Contrib PROGRAM problem

2013-01-19 01:03 keltezéssel, Andrew Dunstan írta:

On 01/18/2013 05:45 PM, Boszormenyi Zoltan wrote:

2013-01-18 23:37 keltezéssel, Andrew Dunstan írta:

On 01/18/2013 05:19 PM, Boszormenyi Zoltan wrote:

2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:

Boszormenyi Zoltan wrote:

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

The problem contrib directories where Makefile contains
PROGRAM = ...
The executables binaries are created without the .exe suffix. E.g.:

I think you should be able to solve this by adding the $(X) suffix to
the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.

Do you mean the attached patch? It indeed fixes the build.

ifdef PROGRAM
$(PROGRAM): $(OBJS)
-    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+    $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
endif

Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and adjust the dependency
for "all" in the same manner? Otherwise make will rebuild it whether or not it's
needed, won't it?

With this in place:

all: $(PROGRAM)$(X) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES))
$(addsuffix .control, $(EXTENSION))

[zozo@localhost contrib]$ make
make -C adminpack all
make[1]: Entering directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make[1]: *** No rule to make target `.exe', needed by `all'. Stop.
make[1]: Leaving directory
`/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
make: *** [all-adminpack-recurse] Error 2

It's not a good idea it seems.

Because that's only half of what I suggested.

No it's not. I only quoted half of the patch.

cheers

andrew

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/

Attachments:

pgxs-fix-2.patchtext/x-patch; name=pgxs-fix-2.patchDownload
--- src/makefiles/pgxs.mk.orig	2013-01-18 23:10:57.808370762 +0100
+++ src/makefiles/pgxs.mk	2013-01-18 23:44:46.180421400 +0100
@@ -100,7 +100,7 @@
 override CPPFLAGS := $(PG_CPPFLAGS) $(CPPFLAGS)
 endif
 
-all: $(PROGRAM) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))
+all: $(PROGRAM)$(X) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))
 
 ifdef MODULE_big
 # shared library parameters
@@ -295,6 +295,6 @@
 endif
 
 ifdef PROGRAM
-$(PROGRAM): $(OBJS)
+$(PROGRAM)$(X): $(OBJS)
 	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
 endif
#13Boszormenyi Zoltan
zb@cybertec.at
In reply to: Andrew Dunstan (#7)
Re: Contrib PROGRAM problem

2013-01-19 02:03 keltezéssel, Andrew Dunstan írta:

On 01/18/2013 07:03 PM, Andrew Dunstan wrote:

It's not a good idea it seems.

Because that's only half of what I suggested.

This patch seems to do the right thing.

It probably needs to be applied to all the live branches.

cheers

andrew

Yes, this should fix the issue.

Thanks.

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#11)
Re: Contrib PROGRAM problem

On 01/19/2013 12:13 AM, Andrew Dunstan wrote:

On 01/18/2013 11:59 PM, Peter Eisentraut wrote:

The above is the way it's done everywhere else in the source tree.

I think the reason this works is that either make or the system call
that make uses is aware of this naming issue somehow.

Oh, hmm, all these years playing with this stuff and I never realized
msys make had these smarts built in, as it apparently does:

*sigh*. Don't post after midnight. Of course, this isn't relevant to a
cross-compiling environment, where repeated invocations of make
repeatedly build the executables.

The question is whether we care enough about this case to fix it.

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#15Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#14)
Re: Contrib PROGRAM problem

Andrew Dunstan <andrew@dunslane.net> writes:

*sigh*. Don't post after midnight. Of course, this isn't relevant to a
cross-compiling environment, where repeated invocations of make
repeatedly build the executables.

The question is whether we care enough about this case to fix it.

I think we certainly need the $(X) inside the command, so that the
correct files get built. I'm not especially excited about whether a
repeat invocation of "make" will do useless work --- that would only
really matter to a PG developer, but who'd do development in a
cross-compilation environment, where testing would be highly
inconvenient? So I'm prepared to sacrifice that aspect of it for
not cluttering the makefiles.

YMMV of course ...

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#16Craig Ringer
craig@2ndQuadrant.com
In reply to: Boszormenyi Zoltan (#1)
Re: Contrib PROGRAM problem

On 01/19/2013 05:42 AM, Boszormenyi Zoltan wrote:

Hi,

I want to test my lock_timeout code under Windows and
I compiled the whole PG universe with the MinGW cross-compiler
for 64-bit under Fedora 18.

You're significantly better off compiling for native Windows if at all
possible. Windows cloud hosted instances with bundled licenses are
available for peanuts or you can download a Windows DVD and install it
in a KVM instance if you have a license sticker sticking to a
now-running-Linux box somewhere.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers