Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4hSn-0001rv-Az for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Jun 2022 11:27:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o4hSm-0003Xb-1N for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Jun 2022 11:27:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4hSl-0003XS-O5 for pgsql-hackers@lists.postgresql.org; Fri, 24 Jun 2022 11:26:59 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4hSi-0005A2-Sd for pgsql-hackers@postgresql.org; Fri, 24 Jun 2022 11:26:59 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 8470C5C006D; Fri, 24 Jun 2022 07:26:55 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Fri, 24 Jun 2022 07:26:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1656070015; x= 1656156415; bh=os/JlEa5Fh6mTYMx6v1fY1ltU6yDBJRZN19jWNj8dDs=; b=X xZDJ5QBZQFwxCz8pMmgXZOjw3mYFZC/gIQgixNhZBJIa9EEGHTPixJJD1/TE9VfM X7mYfqrrcVOANJ+Uc7zid5Gpg2m3JgHZjVhZZCIDOwVgauMS/zaw7JJ3wv8O48SP lZqt8W8YQupsJq8q6AgBSdLRBOtEJ2Kk1PaJpRNPrdDbUwuD5wxCzU9DxqsETUBU 6d/VRwg6xsrKo6xtFr+GAhyBvyVSs994U0L/124lrxUuaaoTB1yYAK8Dolw0dEsm WdBmSuqPQRnDFyv83XVKEWE9UjWPRIgRQSyhGbZerLR9m9XIeoa+xobbrz4psQsu +wtcHmEMSie7EvYHdv2yA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudefledgfeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfevfhfhjggtgfesth ejredttdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgv rhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrf grthhtvghrnhepheelffeggedujeetiefhleetuddvieffhfffvdejvdffgeejkeduledu heduieefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epphgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 24 Jun 2022 07:26:54 -0400 (EDT) Message-ID: Date: Fri, 24 Jun 2022 13:26:54 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: Unify DLSUFFIX on Darwin Content-Language: en-US To: Tom Lane Cc: pgsql-hackers References: <3336874.1655905520@sss.pgh.pa.us> From: Peter Eisentraut In-Reply-To: <3336874.1655905520@sss.pgh.pa.us> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 22.06.22 15:45, Tom Lane wrote: > Peter Eisentraut writes: >> macOS has traditionally used extension .dylib for shared libraries (used >> at build time) and .so for dynamically loaded modules (used by >> dlopen()). This complicates the build system a bit. Also, Meson uses >> .dylib for both, so it would be worth unifying this in order to be able >> to get equal build output. > >> There doesn't appear to be any reason to use any particular extension >> for dlopened modules, since dlopen() will accept anything and PostgreSQL >> is well-factored to be able to deal with any extension. Other software >> packages that I have handy appear to be about 50/50 split on which >> extension they use for their plugins. So it seems possible to change >> this safely. > > Doesn't this amount to a fundamental ABI break for extensions? > Yesterday they had to ship foo.so, today they have to ship foo.dylib. Extensions generally only load the module files using the extension-free base name. And if they do specify the extension, they should use the provided DLSUFFIX variable and not hardcode it. So I don't see how this would be a problem.