Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uWwqK-003lHH-03 for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Jul 2025 12:45:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uWwqH-000JYg-Tw for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Jul 2025 12:45:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uWwqH-000JYX-Ed for pgsql-hackers@lists.postgresql.org; Wed, 02 Jul 2025 12:45:38 +0000 Received: from forward100b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d100]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uWwqF-005InO-0X for pgsql-hackers@postgresql.org; Wed, 02 Jul 2025 12:45:37 +0000 Received: from mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net [IPv6:2a02:6b8:c37:71ad:0:640:c587:0]) by forward100b.mail.yandex.net (Yandex) with ESMTPS id 6156D60E56; Wed, 2 Jul 2025 15:45:32 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id UjaRnvBLp0U0-qNz3ob0a; Wed, 02 Jul 2025 15:45:31 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1751460331; bh=svmG8IOGkH42vhXSbktzcaiQmP5g1vUobYH2ko2v3GA=; h=In-Reply-To:From:Cc:Date:References:To:Subject:Message-ID; b=WO/lSWPDIeR/cXgjFeQkK8lIqfrbwsxQr8zy+PCM7+TOMgA9JySj2aJyotfXtzX2r g6HZ1WjAsvnfIr/yzk4tjpZWmI+6b8FsL/DGHl6xKU13Leo8080Jh/Bpv3CyLWkanT kLed3tER2DKNsW7bVz3QmMmys2GfrWiAezHFipGg= Authentication-Results: mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Message-ID: <8a611028-51a1-408c-b592-832e2e6e1fc9@tantorlabs.com> Date: Wed, 2 Jul 2025 15:45:30 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER To: Jacob Champion Cc: PostgreSQL Hackers , lev.nikolaev@tantorlabs.com References: <83C44AB4-24B0-437F-B139-B5CBC5821BB1@yesql.se> <32e5741d-3dc8-4b15-8c56-cfb26483563c@tantorlabs.com> Content-Language: en-US From: Ivan Kush Organization: Tantor Labs LLC In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Thanks for the clarification! I thought linker flags should be installed globally for all compilation targets. Another question: Why don't we set LIBS in the configure in "checking for curl_multi_init" using LIBCURL_LIBS or LIBCURL_LDFLAGS? https://github.com/postgres/postgres/blob/master/configure#L12734 Like this:     LIBS="$(LIBCURL_LDFLAGS) $(LIBCURL_LDLIBS)" And set LIBS with -lcurl. As I understand we need to check the properties of libcurl we are compiling with? It may be some local libcurl from /opt/my_libcurl. So LIBCURL_... may contain a flag like -L/opt/my_libcurl Without these LIBCURL... variables we will check a system libcurl, not our local. I mean why don't we set LIBS current *configure* $as_echo_n "checking for curl_multi_init in -lcurl... " >&6; } .... else   ac_check_lib_save_LIBS=$LIBS LIBS="-lcurl  $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h.  */ https://github.com/postgres/postgres/blob/master/configure#L12734 For example, I've logged flags after this code sample and they don't contain -L/opt/my_libcurl     IVK configure:13648: CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -pipe -O2     IVK configure:13649: LDFLAGS=-Wl,-z,relro -Wl,-z,now -flto=auto -ffat-lto-objects -L/usr/lib/llvm-10/lib -L/usr/local/lib/zstd     IVK configure:13650: LIBS=-lcurl  -lz -lreadline -lpthread -lrt -ldl -lm     IVK configure:13651: LDLIBS= On 25-06-23 18:32, Jacob Champion wrote: > On Fri, Jun 20, 2025 at 3:08 AM Ivan Kush wrote: >> Hello! >> >> This patch fixes CPPFLAGS, LDFLAGS, LIBS when checking AsyncDNS libcurl >> support in configure > Hi Ivan, thanks for the report! Your patch puts new logic directly > after an AC_MSG_ERROR() call, so any effect has to come from the fact > that we're no longer restoring the old compiler and linker flags. > That's not what we want -- Curl needs to be isolated from the rest of > the build. > > Let's focus on the error you're seeing: > >> After compilation during testing some Postgres shared libraries or >> binaries that was linked with libcurl showed an error "version >> CURL_OPENSSL_3 not found (required by …/libcurl.so.4)" > What's your configure line? You need to make sure that your custom > libcurl is used at configure-time, compile-time, and run-time. > > And which binaries are complaining? The only thing that should ever be > linked against libcurl is libpq-oauth-18.so. > > Thanks, > --Jacob -- Best wishes, Ivan Kush Tantor Labs LLC