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 1se0ml-0036FH-EU for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Aug 2024 23:18:39 +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 1se0ll-006wGa-J3 for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Aug 2024 23:17:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1se0ll-006wGR-3W for pgsql-hackers@lists.postgresql.org; Tue, 13 Aug 2024 23:17:37 +0000 Received: from fhigh6-smtp.messagingengine.com ([103.168.172.157]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1se0li-004c2v-2K for pgsql-hackers@postgresql.org; Tue, 13 Aug 2024 23:17:35 +0000 Received: from phl-compute-07.internal (phl-compute-07.nyi.internal [10.202.2.47]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 028E3114AB8D; Tue, 13 Aug 2024 19:17:33 -0400 (EDT) Received: from wimap25 ([10.202.2.85]) by phl-compute-07.internal (MEProxy); Tue, 13 Aug 2024 19:17:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=partin.io; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1723591052; x=1723677452; bh=vNGauzVsRi NIgzxvcQTZEpsqwaeVe5bnRxcEFxu+PQ4=; b=YirAfCiD4J0JulN+kjSy0CJKS0 wa/ZLQG/N99PRGr5b1lxIOhwMfKvtsFoPXwhxN9zvpfA+HNDgEw5V/yxk2zZmSOy yf5Zew/tPvZKI+puhI2iKDsL7c3YqRnytUU9kQVq2ps9JZXPGsc3v1mvP6/zqqOb isvfU9E3c4OaTmnNJpc9MkVe4KtJkdJxHiihfvpgIMIixn10z8xWqOzVTDhpT282 pfHiMcYBwlfogTJp/wkgMvfeRyYuIyPKNbyL6Nt+i5udgCobzlA1PMutHZEBR/0o HoA65QL5K0dkF2vmfDXDvJY7s3qXkcsVn5BGz8JUJ0ukDx/hON9beo4hAhzg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1723591052; x=1723677452; bh=vNGauzVsRiNIgzxvcQTZEpsqwaeV e5bnRxcEFxu+PQ4=; b=iN25g8/smwy/+J+GXIgXmRp06g55OF7IGI9JTRvyRFKB gV751VZ86TZVWTnFaHub7gR4yhULg682lyZkmqzV0FQ/D+nj+dlH+xlVVxfrYioo 7uTED1o0PWcIs6i6SO71PN/YhI7Hx0JJowUUzaNwqK1MHISPIiXsljLkTbhYXxev sVTkti5IYaw3+YeKQrhOCzWZqOYIJOgGWl/v6hqonn1jJQ/oKjdKEXUsaWiOhLZb xxQwgyz3txKbvctS6K3ycttNsG5gBJL7ih861ANgEVB6CDbVSwrCFJjb9cBfaXr0 5Bi1jC5J2ZPV+nAUwq1vsyWyNmyxa1zloFIPPMj2ag== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddtfedgvdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepofgtggffkffhvefuvffofhgjsehmtderreertdej necuhfhrohhmpedfvfhrihhsthgrnhcurfgrrhhtihhnfdcuoehtrhhishhtrghnsehprg hrthhinhdrihhoqeenucggtffrrghtthgvrhhnpeffjeeukeejgfevkedtgeekhedthefh uefhtdefkeduveffueevleduleeuudejtdenucffohhmrghinhepnhgvohhnrdhtvggthh enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehtrhhi shhtrghnsehprghrthhinhdrihhopdhnsggprhgtphhtthhopeefpdhmohguvgepshhmth hpohhuthdprhgtphhtthhopehthhhomhgrshdrmhhunhhrohesghhmrghilhdrtghomhdp rhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh dprhgtphhtthhopehtghhlsehsshhsrdhpghhhrdhprgdruhhs X-ME-Proxy: Feedback-ID: idd01497b:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 88F631040061; Tue, 13 Aug 2024 19:17:32 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface Content-Type: multipart/mixed; boundary=fd5f344420b9f6c6850719361e5cb46bea88b50e207696019c1f13d0dfcf Mime-Version: 1.0 Date: Tue, 13 Aug 2024 18:17:31 -0500 Message-Id: From: "Tristan Partin" Cc: "pgsql-hackers" Subject: Re: On non-Windows, hard depend on uselocale(3) To: "Thomas Munro" , "Tom Lane" X-Mailer: aerc 0.18.2-26-g7aff1678efa9 References: <2689177.1700070346@sss.pgh.pa.us> <2946058.1700081498@sss.pgh.pa.us> <12842.1700083028@sss.pgh.pa.us> <98824.1700089582@sss.pgh.pa.us> <664255.1700245108@sss.pgh.pa.us> <810814.1700261928@sss.pgh.pa.us> <1155474.1700433384@sss.pgh.pa.us> <1330178.1700498443@sss.pgh.pa.us> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --fd5f344420b9f6c6850719361e5cb46bea88b50e207696019c1f13d0dfcf Content-Type: multipart/alternative; boundary=b66228576d6d4e7469f1998b992b28d8f14da41fbbf9e74d75958ffa8bf3 --b66228576d6d4e7469f1998b992b28d8f14da41fbbf9e74d75958ffa8bf3 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed Hey Thomas, Thanks for picking this up. I think your patch looks really good. Are=20 you familiar with gcc's function poisoning? #include #pragma GCC poison puts =09 int main(){ #pragma GCC bless begin puts puts("a"); #pragma GCC bless end puts } I wonder if we could use function poisoning to our advantage. For=20 instance in ecpg, it looks like you got all of the strtod() invocations=20 and replaced them with strtod_l(). Here is a patch with an example of=20 what I'm talking about. --=20 Tristan Partin Neon (https://neon.tech) --b66228576d6d4e7469f1998b992b28d8f14da41fbbf9e74d75958ffa8bf3-- --fd5f344420b9f6c6850719361e5cb46bea88b50e207696019c1f13d0dfcf Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-Poison-strtod-in-ecpg.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-Poison-strtod-in-ecpg.patch RnJvbSBhNzZhM2YyNTc3ZDA5OGY3Y2U1YTNlZDE3NjhhY2E0MjkzYWVkZmNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBwYXJ0aW4uaW8+CkRh dGU6IFR1ZSwgMTMgQXVnIDIwMjQgMTg6MDY6MjAgLTA1MDAKU3ViamVjdDogW1BBVENIIHYxXSBQ b2lzb24gc3RydG9kIGluIGVjcGcKCmVjcGcgZXhjbHVzaXZlbHkgdXNlcyBzdHJ0b2RfbCBub3cu CgpTaWduZWQtb2ZmLWJ5OiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBwYXJ0aW4uaW8+Ci0tLQog c3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2RhdGEuYyAgICAgICAgIHwgMSArCiBzcmMvaW50 ZXJmYWNlcy9lY3BnL2luY2x1ZGUvZWNwZ19wb2lzb24uaCAgfCA2ICsrKysrKwogc3JjL2ludGVy ZmFjZXMvZWNwZy9wZ3R5cGVzbGliL2R0X2NvbW1vbi5jIHwgMSArCiBzcmMvaW50ZXJmYWNlcy9l Y3BnL3BndHlwZXNsaWIvaW50ZXJ2YWwuYyAgfCAxICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvcGd0 eXBlc2xpYi9udW1lcmljLmMgICB8IDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdf cG9pc29uLmgKCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGF0YS5j IGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2RhdGEuYwppbmRleCA4NTZmNGM5NDcyZC4u MTMwMjNmYzIxZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kYXRh LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2RhdGEuYwpAQCAtNiw2ICs2LDcg QEAKICNpbmNsdWRlIDxtYXRoLmg+CiAKICNpbmNsdWRlICJlY3BnZXJybm8uaCIKKyNpbmNsdWRl ICJlY3BnX3BvaXNvbi5oIgogI2luY2x1ZGUgImVjcGdsaWIuaCIKICNpbmNsdWRlICJlY3BnbGli X2V4dGVybi5oIgogI2luY2x1ZGUgImVjcGd0eXBlLmgiCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9lY3BnL2luY2x1ZGUvZWNwZ19wb2lzb24uaCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5j bHVkZS9lY3BnX3BvaXNvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li45N2FlOWQ3YTE0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5j bHVkZS9lY3BnX3BvaXNvbi5oCkBAIC0wLDAgKzEsNiBAQAorI2lmbmRlZiBfRUNQR19QT0lTT05f SAorI2RlZmluZSBfRUNQR19QT0lTT05fSAorCisjcHJhZ21hIEdDQyBwb2lzb24gc3RydG9kCisK KyNlbmRpZgkJCQkJCQkvKiAhX0VDUEdfUE9JU09OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9kdF9jb21tb24uYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv cGd0eXBlc2xpYi9kdF9jb21tb24uYwppbmRleCA5MjQ1OTcyOGJmNC4uMmE5YzVlYzMyYzAgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9kdF9jb21tb24uYworKysg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvZHRfY29tbW9uLmMKQEAgLTgsNiArOCw3 IEBACiAKICNpbmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAiZHQuaCIKKyNpbmNs dWRlICJlY3BnX3BvaXNvbi5oIgogI2luY2x1ZGUgInBndHlwZXNfdGltZXN0YW1wLmgiCiAjaW5j bHVkZSAicGd0eXBlc2xpYl9leHRlcm4uaCIKIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv ZWNwZy9wZ3R5cGVzbGliL2ludGVydmFsLmMgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNs aWIvaW50ZXJ2YWwuYwppbmRleCAxNTVjNmNjNzc3MC4uYmZjYzcyMzM5OTkgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9pbnRlcnZhbC5jCisrKyBiL3NyYy9pbnRl cmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9pbnRlcnZhbC5jCkBAIC0xMiw2ICsxMiw3IEBACiAKICNp bmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAiZHQuaCIKKyNpbmNsdWRlICJlY3Bn X3BvaXNvbi5oIgogI2luY2x1ZGUgInBndHlwZXNfZXJyb3IuaCIKICNpbmNsdWRlICJwZ3R5cGVz X2ludGVydmFsLmgiCiAjaW5jbHVkZSAicGd0eXBlc2xpYl9leHRlcm4uaCIKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9udW1lcmljLmMgYi9zcmMvaW50ZXJmYWNl cy9lY3BnL3BndHlwZXNsaWIvbnVtZXJpYy5jCmluZGV4IDQ5OTM4NTQzZDAzLi4yNjIzZjM2MjU2 NSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wZ3R5cGVzbGliL251bWVyaWMuYwor KysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvbnVtZXJpYy5jCkBAIC02LDYgKzYs NyBAQAogI2luY2x1ZGUgPGZsb2F0Lmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAKKyNpbmNsdWRl ICJlY3BnX3BvaXNvbi5oIgogI2luY2x1ZGUgInBndHlwZXNfZXJyb3IuaCIKICNpbmNsdWRlICJw Z3R5cGVzX251bWVyaWMuaCIKICNpbmNsdWRlICJwZ3R5cGVzbGliX2V4dGVybi5oIgotLSAKVHJp c3RhbiBQYXJ0aW4KaHR0cHM6Ly90cmlzdGFuLnBhcnRpbi5pbwoK --fd5f344420b9f6c6850719361e5cb46bea88b50e207696019c1f13d0dfcf--