From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12132 invoked by alias); 25 Apr 2010 15:47:48 -0000 Received: (qmail 12118 invoked by uid 22791); 25 Apr 2010 15:47:46 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 25 Apr 2010 15:47:41 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id CE5DD2BAC6A for ; Sun, 25 Apr 2010 11:47:39 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id h8A6jn4YnIpR for ; Sun, 25 Apr 2010 11:47:39 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id BCE2E2BABDE for ; Sun, 25 Apr 2010 11:47:37 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 5D516F5896; Sun, 25 Apr 2010 11:47:37 -0400 (EDT) From: Joel Brobecker To: gdb-patches@sourceware.org Subject: Adding support for VxWorks target Date: Sun, 25 Apr 2010 15:47:00 -0000 Message-Id: <1272210447-13895-1-git-send-email-brobecker@adacore.com> 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 X-SW-Source: 2010-04/txt/msg00838.txt.bz2 Hello, The following series of patches adds support for cross debugging VxWorks targets (version 5.x, 6.x and limited support for VxWorks 653). It's a lot of code overall, and many patches, but it is almost completely contained in dedicated files, and we've split the changes in modules/patches, hoping to make it easier for anyone wanting to look at them. With VxWorks systems, we communicate with the target by establishing a connection with the "target server". The target server is a server running on a host which acts as a multiplexer. The protocol used between the target server and the target itself is undocumented, and extremely version/system dependent. The protocol used to talk to the target server is not documented per se, but WindRiver provides an API that allows us to do the communication. What we do, in this port, is use the API to send the various request. The one problem with the API is that it is not all that stable across versions - compatibility of the API between WTX versions (we support versions 2, 3 and 4) is not guaranteed. As a result, we created a thin abstraction on top of the WTX API that Wind River provides which allowed us to have that consistent API, making the real code a *LOT* simpler. As you will see if you read the description of some of the patches, there are a couple of things that we implemented one way which is definitly on the quick-and-dirty how-else-could-I-do-it-without- making-changes-everywhere side. I've pulled these changes out for now, and we intend to discuss those issues separately in order to find the proper way to fix them. The only side-effect of pulling these changes out, as it turns out, is that we are losing support for partitions in VxWorks 653 systems. Lastly, these patches were tested on VxWorks 5.x and VxWorks 6.x using AdaCore's testsuite. We were actually quite surprised at the almost clean results we got! :) Documentation will of course follow if the patches make it in the FSF tree...