From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77354 invoked by alias); 18 Apr 2018 02:49:01 -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 76642 invoked by uid 89); 18 Apr 2018 02:48:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Series, seriously, fort, Upon X-HELO: simark.ca Received: from simark.ca (HELO simark.ca) (158.69.221.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 18 Apr 2018 02:48:49 +0000 Received: from [10.0.0.11] (unknown [192.222.164.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 102A91E17E; Tue, 17 Apr 2018 22:48:39 -0400 (EDT) Subject: Re: [PATCH v5 0/8] Remove gdbserver dependency on xml files To: Alan Hayward , gdb-patches@sourceware.org Cc: nd@arm.com References: <20180410143337.71768-1-alan.hayward@arm.com> From: Simon Marchi Message-ID: <9cd9f1bc-9e4b-1fd9-89aa-9b6461bf1f3a@simark.ca> Date: Wed, 18 Apr 2018 02:49:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180410143337.71768-1-alan.hayward@arm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2018-04/txt/msg00365.txt.bz2 On 2018-04-10 10:33 AM, Alan Hayward wrote: > V5 addresses Simon's review comments, mostly in the first two patches and the > "Create xml..." patch. Added changes since previous verion in the patch > headers. Series is slightly shorted as some early patches have been committed. > > Summary: > > For those targets that use new style target descriptions (also known as > flexible target descriptions), this set of patches removes the dependency on > xml files. Namely: > * Removes inclusion of xml files within gdbserver. > * Removes the requirement for the .c files in features/ to be generated from > cached xml files. > This is made possible by changing xml descriptions generated by gdbserver, so > that instead of including xml file names, gdbserver now generate a complete > xml description. > > The second point will be required for aarch64 SVE support, where the register > size are variable. Creating SVE xml files for every possible vector length > would not be feasible. Instead the plan for aarch64 SVE is to hand write the > features/ .c code that would normally be generated from xml. > > Targets which use the older style target descriptions have not been changed. > > > XML Generation: > > In existing code, gdbserver uses C code auto generated from xml files to > create target descriptions. When sending an xml description to GDB, the > function tdesc_get_features_xml () creates an xml containing the name of the > original xml file(s). For example: > > > > i386 > GNU/Linux > > > > > > > Upon receipt, GDB then makes requests to gdbserver for the contents of the > xml files. Gdbserver keeps full copies all the xml files inside the binary. > > This patch series adds common code that allows gdbserver (and gdb) to turn > a C target description structure into xml. > Now when asked fort an xml description to gdb, gdbserver turns the entire > target description structure back into xml, without using any cached files. > Producing, for example: > > > > i386 > GNU/Linux > > > > > > > ...etc... > > > Patch Contents: > > Patches 1-3 commonise the various target descriptor functionality, allowing > gdbserver to parse target descriptions in the same way as gdb. This series > does not commonise target_desc, but this is hopefully a long term goal. > > The sixth patch adds the xml printer, which iterates through the parsing > generated in the previous patches. > > The other patches are clean up patches. > > Patches have been tested on a make check on x86 targets=all build with > target boards unix and native-gdbserver. Also built and tested aarch64 and > Arm32 (which uses old style descriptions) > In addition, new test cases are added to the unit tests. Hi Alan, Thanks a lot for this writeup, it was very useful to get back in the subject, since a few weeks is enough for me to forget everything I learned last time :) Seriously, it helps a lot, and I'm sure it will be a good reference in the future. I replied to some patches, those I have not replied to LGTM. I think that with those little fixes, this series is ready to go in (as far as my target description knowledge goes). Simon