From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113011 invoked by alias); 6 Dec 2016 20:18:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 112999 invoked by uid 89); 6 Dec 2016 20:18:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_SOFTFAIL autolearn=no version=3.3.2 spammy=baldwin, Baldwin, Frysinger, frysinger X-HELO: mail.baldwin.cx Received: from bigwig.baldwin.cx (HELO mail.baldwin.cx) (96.47.65.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Dec 2016 20:18:36 +0000 Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id BA8EB10A845; Tue, 6 Dec 2016 15:18:34 -0500 (EST) From: John Baldwin To: Mike Frysinger Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] Define an error function in the PPC simulator. Date: Tue, 06 Dec 2016 20:18:00 -0000 Message-ID: <2476434.ez5udtjJNp@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-PRERELEASE; KDE/4.14.10; amd64; ; ) In-Reply-To: <20161126221946.GR21655@vapier.lan> References: <20161124152917.52189-1-jhb@FreeBSD.org> <14422610.OhF153fWFS@ralph.baldwin.cx> <20161126221946.GR21655@vapier.lan> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-IsSubscribed: yes X-SW-Source: 2016-12/txt/msg00175.txt.bz2 On Saturday, November 26, 2016 02:19:46 PM Mike Frysinger wrote: > On 25 Nov 2016 09:21, John Baldwin wrote: > > On Friday, November 25, 2016 08:49:08 AM Mike Frysinger wrote: > > > On 24 Nov 2016 07:29, John Baldwin wrote: > > > > Previously this used the error function from GDB directly instead of > > > > the error method in the host callbacks structure. This was exposed via > > > > a link error when GDB was converted to C++. The error function invokes > > > > the error callback similar to sim_io_error. > > > > > > ppc/main.c and ppc/misc.c already have error() definitions > > > > Yes, though those are not included when libsim is linked into gdb itself. > > misc.o is explicitly included for certain binaries in sim/ppc/Makefile.in. > > Note that zalloc() is defined in both misc.c and sim_calls.c as well, I > > suspect for similar reasons. > > > > Looking at main.c, it overrides various symbols (sim_io_*, also > > zalloc) that are defined in sim_calls.c with local versions. (Perhaps > > psim should not be linking sim_calls.o in at all?) 'error' is another > > such symbol. > > yes, the ppc sim is a bit of mess due to its history. i'm not sure we > should just keep throwing onto the pile though. > > if psim/main.c doesn't need it, then dropping it sounds easy enough. I misread the Makefiles a bit and psim doesn't link in sim_calls.o, so it still needs its own zalloc() and error() in main.c. In particular, ppc/Makefile generates the libsim.a that gdb links against which includes sim_calls.o (via GDB_OBJ) but not main.o or misc.o. The psim binary includes main.o (but not sim_calls.o or misc.o), and the other binaries (igen, dgen, tmp-filter) include misc.o (but not sim_calls.o or main.o). While it might make sense to merge bits of main.c with misc.c, I think the GDB-specific functions in sim_calls.c are always going to be required (including a custom error() that invokes GDB's error hook). -- John Baldwin