From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Google Summer of Code - some ideas Date: Mon, 22 Apr 2013 23:30:13 +0300 Message-ID: <83a9oqxq96.fsf@gnu.org> References: <83d2tmxvz5.fsf@gnu.org> <87bo961fu6.fsf@moo.wxcvbn.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: ger.gmane.org 1366662631 3374 80.91.229.3 (22 Apr 2013 20:30:31 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 22 Apr 2013 20:30:31 +0000 (UTC) Cc: aurelien.aptel+emacs@gmail.com, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: jca+emacs@wxcvbn.org (=?utf-8?Q?J=C3=A9r=C3=A9mie_Courr=C3=A8ges-Angla?= =?utf-8?Q?s?=) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 22 22:30:31 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UUNNe-0007dI-9S for ged-emacs-devel@m.gmane.org; Mon, 22 Apr 2013 22:30:30 +0200 Original-Received: from localhost ([::1]:34564 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUNNd-0008Vf-Sn for ged-emacs-devel@m.gmane.org; Mon, 22 Apr 2013 16:30:29 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:43686) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUNNZ-0008Qs-D8 for emacs-devel@gnu.org; Mon, 22 Apr 2013 16:30:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UUNNX-0001cc-LI for emacs-devel@gnu.org; Mon, 22 Apr 2013 16:30:25 -0400 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:56606) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUNNX-0001bz-DM for emacs-devel@gnu.org; Mon, 22 Apr 2013 16:30:23 -0400 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MLO00J00BI9JR00@a-mtaout22.012.net.il> for emacs-devel@gnu.org; Mon, 22 Apr 2013 23:30:18 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MLO00JAPBMH1JD0@a-mtaout22.012.net.il>; Mon, 22 Apr 2013 23:30:18 +0300 (IDT) In-reply-to: <87bo961fu6.fsf@moo.wxcvbn.org> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.172 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:159132 Archived-At: > From: jca+emacs@wxcvbn.org (J=C3=A9r=C3=A9mie Courr=C3=A8ges-Anglas= ) > Cc: Aur=C3=A9lien Aptel , > monnier@iro.umontreal.ca, emacs-devel@gnu.org > Date: Mon, 22 Apr 2013 22:16:17 +0200 >=20 > I'm probably not knowledgeable enough about this subject, but... is= it > really easier to get this (raw dlopening) right? If my Emacs build > dlopens gnutls with a major 39, and a few days later my system gets > a 40th gnutls major version because of ABI change, then I will run = into > problems. And I can't count on my package tools dependancy system = to > notice the ABI change, unless I artificially encode the dependancy = on > gnutls or take care to bump my Emacs package to force a rebuild. >=20 > Perhaps are there workarounds or methods to implement this safely i= n > Emacs, but I fear that it would make life harder for some users and > packagers. Emacs already has a solution for all this, in the MS-Windows build (which already loads these libraries dynamically). So what's needed is to use the same arrangement on other platforms, which currently link statically against these libraries. In nutshell, the version against which Emacs was compiled is recorde= d at build time, and then tested against the library at load time.