mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Cygwin build fixes.
Get rid of use of dlltool for linking the main postgres executable. dlltool is obsolete and we'd prefer to stop depending on it. Also, include $(LDAP_LIBS_FE) in $(libpq_pgport). (It's not clear that this is really needed, or why it's not a linker bug if it is needed. But reports are that it's needed on current Cygwin.) We might want to back-patch this if it works, but first let's see what the buildfarm thinks. Marco Atzeri
This commit is contained in:
parent
d3c4c47155
commit
cba6ffaef3
@ -415,7 +415,12 @@ else
|
||||
libpq_pgport = -L$(top_builddir)/src/common -lpgcommon -L$(top_builddir)/src/port -lpgport $(libpq)
|
||||
endif
|
||||
|
||||
# If PGXS is not defined, build libpq and libpgport dependancies as required.
|
||||
# Cygwin seems to need ldap libraries to be mentioned here, too
|
||||
ifeq ($(PORTNAME),cygwin)
|
||||
libpq_pgport += $(LDAP_LIBS_FE)
|
||||
endif
|
||||
|
||||
# If PGXS is not defined, build libpq and libpgport dependencies as required.
|
||||
# If the build is with PGXS, then these are supposed to be already built and
|
||||
# installed, and we just ensure that the expected files exist.
|
||||
ifndef PGXS
|
||||
|
@ -62,18 +62,16 @@ endif
|
||||
|
||||
ifeq ($(PORTNAME), cygwin)
|
||||
|
||||
postgres: $(OBJS) postgres.def libpostgres.a
|
||||
$(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(call expand_subsys,$(OBJS)) $(LIBS)
|
||||
$(DLLTOOL) --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) -Wl,--stack,$(WIN32_STACK_RLIMIT) -o $@$(X) $@.exp $(call expand_subsys,$(OBJS)) $(LIBS)
|
||||
rm -f $@.exp $@.base
|
||||
postgres: $(OBJS)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $(export_dynamic) -Wl,--stack,$(WIN32_STACK_RLIMIT) -Wl,--export-all-symbols -Wl,--out-implib=libpostgres.a $(call expand_subsys,$^) $(LIBS) -o $@
|
||||
|
||||
postgres.def: $(OBJS)
|
||||
$(DLLTOOL) --export-all --output-def $@ $(call expand_subsys,$^)
|
||||
# There is no correct way to write a rule that generates two files.
|
||||
# Rules with two targets don't have that meaning, they are merely
|
||||
# shorthand for two otherwise separate rules. To be safe for parallel
|
||||
# make, we must chain the dependencies like this. The semicolon is
|
||||
# important, otherwise make will choose some built-in rule.
|
||||
|
||||
libpostgres.a: postgres.def
|
||||
$(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@
|
||||
libpostgres.a: postgres ;
|
||||
|
||||
endif # cygwin
|
||||
|
||||
@ -295,7 +293,7 @@ clean:
|
||||
$(top_builddir)/src/include/utils/fmgroids.h \
|
||||
$(top_builddir)/src/include/utils/probes.h
|
||||
ifeq ($(PORTNAME), cygwin)
|
||||
rm -f postgres.dll postgres.def libpostgres.a
|
||||
rm -f postgres.dll libpostgres.a
|
||||
endif
|
||||
ifeq ($(PORTNAME), win32)
|
||||
rm -f postgres.dll postgres.def libpostgres.a $(WIN32RES)
|
||||
|
Loading…
x
Reference in New Issue
Block a user