From owner-freebsd-gnome@FreeBSD.ORG Thu May 5 16:16:14 2011 Return-Path: Delivered-To: gnome@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FC73106564A for ; Thu, 5 May 2011 16:16:14 +0000 (UTC) (envelope-from BATV+0ed48d66330f6077f7fc+2811+infradead.org+dwmw2@casper.srs.infradead.org) Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:770:15f::2]) by mx1.freebsd.org (Postfix) with ESMTP id 1999A8FC1E for ; Thu, 5 May 2011 16:16:14 +0000 (UTC) Received: from i7.infradead.org ([2001:8b0:10b:1:225:64ff:fee8:e9df]) by casper.infradead.org with esmtpsa (Exim 4.72 #1 (Red Hat Linux)) id 1QI1Dw-0002iT-83; Thu, 05 May 2011 16:16:20 +0000 From: David Woodhouse To: Matthias Apitz Date: Thu, 05 May 2011 17:16:11 +0100 In-Reply-To: <20110505113043.GA3161@sh4-5.1blu.de> References: <20110428140106.GA5664@sh4-5.1blu.de> <1303999409.2912.129.camel@macbook.infradead.org> <20110428145451.GA25158@sh4-5.1blu.de> <1304003620.4772.16.camel@macbook.infradead.org> <20110429084846.GA2763@sh4-5.1blu.de> <20110504094447.GA30294@sh4-5.1blu.de> <1304502723.6400.114.camel@macbook.infradead.org> <20110504104528.GA24928@sh4-5.1blu.de> <1304506085.6400.128.camel@macbook.infradead.org> <20110504125636.GA13323@sh4-5.1blu.de> <20110505113043.GA3161@sh4-5.1blu.de> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.0.0 (3.0.0-1.fc15) Content-Transfer-Encoding: 7bit Message-ID: <1304612172.2398.24.camel@i7.infradead.org> Mime-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org See http://www.infradead.org/rpr.html Cc: gnome@freebsd.org, evolution-list@gnome.org Subject: Re: [Evolution] evolution-2.32.1 (FreeBSD HEAD) && calendar not working X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 16:16:14 -0000 On Thu, 2011-05-05 at 13:30 +0200, Matthias Apitz wrote: > as you can see e2k_ascii_strcase_hash() is in two shared libs and with > the same last bits of the correct addr and the broken addr; as I wild > guess I simply renamed 'libecalbackendexchange.so' to get it out of the > way; the e-calendar-factory complains about it: > (e-calendar-factory:36266): e-data-server-WARNING **: Cannot open > "/usr/local/lib/evolution-data-server-1.2/extensions/libebookbackendexchange.so" I think you renamed libebookbackendexchange.so, not libecalbackendexchange.so ? So your *calendar* works, but presumably not your address book? I see the problem now. We build these 'library' functions in the server/lib/ directory into a static library 'libexchange.a', and that whole thing gets included into *both* the calendar and the addressbook plugins. So of course the same function exists in *both* of the shared libraries that get loaded. The addressbook plugin then gets *unloaded*, I think, when the calendar-server decides that it isn't a calendar plugin. And I think that what you're seeing here is a bug in your platform's dynamic linker. Even though the addressbook plugin got unloaded, the internal symbols in the calendar plugin get resolved to point at it. Then again, maybe it's not a bug; maybe it's just undefined behaviour. I don't remember what is *expected* to happen in this case. But quite frankly, we got what we deserve; we *know* that weird shit happens on a lot of platforms when we do that, so we shouldn't have been doing it in the first place. We should have made our 'libexchange' into a shared library, or played namespace/linker-script tricks to ensure that those functions weren't *exported* from our plugin 'library' objects. I think you'll find this is 'fixed' in Evolution 3.0 merely because the calendar factory no longer loads the addressbook plugins, and vice versa; they are stored in separate directories now. But I suspect we should still fix it *properly* anyway. -- dwmw2