From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9527 invoked by alias); 10 Dec 2001 07:35:12 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 9348 invoked from network); 10 Dec 2001 07:33:55 -0000 Received: from unknown (HELO linux.local) (64.164.37.215) by sources.redhat.com with SMTP; 10 Dec 2001 07:33:55 -0000 Received: from wantelbos (wantelbos.local [192.168.0.2]) by linux.local (8.11.6/8.11.6/SuSE Linux 0.5) with ESMTP id fBA7TSl18050; Sun, 9 Dec 2001 23:29:28 -0800 Message-Id: <200112100729.fBA7TSl18050@linux.local> Content-Type: text/plain; charset="iso-8859-1" From: Waldo Bastian To: Joe Buck , Franz Sirl Subject: Re: KDE hackers, please read (was [nathan@codesourcery.com: Re: GCC 3.0.3: Bugs to Fix]) (fwd) Date: Sun, 09 Dec 2001 23:58:00 -0000 X-Mailer: KMail [version 1.3.7] Cc: kde-core-devel@mail.kde.org, gcc@gcc.gnu.org References: <200112042250.OAA02613@atrus.synopsys.com> In-Reply-To: <200112042250.OAA02613@atrus.synopsys.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2001-12/txt/msg00470.txt.bz2 On Tuesday 04 December 2001 02:50 pm, Joe Buck wrote: > > The alternative, banning RTTI from KDE, isn't very attractive either. > > What if you only use RTLD_GLOBAL for those libraries that define base > classes that you'll want to do RTTI with? Or use it everywhere except > with libraries that you know are problematic and sloppy with name spaces, > like the flash plugin and OpenGL. The problem that we had was with things like templates. If two plugins use = the=20 same template, they will get the same symbol-names. When the symbols are=20 loaded in the global namespace, it can happen that plugin A resolves agains= t=20 the symbols of plugin B. When you now unload plugin B you will get a crash= =20 the next time you access plugin A. (Unloading plugins is a risky business anyway, because with 2.9x the proces= s=20 will crash on exit when there were static objects declared within=20 function-scope in the plugin.) To what _extent_ does linking without RTLD_GLOBAL break RTTI? Looking at=20 PR3993 breakage there seems to happen because the module that does the=20 dlopen'ing doesn't strongly define class B (how do you call that, "class B= =20 isn't being emitted"?) That situation could be prevented most of the time = I=20 think. (I believe such classes also have a negative impact on prelinking) Wouldn't then the only remaining problem be classes that are defined in bot= h=20 plugin A and plugin B (e.g. template) but aren't defined in the module that= =20 loads them? RTTI-wise such classes would be considered distinct then if I=20 understand correctly? Franz: You described PR3993 as "another KDE2 blocking bug", where does this= =20 behaviour break stuff in KDE? Cheers, Waldo