git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d587298)
Don't use deprecated dllwrap on Cygwin.
Sat, 1 Feb 2014 21:08:33 +0000 (16:08 -0500)
Sat, 1 Feb 2014 21:08:33 +0000 (16:08 -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.


diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index 4e476c30369f210cd345769bf1fffdc142827f5b..4693565e320e8ed70c11c1522390cd9edb6c4c0c 100644 (file)
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -271,6 +271,7 @@ ifeq ($(PORTNAME), unixware)
endif
ifeq ($(PORTNAME), cygwin)
+ LINK.shared = $(CC) -shared
ifdef SO_MAJOR_VERSION
shlib = cyg$(NAME)$(DLSUFFIX)
endif
@@ -361,6 +362,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)
@@ -377,6 +388,7 @@ $(shlib): $(OBJS) $(DLL_DEFFILE) | $(SHLIB_PREREQS)
$(stlib): $(shlib) $(DLL_DEFFILE) | $(SHLIB_PREREQS)
$(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib $@
+endif # PORTNAME == cygwin
endif # PORTNAME == cygwin || PORTNAME == win32
diff --git a/src/makefiles/Makefile.cygwin b/src/makefiles/Makefile.cygwin
index 0a0680c74cc6a469f7c1735a3b06b69b8c10e7cd..863732f5984c4b1735d51d259f27eb4c773db12b 100644 (file)
--- a/src/makefiles/Makefile.cygwin
+++ b/src/makefiles/Makefile.cygwin
@@ -1,6 +1,5 @@
-# src/makefiles/Makefile.cygwin
DLLTOOL= dlltool
-DLLWRAP= dllwrap
+# src/makefiles/Makefile.cygwin
ifdef PGXS
BE_DLLLIBS= -L$(libdir) -lpostgres
else
@@ -44,6 +43,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)
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /