On 4/16/19 1:22 AM, Noah Misch wrote: > On Thu, Mar 07, 2019 at 03:23:50PM +0100, Sandro Mani wrote: >> Related, no actual static libraries are produced alongside the respective >> dlls. The attached patch 0002-Build-static-libraries.patch addresses this, >> in a similar fashion as is already done for the AIX case in Makefile.shlib. > We don't build static libraries on AIX, though Makefile.shlib uses the > $(stlib) variable to get a name for the *.a shared library it makes. Here's > an example of one AIX Makefile.shlib build sequence, from > https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=hornet&dt=2019-04-15%2022%3A35%3A52&stg=make > > rm -f libpq.a > ar crs libpq.a fe-auth.o fe-auth-scram.o fe-connect.o fe-exec.o fe-misc.o > fe-print.o fe-lobj.o fe-protocol2.o fe-protocol3.o pqexpbuffer.o fe-secure.o > libpq-events.o encnames.o wchar.o fe-secure-openssl.o fe-secure-common.o > touch libpq.a > ../../../src/backend/port/aix/mkldexport.sh libpq.a libpq.so.5 >libpq.exp > xlc_r -qmaxmem=33554432 -D_LARGE_FILES=1 -qnoansialias -g -O2 -qmaxmem=16384 > -qsrcmsg -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -o > libpq.so.5 libpq.a -Wl,-bE:libpq.exp -L../../../src/port > -L../../../src/common -lpgcommon_shlib -lpgport_shlib > -L/home/nm/sw/nopath/libxml2-64/lib -L/home/nm/sw/nopath/icu58.2-64/lib > -L/home/nm/sw/nopath/uuid-64/lib -L/home/nm/sw/nopath/openldap-64/lib > -L/home/nm/sw/nopath/icu58.2-64/lib -L/home/nm/sw/nopath/libxml2-64/lib > -Wl,-blibpath:'/home/nm/farm/xlc64/HEAD/inst/lib:/home/nm/sw/nopath/libxml2-64/lib:/home/nm/sw/nopath/icu58.2-64/lib:/home/nm/sw/nopath/uuid-64/lib:/home/nm/sw/nopath/openldap-64/lib:/home/nm/sw/nopath/icu58.2-64/lib:/home/nm/sw/nopath/libxml2-64/lib:/usr/lib:/lib' > -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -lintl -lssl -lcrypto -lm -lldap_r > -llber -lpthreads > rm -f libpq.a > ar crs libpq.a libpq.so.5 > >
I'm wondering if it wouldn't be better to set the value of stlib for windows, instead of changes like this: - $(CC) $(CFLAGS) -shared -static-libgcc -o $@ $(OBJS) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) -Wl,--export-all-symbols -Wl,--out-implib=$(stlib) + $(CC) $(CFLAGS) -shared -static-libgcc -o $@ $(OBJS) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) -Wl,--export-all-symbols -Wl,--out-implib=lib$(NAME).dll.a I'm also wondering if changing this will upset third party authors. Thoughts? cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services