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.
This commit is contained in:
parent
d587298b80
commit
7e1531a450
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user