]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Don't use deprecated dllwrap on Cygwin.
authorAndrew Dunstan <andrew@dunslane.net>
Sat, 1 Feb 2014 21:14:15 +0000 (16:14 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 1 Feb 2014 21:14:15 +0000 (16:14 -0500)
The preferred method is to use "cc -shared", and this allows binaries
to be rebased if required, unlike dllwrap.

Backpatch to 9.0 where we have buildfarm coverage.

There are still some issues with Cygwin, especially modern Cygwin, but
this helps us get closer to good support.

Marco Atzeri.

src/Makefile.shlib
src/makefiles/Makefile.cygwin

index a01d10be042a4fcc0efd0415b2b09d23d2da4162..d33422c0c731bdaf6f2974ed1cfcd9a5114f70f0 100644 (file)
@@ -308,6 +308,7 @@ ifeq ($(PORTNAME), unixware)
 endif
 
 ifeq ($(PORTNAME), cygwin)
+  LINK.shared          = $(CC) -shared
   ifdef SO_MAJOR_VERSION
     shlib              = cyg$(NAME)$(DLSUFFIX)
   endif
@@ -398,6 +399,16 @@ else # PORTNAME == cygwin || PORTNAME == win32
 
 # If SHLIB_EXPORTS is set, the rules below will build a .def file from
 # that.  Else we build a temporary one here.
+ifeq ($(PORTNAME), cygwin)
+$(shlib): $(OBJS) | $(SHLIB_PREREQS)
+       $(CC) $(CFLAGS)  -shared -o $@  $(OBJS) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) $(LDAP_LIBS_BE)
+
+$(stlib): $(OBJS) | $(SHLIB_PREREQS)
+       $(LINK.static) $@ $^
+       $(RANLIB) $@
+
+
+else
 ifeq (,$(SHLIB_EXPORTS))
 DLL_DEFFILE = lib$(NAME)dll.def
 exports_file = $(DLL_DEFFILE)
@@ -414,6 +425,7 @@ $(shlib): $(OBJS) $(DLL_DEFFILE)
 $(stlib): $(shlib) $(DLL_DEFFILE)
        $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib $@
 
+endif # PORTNAME == cygwin 
 endif # PORTNAME == cygwin || PORTNAME == win32
 
 endif # enable_shared
index 1a5bdc85cd81da81671637bb37576b4d25a5baca..44fa4055182d6cfcf5219a1eb0cc62f1db8e88ff 100644 (file)
@@ -1,6 +1,5 @@
 # $PostgreSQL: pgsql/src/makefiles/Makefile.cygwin,v 1.15 2010/07/05 23:15:56 tgl Exp $
 DLLTOOL= dlltool
-DLLWRAP= dllwrap
 ifdef PGXS
 BE_DLLLIBS= -L$(libdir) -lpostgres
 else
@@ -40,6 +39,4 @@ endif
 
 # Rule for building a shared library from a single .o file
 %.dll: %.o
-       $(DLLTOOL) --export-all --output-def $*.def $<
-       $(DLLWRAP) -o $@ --def $*.def $< $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS)
-       rm -f $*.def
+        $(CC) $(CFLAGS)  -shared -o $@ $<  $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS)