From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28874 invoked by alias); 26 Sep 2014 22:12:46 -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 28863 invoked by uid 89); 26 Sep 2014 22:12:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 26 Sep 2014 22:12:43 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-FEM-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1XXdkm-0006lX-8A from Maciej_Rozycki@mentor.com for gdb-patches@sourceware.org; Fri, 26 Sep 2014 15:12:40 -0700 Received: from localhost (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server (TLS) id 14.3.181.6; Fri, 26 Sep 2014 23:12:38 +0100 Date: Fri, 26 Sep 2014 22:12:00 -0000 From: "Maciej W. Rozycki" To: Subject: [PING][PATCH] Also mark ELF solib trampoline minimal symbols special In-Reply-To: Message-ID: References: User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-SW-Source: 2014-09/txt/msg00800.txt.bz2 On Thu, 18 Sep 2014, Maciej W. Rozycki wrote: > In installing minimal symbols for ELF shared library trampolines we > "forget" to make individual symbols special where required. This leads to > problems on the MIPS target using microMIPS SVR4 lazy stubs. Lacking the > special annotation these stubs are treated as standard MIPS code and this > makes GDB insert the wrong software breakpoint instruction, breaking e.g. > single-stepping through these stubs. This is not a very frequent scenario > as microMIPS SVR4 lazy stubs are typically only used in shared libraries > with the main executable using PLT, handled elsewhere. Still it triggers > e.g. when a software watchpoint has been installed. The symptom is SIGILL > or the program going astray, depending on the endianness. Disassembly of > these stubs is also wrong. > > Regression-tested with the mips-linux-gnu target and the following > multilibs: > > -EB > -EB -msoft-float > -EB -mips16 > -EB -mips16 -msoft-float > -EB -mmicromips > -EB -mmicromips -msoft-float > -EB -mabi=n32 > -EB -mabi=n32 -msoft-float > -EB -mabi=64 > -EB -mabi=64 -msoft-float > > and the -EL variants of same with no regressions and the following > big-endian failures removed: > > (gdb) PASS: gdb.base/watchpoint-solib.exp: rerun to main > continue > Continuing. > > Program received signal SIGILL, Illegal instruction. > 0x2aad36ab in _dl_sym () at dl-sym.c:282 > 282 { > (gdb) FAIL: gdb.base/watchpoint-solib.exp: continue to foo again > continue > Continuing. > > Program terminated with signal SIGILL, Illegal instruction. > The program no longer exists. > (gdb) FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again > > and similarly for the little endianness: > > (gdb) PASS: gdb.base/watchpoint-solib.exp: rerun to main > continue > Continuing. > FAIL: gdb.base/watchpoint-solib.exp: continue to foo again (timeout) > continue > FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again (timeout) > > -- across the -mmicromips multilibs. > > OK to apply? > > 2014-09-17 Maciej W. Rozycki > > gdb/ > * elfread.c (elf_symtab_read): Also mark solib trampoline minimal > symbols special. Ping! Maciej