From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25548 invoked by alias); 30 Aug 2013 13:30:51 -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 25537 invoked by uid 89); 30 Aug 2013 13:30:51 -0000 Received: from anubis.se.axis.com (HELO anubis.se.axis.com) (195.60.68.12) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 30 Aug 2013 13:30:51 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.5 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: anubis.se.axis.com Received: from localhost (localhost [127.0.0.1]) by anubis.se.axis.com (Postfix) with ESMTP id 88C8D19E5A for ; Fri, 30 Aug 2013 15:30:48 +0200 (CEST) Received: from anubis.se.axis.com ([127.0.0.1]) by localhost (anubis.se.axis.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id OKTcDyWBQc8a for ; Fri, 30 Aug 2013 15:30:47 +0200 (CEST) Received: from boulder.se.axis.com (boulder.se.axis.com [10.0.2.104]) by anubis.se.axis.com (Postfix) with ESMTP id 8087319F61 for ; Fri, 30 Aug 2013 15:29:18 +0200 (CEST) Received: from boulder.se.axis.com (localhost [127.0.0.1]) by postfix.imss71 (Postfix) with ESMTP id 6A1F9582 for ; Fri, 30 Aug 2013 15:29:18 +0200 (CEST) Received: from seth.se.axis.com (seth.se.axis.com [10.0.2.172]) by boulder.se.axis.com (Postfix) with ESMTP id 5F146482 for ; Fri, 30 Aug 2013 15:29:18 +0200 (CEST) Received: from xmail2.se.axis.com (xmail2.se.axis.com [10.0.5.74]) by seth.se.axis.com (Postfix) with ESMTP id 5D8023E06F for ; Fri, 30 Aug 2013 15:29:18 +0200 (CEST) Received: from lnxricardw.se.axis.com (10.88.7.1) by xmail2.se.axis.com (10.0.5.74) with Microsoft SMTP Server (TLS) id 8.2.255.0; Fri, 30 Aug 2013 15:29:18 +0200 Date: Fri, 30 Aug 2013 13:30:00 -0000 From: Ricard Wanderlof To: Subject: [PATCH] Fix CRISv32 compilation Message-ID: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_alpineDEB200130830151304010770lnxricardwseaxiscom_" Content-ID: X-SW-Source: 2013-08/txt/msg00914.txt.bz2 --_002_alpineDEB200130830151304010770lnxricardwseaxiscom_ Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8BIT Content-ID: Content-length: 2732 This patch adds support for threaded debugging on the CRISv32 architecture. It's been floating around for several years now in our local repository so it's way overdue pushing upstream. Patch included inline for review and as attachement for use. Suggested-by: Edgar Iglisias Signed-off-by: Ricard Wanderlof 2013-08-30 Ricard Wanderlof * cris-tdep.c: Fix typedef for elf_greg_t. (cris_gdbarch_init): Add call to set_gdbarch_fetch_tls_load_module_address. gdbserver * linux-crisv32-low.c (ps_get_thread_area): New function. diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 03041e4..dce2724 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3820,7 +3820,7 @@ cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info) } /* Copied from . */ -typedef unsigned long elf_greg_t; +typedef uint32_t elf_greg_t; /* Same as user_regs_struct struct in . */ #define CRISV10_ELF_NGREG 35 @@ -4137,6 +4137,9 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_single_step_through_delay (gdbarch, crisv32_single_step_through_delay); + set_gdbarch_fetch_tls_load_module_address (gdbarch, + svr4_fetch_objfile_link_map); + break; default: diff --git a/gdb/gdbserver/linux-crisv32-low.c b/gdb/gdbserver/linux-crisv32-low.c index 2849d02..84cb7ff 100644 --- a/gdb/gdbserver/linux-crisv32-low.c +++ b/gdb/gdbserver/linux-crisv32-low.c @@ -27,6 +27,10 @@ extern const struct target_desc *tdesc_crisv32; /* CRISv32 */ #define cris_num_regs 49 +#ifndef PTRACE_GET_THREAD_AREA +#define PTRACE_GET_THREAD_AREA 25 +#endif + /* Note: Ignoring USP (having the stack pointer in two locations causes trouble without any significant gain). */ @@ -339,6 +343,20 @@ cris_stopped_data_address (void) return eda; } +ps_err_e +ps_get_thread_area (const struct ps_prochandle *ph, + lwpid_t lwpid, int idx, void **base) +{ + if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0) + return PS_ERR; + + /* IDX is the bias from the thread pointer to the beginning of the + thread descriptor. It has to be subtracted due to implementation + quirks in libthread_db. */ + *base = (void *) ((char *)*base - idx); + return PS_OK; +} + static void cris_fill_gregset (struct regcache *regcache, void *buf) { /Ricard -- Ricard Wolf Wanderlöf ricardw(at)axis.com Axis Communications AB, Lund, Sweden www.axis.com Phone +46 46 272 2016 Fax +46 46 13 61 30 --_002_alpineDEB200130830151304010770lnxricardwseaxiscom_ Content-Type: text/x-diff; name="cris-head-thread.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: patch file.patch Content-Disposition: attachment; filename="cris-head-thread.patch"; size=1998; creation-date="Fri, 30 Aug 2013 15:28:05 GMT"; modification-date="Fri, 30 Aug 2013 15:28:05 GMT" Content-length: 2623 ZGlmZiAtLWdpdCBhL2dkYi9jcmlzLXRkZXAuYyBiL2dkYi9jcmlzLXRkZXAu Yw0KaW5kZXggMDMwNDFlNC4uZGNlMjcyNCAxMDA2NDQNCi0tLSBhL2dkYi9j cmlzLXRkZXAuYw0KKysrIGIvZ2RiL2NyaXMtdGRlcC5jDQpAQCAtMzgyMCw3 ICszODIwLDcgQEAgY3Jpc19kZWxheWVkX2dldF9kaXNhc3NlbWJsZXIgKGJm ZF92bWEgYWRkciwgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8pDQog fQ0KIA0KIC8qIENvcGllZCBmcm9tIDxhc20vZWxmLmg+LiAgKi8NCi10eXBl ZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsNCit0eXBlZGVmIHVpbnQz Ml90IGVsZl9ncmVnX3Q7DQogDQogLyogU2FtZSBhcyB1c2VyX3JlZ3Nfc3Ry dWN0IHN0cnVjdCBpbiA8YXNtL3VzZXIuaD4uICAqLw0KICNkZWZpbmUgQ1JJ U1YxMF9FTEZfTkdSRUcgMzUNCkBAIC00MTM3LDYgKzQxMzcsOSBAQCBjcmlz X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1 Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpDQogICAgICAgc2V0X2dkYmFyY2hf c2luZ2xlX3N0ZXBfdGhyb3VnaF9kZWxheSANCiAJKGdkYmFyY2gsIGNyaXN2 MzJfc2luZ2xlX3N0ZXBfdGhyb3VnaF9kZWxheSk7DQogDQorICAgICAgc2V0 X2dkYmFyY2hfZmV0Y2hfdGxzX2xvYWRfbW9kdWxlX2FkZHJlc3MgKGdkYmFy Y2gsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN2cjRfZmV0Y2hfb2JqZmlsZV9saW5rX21hcCk7DQorDQog ICAgICAgYnJlYWs7DQogDQogICAgIGRlZmF1bHQ6DQpkaWZmIC0tZ2l0IGEv Z2RiL2dkYnNlcnZlci9saW51eC1jcmlzdjMyLWxvdy5jIGIvZ2RiL2dkYnNl cnZlci9saW51eC1jcmlzdjMyLWxvdy5jDQppbmRleCAyODQ5ZDAyLi44NGNi N2ZmIDEwMDY0NA0KLS0tIGEvZ2RiL2dkYnNlcnZlci9saW51eC1jcmlzdjMy LWxvdy5jDQorKysgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWNyaXN2MzItbG93 LmMNCkBAIC0yNyw2ICsyNywxMCBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHRh cmdldF9kZXNjICp0ZGVzY19jcmlzdjMyOw0KIC8qIENSSVN2MzIgKi8NCiAj ZGVmaW5lIGNyaXNfbnVtX3JlZ3MgNDkNCiANCisjaWZuZGVmIFBUUkFDRV9H RVRfVEhSRUFEX0FSRUENCisjZGVmaW5lIFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEgMjUNCisjZW5kaWYNCisNCiAvKiBOb3RlOiBJZ25vcmluZyBVU1AgKGhh dmluZyB0aGUgc3RhY2sgcG9pbnRlciBpbiB0d28gbG9jYXRpb25zIGNhdXNl cyB0cm91YmxlDQogICAgd2l0aG91dCBhbnkgc2lnbmlmaWNhbnQgZ2Fpbiku ICAqLw0KIA0KQEAgLTMzOSw2ICszNDMsMjAgQEAgY3Jpc19zdG9wcGVkX2Rh dGFfYWRkcmVzcyAodm9pZCkNCiAgIHJldHVybiBlZGE7DQogfQ0KIA0KK3Bz X2Vycl9lDQorcHNfZ2V0X3RocmVhZF9hcmVhIChjb25zdCBzdHJ1Y3QgcHNf cHJvY2hhbmRsZSAqcGgsDQorICAgICAgICAgICAgICAgICAgICBsd3BpZF90 IGx3cGlkLCBpbnQgaWR4LCB2b2lkICoqYmFzZSkNCit7DQorICBpZiAocHRy YWNlIChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLCBsd3BpZCwgTlVMTCwgYmFz ZSkgIT0gMCkNCisgICAgcmV0dXJuIFBTX0VSUjsNCisNCisgIC8qIElEWCBp cyB0aGUgYmlhcyBmcm9tIHRoZSB0aHJlYWQgcG9pbnRlciB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZQ0KKyAgICAgdGhyZWFkIGRlc2NyaXB0b3IuICBJdCBo YXMgdG8gYmUgc3VidHJhY3RlZCBkdWUgdG8gaW1wbGVtZW50YXRpb24NCisg ICAgIHF1aXJrcyBpbiBsaWJ0aHJlYWRfZGIuICAqLw0KKyAgKmJhc2UgPSAo dm9pZCAqKSAoKGNoYXIgKikqYmFzZSAtIGlkeCk7DQorICByZXR1cm4gUFNf T0s7DQorfQ0KKw0KIHN0YXRpYyB2b2lkDQogY3Jpc19maWxsX2dyZWdzZXQg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHZvaWQgKmJ1ZikNCiB7DQo= --_002_alpineDEB200130830151304010770lnxricardwseaxiscom_--