From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15830 invoked by alias); 17 Oct 2013 17:50:00 -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 15771 invoked by uid 89); 17 Oct 2013 17:49:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 17 Oct 2013 17:49:59 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r9HHnv4o013689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 17 Oct 2013 13:49:57 -0400 Received: from barimba.redhat.com (ovpn-113-54.phx2.redhat.com [10.3.113.54]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r9HHnvEm021105 for ; Thu, 17 Oct 2013 13:49:57 -0400 From: Tom Tromey To: gdb-patches@sourceware.org Subject: [PATCH v2 0/9] share minimal symbols across objfiles Date: Thu, 17 Oct 2013 17:50:00 -0000 Message-Id: <1382032193-9115-1-git-send-email-tromey@redhat.com> X-SW-Source: 2013-10/txt/msg00521.txt.bz2 This patch series changes minimal symbols to be independent of the program space, and then to be stored in the per-BFD object. That way, they can be shared by all objfiles referring to a given BFD. This saves memory, and, in the case of ELF, the time spent re-reading the symbols. In order to make a minimal symbol independent of the program space, the correct objfile offset must be applied when the symbol's address is computed. This series achieves that by introducing a two-argument form of SYMBOL_VALUE_ADDRESS (but done in a way to ensure that all errors will be caught at compile time); more fully completing the switchover to the use of bound minimal symbols; and finally by changing the definition of the new macro to apply the offsets. This is an update of a patch series I sent earlier: https://sourceware.org/ml/gdb-patches/2011-12/msg00470.html This version differs from the above in that: * There are no FIXMEs left * I updated all the minimal symbol readers * The use of bound minimal symbols (and the earlier removal of msymbol_objfile) solves any potential problem with dlmopen * The earlier series to fix how sections are represented in symbols removes the need for the old "index" patches I built and regtested this on x86-64 Fedora 18 (with the defaults and with -gstabs+), PPC Linux (gcc110 in the compile farm), and AIX (gcc111 in the compile farm). I also built it on Fedora 18 using the mingw cross compiler. Please note that, while I made my best effort to fix everything properly, there's really quite a bit here I can't test. In particular, I have no way to test most of the changes I made to the various symbol readers, in patch #8. If you could, I'd ask that you please test or at least carefully review the relevant bits there. I've pushed this branch to archer.git tromey/split-objfile/msymbol-location-independence to make this simpler. thanks, Tom