From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16130 invoked by alias); 4 Aug 2009 00:50:07 -0000 Received: (qmail 16115 invoked by uid 22791); 4 Aug 2009 00:50:06 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Aug 2009 00:50:00 +0000 Received: from zps37.corp.google.com (zps37.corp.google.com [172.25.146.37]) by smtp-out.google.com with ESMTP id n740nvmP004929 for ; Mon, 3 Aug 2009 17:49:57 -0700 Received: from qyk41 (qyk41.prod.google.com [10.241.83.169]) by zps37.corp.google.com with ESMTP id n740ntLi014740 for ; Mon, 3 Aug 2009 17:49:55 -0700 Received: by qyk41 with SMTP id 41so4649838qyk.29 for ; Mon, 03 Aug 2009 17:49:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.81.139 with SMTP id x11mr1610819qck.14.1249346994820; Mon, 03 Aug 2009 17:49:54 -0700 (PDT) In-Reply-To: References: <20090728154001.GA19451@caradoc.them.org> <8ac60eac0907291656v13f568ebw4f3a2b9bb7c7223d@mail.gmail.com> Date: Tue, 04 Aug 2009 00:50:00 -0000 Message-ID: <8ac60eac0908031749y59867374wa451d2f504483390@mail.gmail.com> Subject: Re: Solibs and objfile BFD ownership From: Paul Pluzhnikov To: tromey@redhat.com Cc: gdb@sourceware.org Content-Type: multipart/mixed; boundary=0016369891d5d3d67f04704643b9 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00006.txt.bz2 --0016369891d5d3d67f04704643b9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 730 On Thu, Jul 30, 2009 at 9:15 AM, Tom Tromey wrote: > It seems to me that there are not many choices. Either we must pick a > single owner, pick an order, implement something like reference counting > for BFDs, or have a separate function to clean up the BFDs. Right. Conveniently, 'struct bfd' has usrdata, which is unused in GDB. Here is a stab at reference-counted sharing of BFDs between solib and objfile. -- Paul Pluzhnikov 2009-08-03 Paul Pluzhnikov * objfiles.h (OBJF_KEEPBFD): Delete. (gdb_bfd_unref): New prototype. * objfiles.c (gdb_bfd_unref): New function. (free_objfile): Call gdb_bfd_unref. * solib.c (free_so): Likewise. (symbol_add_stub): Set refcount. --0016369891d5d3d67f04704643b9 Content-Type: text/plain; charset=US-ASCII; name="gdb-bfd-ownership-20090803.txt" Content-Disposition: attachment; filename="gdb-bfd-ownership-20090803.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxxwx1a70 Content-length: 5649 SW5kZXg6IG9iamZpbGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjYwCmRpZmYgLXUgLXAgLXUgLXIxLjYwIG9iamZpbGVz LmgKLS0tIG9iamZpbGVzLmgJMjIgSnVsIDIwMDkgMTk6MjE6MzEgLTAwMDAJ MS42MAorKysgb2JqZmlsZXMuaAk0IEF1ZyAyMDA5IDAwOjQwOjU1IC0wMDAw CkBAIC00MTQsMTIgKzQxNCw2IEBAIHN0cnVjdCBvYmpmaWxlCiAKICNkZWZp bmUgT0JKRl9VU0VSTE9BREVECSgxIDw8IDMpCS8qIFVzZXIgbG9hZGVkICov CiAKLS8qIFRoZSBiZmQgb2YgdGhpcyBvYmpmaWxlIGlzIHVzZWQgb3V0c2lk ZSBvZiB0aGUgb2JqZmlsZSAoZS5nLiBieSBzb2xpYikuCi0gICBEbyBub3Qg dHJ5IHRvIGZyZWUgaXQuICAqLwotCi0jZGVmaW5lIE9CSkZfS0VFUEJGRAko MSA8PCA0KQkvKiBEbyBub3QgZGVsZXRlIGJmZCAqLwotCi0KIC8qIFRoZSBv YmplY3QgZmlsZSB0aGF0IHRoZSBtYWluIHN5bWJvbCB0YWJsZSB3YXMgbG9h ZGVkIGZyb20gKGUuZy4gdGhlCiAgICBhcmd1bWVudCB0byB0aGUgInN5bWJv bC1maWxlIiBvciAiZmlsZSIgY29tbWFuZCkuICAqLwogCkBAIC01MTAsNiAr NTA0LDggQEAgZXh0ZXJuIHZvaWQgc2V0X29iamZpbGVfZGF0YSAoc3RydWN0 IG9iagogCQkJICAgICAgY29uc3Qgc3RydWN0IG9iamZpbGVfZGF0YSAqZGF0 YSwgdm9pZCAqdmFsdWUpOwogZXh0ZXJuIHZvaWQgKm9iamZpbGVfZGF0YSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAJCQkgICBjb25zdCBzdHJ1Y3Qg b2JqZmlsZV9kYXRhICpkYXRhKTsKKworZXh0ZXJuIHZvaWQgZ2RiX2JmZF91 bnJlZiAoc3RydWN0IGJmZCAqYWJmZCk7CiAMCiAKIC8qIFRyYXZlcnNlIGFs bCBvYmplY3QgZmlsZXMuICBBTExfT0JKRklMRVNfU0FGRSB3b3JrcyBldmVu IGlmIHlvdSBkZWxldGUKSW5kZXg6IG9iamZpbGVzLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxl cy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg4CmRpZmYgLXUgLXAgLXUg LXIxLjg4IG9iamZpbGVzLmMKLS0tIG9iamZpbGVzLmMJMjggSnVsIDIwMDkg MTY6Mzk6MDYgLTAwMDAJMS44OAorKysgb2JqZmlsZXMuYwk0IEF1ZyAyMDA5 IDAwOjQwOjU1IC0wMDAwCkBAIC00NTIsMTYgKzQ1Miw3IEBAIGZyZWVfb2Jq ZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgIC8qIERpc2NhcmQg YW55IGRhdGEgbW9kdWxlcyBoYXZlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2Jq ZmlsZS4gICovCiAgIG9iamZpbGVfZnJlZV9kYXRhIChvYmpmaWxlKTsKIAot ICAvKiBXZSBhbHdheXMgY2xvc2UgdGhlIGJmZCwgdW5sZXNzIHRoZSBPQkpG X0tFRVBCRkQgZmxhZyBpcyBzZXQuICAqLwotCi0gIGlmIChvYmpmaWxlLT5v YmZkICE9IE5VTEwgJiYgIShvYmpmaWxlLT5mbGFncyAmIE9CSkZfS0VFUEJG RCkpCi0gICAgewotICAgICAgY2hhciAqbmFtZSA9IGJmZF9nZXRfZmlsZW5h bWUgKG9iamZpbGUtPm9iZmQpOwotICAgICAgaWYgKCFiZmRfY2xvc2UgKG9i amZpbGUtPm9iZmQpKQotCXdhcm5pbmcgKF8oImNhbm5vdCBjbG9zZSBcIiVz XCI6ICVzIiksCi0JCSBuYW1lLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9y ICgpKSk7Ci0gICAgICB4ZnJlZSAobmFtZSk7Ci0gICAgfQorICBnZGJfYmZk X3VucmVmIChvYmpmaWxlLT5vYmZkKTsKIAogICAvKiBSZW1vdmUgaXQgZnJv bSB0aGUgY2hhaW4gb2YgYWxsIG9iamZpbGVzLiAqLwogCkBAIC0xMDIwLDMg KzEwMTEsMzEgQEAgb2JqZmlsZXNfY2hhbmdlZCAodm9pZCkKIHsKICAgb2Jq ZmlsZXNfY2hhbmdlZF9wID0gMTsgIC8qIFJlYnVpbGQgc2VjdGlvbiBtYXAg bmV4dCB0aW1lIHdlIG5lZWQgaXQuICAqLwogfQorCisvKiBVbnJlZmVyZW5j ZSBhbmQgcG9zc2libHkgY2xvc2UgYWJmZC4gICovCit2b2lkCitnZGJfYmZk X3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKQoreworICBpbnQgKnBfcmVmY291 bnQ7CisgIGNoYXIgKm5hbWU7CisKKyAgaWYgKGFiZmQgPT0gTlVMTCkKKyAg ICByZXR1cm47CisKKyAgcF9yZWZjb3VudCA9IGFiZmQtPnVzcmRhdGE7Cisg IGlmIChwX3JlZmNvdW50ICE9IE5VTEwpCisgICAgeworICAgICAgZ2RiX2Fz c2VydCAoKnBfcmVmY291bnQgPiAwKTsKKyAgICAgICpwX3JlZmNvdW50IC09 IDE7CisgICAgICBpZiAoKnBfcmVmY291bnQgPiAwKQorCXJldHVybjsKKyAg ICB9CisgIHhmcmVlIChwX3JlZmNvdW50KTsKKyAgYWJmZC0+dXNyZGF0YSA9 IE5VTEw7ICAvKiBQYXJhbm9pYS4gICovCisKKyAgbmFtZSA9IGJmZF9nZXRf ZmlsZW5hbWUgKGFiZmQpOworICBpZiAoIWJmZF9jbG9zZSAoYWJmZCkpCisg ICAgd2FybmluZyAoXygiY2Fubm90IGNsb3NlIFwiJXNcIjogJXMiKSwKKwkg ICAgIG5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKyAg eGZyZWUgKG5hbWUpOworfQpJbmRleDogc29saWIuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3NvbGliLmMs dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIyCmRpZmYgLXUgLXAgLXUgLXIx LjEyMiBzb2xpYi5jCi0tLSBzb2xpYi5jCTE3IEp1bCAyMDA5IDE3OjA4OjIz IC0wMDAwCTEuMTIyCisrKyBzb2xpYi5jCTQgQXVnIDIwMDkgMDA6NDA6NTUg LTAwMDAKQEAgLTQyMSwyMSArNDIxLDExIEBAIHZvaWQKIGZyZWVfc28gKHN0 cnVjdCBzb19saXN0ICpzbykKIHsKICAgc3RydWN0IHRhcmdldF9zb19vcHMg Km9wcyA9IHNvbGliX29wcyAodGFyZ2V0X2dkYmFyY2gpOwotICBjaGFyICpi ZmRfZmlsZW5hbWUgPSAwOwogCiAgIGlmIChzby0+c2VjdGlvbnMpCiAgICAg eGZyZWUgKHNvLT5zZWN0aW9ucyk7Ci0gICAgICAKLSAgaWYgKHNvLT5hYmZk KQotICAgIHsKLSAgICAgIGJmZF9maWxlbmFtZSA9IGJmZF9nZXRfZmlsZW5h bWUgKHNvLT5hYmZkKTsKLSAgICAgIGlmICghIGJmZF9jbG9zZSAoc28tPmFi ZmQpKQotCXdhcm5pbmcgKF8oImNhbm5vdCBjbG9zZSBcIiVzXCI6ICVzIiks Ci0JCSBiZmRfZmlsZW5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3Ig KCkpKTsKLSAgICB9CiAKLSAgaWYgKGJmZF9maWxlbmFtZSkKLSAgICB4ZnJl ZSAoYmZkX2ZpbGVuYW1lKTsKKyAgZ2RiX2JmZF91bnJlZiAoc28tPmFiZmQp OwogCiAgIG9wcy0+ZnJlZV9zbyAoc28pOwogCkBAIC00NTQsNiArNDQ0LDcg QEAgc3RhdGljIHZvaWQKIHN5bWJvbF9hZGRfc3R1YiAoc3RydWN0IHNvX2xp c3QgKnNvLCBpbnQgZmxhZ3MpCiB7CiAgIHN0cnVjdCBzZWN0aW9uX2FkZHJf aW5mbyAqc2FwOworICBpbnQgKnBfcmVmY291bnQ7CiAKICAgLyogSGF2ZSB3 ZSBhbHJlYWR5IGxvYWRlZCB0aGlzIHNoYXJlZCBvYmplY3Q/ICAqLwogICBB TExfT0JKRklMRVMgKHNvLT5vYmpmaWxlKQpAQCAtNDY1LDggKzQ1NiwxMSBA QCBzeW1ib2xfYWRkX3N0dWIgKHN0cnVjdCBzb19saXN0ICpzbywgaW50CiAg IHNhcCA9IGJ1aWxkX3NlY3Rpb25fYWRkcl9pbmZvX2Zyb21fc2VjdGlvbl90 YWJsZSAoc28tPnNlY3Rpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvLT5zZWN0aW9uc19lbmQp OwogCi0gIHNvLT5vYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZk IChzby0+YWJmZCwgZmxhZ3MsCi0JCQkJCSAgc2FwLCBPQkpGX1NIQVJFRCB8 IE9CSkZfS0VFUEJGRCk7CisgIHNvLT5vYmpmaWxlID0gc3ltYm9sX2ZpbGVf YWRkX2Zyb21fYmZkIChzby0+YWJmZCwgZmxhZ3MsIHNhcCwgT0JKRl9TSEFS RUQpOworICBwX3JlZmNvdW50ID0gbWFsbG9jIChzaXplb2YgKCpwX3JlZmNv dW50KSk7CisgICpwX3JlZmNvdW50ID0gMjsgIC8qIEJvdGggc29saWIgYW5k IG9iamZpbGUgcmVmZXIgdG8gdGhpcyBhYmZkLiAgKi8KKyAgc28tPmFiZmQt PnVzcmRhdGEgPSBwX3JlZmNvdW50OworCiAgIGZyZWVfc2VjdGlvbl9hZGRy X2luZm8gKHNhcCk7CiAKICAgcmV0dXJuOwo= --0016369891d5d3d67f04704643b9--