Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1Yoyby-0006Gq-Vl for pgsql-hackers@arkaria.postgresql.org; Sun, 03 May 2015 18:27:31 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1Yoyby-0003I9-4K for pgsql-hackers@arkaria.postgresql.org; Sun, 03 May 2015 18:27:30 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1Yoybw-0003I0-0j for pgsql-hackers@postgreSQL.org; Sun, 03 May 2015 18:27:28 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1Yoybp-0001LE-Qt for pgsql-hackers@postgreSQL.org; Sun, 03 May 2015 18:27:26 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id t43IRGK3022062; Sun, 3 May 2015 14:27:16 -0400 From: Tom Lane To: Peter Eisentraut cc: pgsql-hackers@postgreSQL.org Subject: Re: [COMMITTERS] pgsql: Add transforms feature In-reply-to: <5544E5FB.5060705@gmx.net> References: <18844.1430066190@sss.pgh.pa.us> <5544E5FB.5060705@gmx.net> Comments: In-reply-to Peter Eisentraut message dated "Sat, 02 May 2015 10:58:03 -0400" Date: Sun, 03 May 2015 14:27:16 -0400 Message-ID: <22061.1430677636@sss.pgh.pa.us> X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org Peter Eisentraut writes: > On 4/26/15 12:36 PM, Tom Lane wrote: >> I don't know why this patch is fooling around with compile/link flags, >> but it's broken at least prairiedog > The addition of the link flag -undefined dynamic_lookup is so that > plugins can refer to symbols from other plugins. This is how other > platforms work by default, and it is standard for OS X in GNU libtool > and many other projects. I'm confused why prairiedog is complaining > about that. We could look into a fix for prairiedog's situation, but TBH I think that that is going in 100% the wrong direction. I'm pretty desperately unhappy with the design choice you've made here, for two reasons: 1. Preventing undefined-symbol errors at link time might be standard according to some platforms, but it is not the universal default, and I think there is no very good reason to assume that it is possible everywhere. So I'm afraid that prairiedog is just the canary in the coal mine, warning us about portability problems we're going to have with other non-mainstream platforms not represented in the buildfarm. 2. Preventing undefined-symbol errors at link time will hide actual coding errors, not only the intended cross-plugin reference cases. We have repeatedly seen the buildfarm members that complain about this find actual bugs that were missed on laxer platforms. Therefore I think that this approach is going to lead to masking bugs that we'll find only by much more expensive/painful means than noticing a buildfarm failure. Surely there are other ways to deal with this requirement that don't require forcing undefined symbols to be treated as valid. For instance, our existing find_rendezvous_variable() infrastructure might offer a usable solution for passing a function pointer from plugin A to plugin B. Indeed, that's pretty much what it was invented for. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers