Skip to content
Snippets Groups Projects
Commit e5c22c15 authored by Andrew Dunstan's avatar Andrew Dunstan
Browse files

Don't use deprecated dllwrap on Cygwin.

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.
parent dfb4a1a2
Branches
Tags
No related merge requests found
...@@ -309,6 +309,7 @@ ifeq ($(PORTNAME), unixware) ...@@ -309,6 +309,7 @@ ifeq ($(PORTNAME), unixware)
endif endif
ifeq ($(PORTNAME), cygwin) ifeq ($(PORTNAME), cygwin)
LINK.shared = $(CC) -shared
ifdef SO_MAJOR_VERSION ifdef SO_MAJOR_VERSION
shlib = cyg$(NAME)$(DLSUFFIX) shlib = cyg$(NAME)$(DLSUFFIX)
endif endif
...@@ -399,6 +400,16 @@ else # PORTNAME == cygwin || PORTNAME == win32 ...@@ -399,6 +400,16 @@ else # PORTNAME == cygwin || PORTNAME == win32
# If SHLIB_EXPORTS is set, the rules below will build a .def file from # If SHLIB_EXPORTS is set, the rules below will build a .def file from
# that. Else we build a temporary one here. # 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)) ifeq (,$(SHLIB_EXPORTS))
DLL_DEFFILE = lib$(NAME)dll.def DLL_DEFFILE = lib$(NAME)dll.def
exports_file = $(DLL_DEFFILE) exports_file = $(DLL_DEFFILE)
...@@ -415,6 +426,7 @@ $(shlib): $(OBJS) $(DLL_DEFFILE) | $(SHLIB_PREREQS) ...@@ -415,6 +426,7 @@ $(shlib): $(OBJS) $(DLL_DEFFILE) | $(SHLIB_PREREQS)
$(stlib): $(shlib) $(DLL_DEFFILE) | $(SHLIB_PREREQS) $(stlib): $(shlib) $(DLL_DEFFILE) | $(SHLIB_PREREQS)
$(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib $@ $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib $@
endif # PORTNAME == cygwin
endif # PORTNAME == cygwin || PORTNAME == win32 endif # PORTNAME == cygwin || PORTNAME == win32
endif # enable_shared endif # enable_shared
......
# src/makefiles/Makefile.cygwin
DLLTOOL= dlltool DLLTOOL= dlltool
DLLWRAP= dllwrap # src/makefiles/Makefile.cygwin
ifdef PGXS ifdef PGXS
BE_DLLLIBS= -L$(libdir) -lpostgres BE_DLLLIBS= -L$(libdir) -lpostgres
else else
...@@ -40,6 +39,4 @@ endif ...@@ -40,6 +39,4 @@ endif
# Rule for building a shared library from a single .o file # Rule for building a shared library from a single .o file
%.dll: %.o %.dll: %.o
$(DLLTOOL) --export-all --output-def $*.def $< $(CC) $(CFLAGS) -shared -o $@ $< $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS)
$(DLLWRAP) -o $@ --def $*.def $< $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS)
rm -f $*.def
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment