Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2vVr-0000w7-Kr for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Apr 2018 09:12:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f2vVo-0007hm-SU for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Apr 2018 09:12:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2vVo-0007hc-Io for pgsql-hackers@lists.postgresql.org; Mon, 02 Apr 2018 09:12:24 +0000 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1f2vVh-0002qM-2G for pgsql-hackers@postgresql.org; Mon, 02 Apr 2018 09:12:23 +0000 Received: by mail-wm0-x22a.google.com with SMTP id t67so4198804wmt.0 for ; Mon, 02 Apr 2018 02:12:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:message-id:date:user-agent:mime-version :content-language; bh=8CGwh647IzKnqmyEbdcG5IpC015/aIztbDaAWhFAJF0=; b=hYYl5FkJF8irxhQ6dyFfg/V/PqM4BjhdueudHt8z20IWblh9jX+4h1dGTyBcW1fKb4 TTyqn4NCQ8RplWV3kMJtOTh4I1qAYfhycobWF++2FRttpno8QE7u+dmpka/9VfD8ekhz lTDPkp0K5obXYGhkmluDGGNnqmqj6oHVlnwx12Ub8YqXZ4C8ofuP3wlrfk1bumWSDErX Pf10VUFz6f8daRefd4ZvDog0RbT8rhoJOKMRqKKUW6+86HEtYAnjJmLEurXlu4sfAAhM uDI3lIOTcjJRyn4befLTqMsMQt8Np+bAV0yMTxNF3ivNCCxkreWjyZClo7pFvUfXZx/C PAZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:message-id:date:user-agent :mime-version:content-language; bh=8CGwh647IzKnqmyEbdcG5IpC015/aIztbDaAWhFAJF0=; b=fEnkpLtKW0GawjkNFyjFjwmQVYbpes6AgpohiOUf1W1VB3dIfxrPx7cFUcQ5rP2aQn Vc92PlrhzpjUENUrR63MI9PHDfnW+I5Fhk92trwFQQZ5t2wSbxjVmuQ0+qMFKUGdGdKC oAYZFwMCNtHrNojTcXYhzss37sJnpg6GtfJe/CrjYgfQ5GQTmwFu7gNLJ4CkxQJYQnfV pYtsT04ZP1hGuICMLjCaABh5wTOJ8JCaI9VdxpfRgjMAQkMA4Vfg25rlLkMB/Oa537MG blYoJUVPiX9hGCO6IbzStkyuhNMmDUp1BOTs4SK83Km0mZodLkwmpy1Y/lw2viiyIJBO qnzw== X-Gm-Message-State: ALQs6tCybKHU6BtLphhhKY/ltpzeuPjvQBBHCYRzAhv5dX6rLB0/u1io 7/AaEGEz0+bcWIQ5WeaGxgSJ8Q== X-Google-Smtp-Source: AIpwx4/Y0Ua9fgfq9jMTvWhwP/2e+D8fxtrFFlSCCoydczBmmCVGm10fI89kuSkGeEAg0ZMkjFfnDA== X-Received: by 10.46.134.141 with SMTP id l13mr5235891lji.5.1522660334486; Mon, 02 Apr 2018 02:12:14 -0700 (PDT) Received: from [1.0.0.7] ([178.155.4.201]) by smtp.gmail.com with ESMTPSA id g17sm2436082ljk.18.2018.04.02.02.12.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 02 Apr 2018 02:12:13 -0700 (PDT) From: Alexander Lakhin Subject: make installcheck-world in a clean environment To: pgsql-hackers@postgresql.org Message-ID: Date: Mon, 2 Apr 2018 12:12:12 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------557C1BCDF691D2BBEFC24A2B" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------557C1BCDF691D2BBEFC24A2B Content-Type: multipart/alternative; boundary="------------853CB57B83DFDA210D9304F6" --------------853CB57B83DFDA210D9304F6 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hello, I am trying to perform "make installcheck-world" after "make clean" (or after installing a precompiled binaries), but it fails. The error I get is related to ECPG regression test: make -C test installcheck make[2]: Entering directory `/home/postgres/postgres/src/interfaces/ecpg/test' gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 '-I../../../../src/port' '-I../../../../src/test/regress' '-DHOST_TUPLE="x86_64-pc-linux-gnu"' '-DSHELLPROG="/bin/sh"' '-DDLSUFFIX=".so"' -I../../../../src/include  -D_GNU_SOURCE   -c -o pg_regress_ecpg.o pg_regress_ecpg.c gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -L../../../../src/port -L../../../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags pg_regress_ecpg.o ../../../../src/test/regress/pg_regress.o -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -lcrypt -ldl -lm  -o pg_regress make -C connect all make[3]: Entering directory `/home/postgres/postgres/src/interfaces/ecpg/test/connect' make[3]: *** No rule to make target `test1.c', needed by `test1.o'.  Stop. make[3]: Leaving directory `/home/postgres/postgres/src/interfaces/ecpg/test/connect' Is it a supported scenario to make installcheck-world without performing "make" first? (If I do "make -C src/interfaces/ecpg" and then "make installcheck-world", then this error is gone. And when I set up all the extensions, all tests passed successfully.) And even if we need to perform make, I wonder, should the recompiled ecpg binary be checked instead of installed one? I tried to modify Makefile to target installed ecpg binary and it's libs (see the patch attached), it works, but this fix is only suited for installcheck. So if this scenario should be supported, a more elaborated fix is needed. Best regards, ------ Alexander Lakhin Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------853CB57B83DFDA210D9304F6 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit Hello,

I am trying to perform "make installcheck-world" after "make clean" (or after installing a precompiled binaries), but it fails.
The error I get is related to ECPG regression test:
make -C test installcheck
make[2]: Entering directory `/home/postgres/postgres/src/interfaces/ecpg/test'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 '-I../../../../src/port' '-I../../../../src/test/regress' '-DHOST_TUPLE="x86_64-pc-linux-gnu"' '-DSHELLPROG="/bin/sh"' '-DDLSUFFIX=".so"' -I../../../../src/include  -D_GNU_SOURCE   -c -o pg_regress_ecpg.o pg_regress_ecpg.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -L../../../../src/port -L../../../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags  pg_regress_ecpg.o ../../../../src/test/regress/pg_regress.o -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -lcrypt -ldl -lm  -o pg_regress
make -C connect all
make[3]: Entering directory `/home/postgres/postgres/src/interfaces/ecpg/test/connect'
make[3]: *** No rule to make target `test1.c', needed by `test1.o'.  Stop.
make[3]: Leaving directory `/home/postgres/postgres/src/interfaces/ecpg/test/connect'

Is it a supported scenario to make installcheck-world without performing "make" first?
(If I do "make -C src/interfaces/ecpg" and then "make installcheck-world", then this error is gone. And when I set up all the extensions, all tests passed successfully.)
And even if we need to perform make, I wonder, should the recompiled ecpg binary be checked instead of installed one?
I tried to modify Makefile to target installed ecpg binary and it's libs
(see the patch attached), it works, but this fix is only suited for installcheck.
So if this scenario should be supported, a more elaborated fix is needed.

Best regards,
------
Alexander Lakhin
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

--------------853CB57B83DFDA210D9304F6-- --------------557C1BCDF691D2BBEFC24A2B Content-Type: text/x-patch; name="ecpg-installcheck.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ecpg-installcheck.patch" diff --git a/src/interfaces/ecpg/test/Makefile.regress b/src/interfaces/ecpg/test/Makefile.regress index b3d7c1e..5df1a44 100644 --- a/src/interfaces/ecpg/test/Makefile.regress +++ b/src/interfaces/ecpg/test/Makefile.regress @@ -5,14 +5,14 @@ override CPPFLAGS := -I../../include -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) $(CPPFLAGS) override CFLAGS += $(PTHREAD_CFLAGS) -override LDFLAGS := -L../../ecpglib -L../../pgtypeslib $(filter-out -l%, $(libpq)) $(LDFLAGS) +override LDFLAGS := -L'$(DESTDIR)$(libdir)/' $(filter-out -l%, $(libpq)) $(LDFLAGS) override LIBS := -lecpg -lpgtypes $(filter -l%, $(libpq)) $(LIBS) $(PTHREAD_LIBS) # Standard way to invoke the ecpg preprocessor -ECPG = ../../preproc/ecpg --regression -I$(srcdir)/../../include -I$(srcdir) +ECPG = '$(DESTDIR)$(bindir)/ecpg' --regression -I$(srcdir)/../../include -I$(srcdir) # Files that most or all ecpg preprocessor test outputs depend on -ECPG_TEST_DEPENDENCIES = ../../preproc/ecpg$(X) \ +ECPG_TEST_DEPENDENCIES = \ $(srcdir)/../regression.h \ $(srcdir)/../../include/sqlca.h \ $(srcdir)/../../include/sqlda.h \ --------------557C1BCDF691D2BBEFC24A2B--