From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2283 invoked by alias); 19 Aug 2002 14:26:18 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 2276 invoked from network); 19 Aug 2002 14:26:17 -0000 Received: from unknown (HELO crack.them.org) (65.125.64.184) by sources.redhat.com with SMTP; 19 Aug 2002 14:26:17 -0000 Received: from nevyn.them.org ([66.93.61.169] ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 17gnU5-0003kh-00 for ; Mon, 19 Aug 2002 09:26:21 -0500 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 17gnUd-0000mz-00 for ; Mon, 19 Aug 2002 10:26:55 -0400 Date: Mon, 19 Aug 2002 07:26:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: PATCH: MIPS/Linux build fixes Message-ID: <20020819142654.GA2984@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2002-08/txt/msg00548.txt.bz2 Some warning fixes (JB_PC, and REALTIME_LO), and a build fix from the multi-arching of MAX_REGISTER_RAW_SIZE last week. Committed. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer 2002-08-19 Daniel Jacobowitz * config/mips/tm-linux.h (REALTIME_LO, REALTIME_HI): Define conditionally. (JB_PC, JB_ELEMENT_SIZE): Rename to MIPS_LINUX_JB_PC and MIPS_LINUX_JB_ELEMENT_SIZE. * mips-linux-tdep.c (supply_gregset, fill_gregset): Use alloca for MAX_REGISTER_RAW_SIZE arrays. (mips_linux_get_longjmp_target): Use MIPS_LINUX_JB_PC and MIPS_LINUX_JB_ELEMENT_SIZE. Index: config/mips/tm-linux.h =================================================================== RCS file: /cvs/src/src/gdb/config/mips/tm-linux.h,v retrieving revision 1.4 diff -u -p -r1.4 tm-linux.h --- config/mips/tm-linux.h 5 Jun 2002 19:18:25 -0000 1.4 +++ config/mips/tm-linux.h 19 Aug 2002 14:23:35 -0000 @@ -33,8 +33,10 @@ /* GNU/Linux MIPS has __SIGRTMAX == 127. */ +#ifndef REALTIME_LO #define REALTIME_LO 32 #define REALTIME_HI 128 +#endif #include "config/tm-linux.h" @@ -51,8 +53,8 @@ extern struct link_map_offsets *mips_lin /* Details about jmp_buf. */ -#define JB_ELEMENT_SIZE 4 -#define JB_PC 0 +#define MIPS_LINUX_JB_ELEMENT_SIZE 4 +#define MIPS_LINUX_JB_PC 0 /* Figure out where the longjmp will land. Slurp the arguments out of the stack. We expect the first arg to be a pointer to the jmp_buf structure Index: mips-linux-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mips-linux-tdep.c,v retrieving revision 1.3 diff -u -p -r1.3 mips-linux-tdep.c --- mips-linux-tdep.c 20 Feb 2002 22:51:41 -0000 1.3 +++ mips-linux-tdep.c 19 Aug 2002 14:23:35 -0000 @@ -56,8 +56,8 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N /* Figure out where the longjmp will land. We expect the first arg to be a pointer to the jmp_buf structure from - which we extract the pc (JB_PC) that we will land at. The pc is copied - into PC. This routine returns 1 on success. */ + which we extract the pc (MIPS_LINUX_JB_PC) that we will land at. The pc + is copied into PC. This routine returns 1 on success. */ int mips_linux_get_longjmp_target (CORE_ADDR *pc) @@ -67,8 +67,9 @@ mips_linux_get_longjmp_target (CORE_ADDR jb_addr = read_register (A0_REGNUM); - if (target_read_memory (jb_addr + JB_PC * JB_ELEMENT_SIZE, buf, - TARGET_PTR_BIT / TARGET_CHAR_BIT)) + if (target_read_memory (jb_addr + + MIPS_LINUX_JB_PC * MIPS_LINUX_JB_ELEMENT_SIZE, + buf, TARGET_PTR_BIT / TARGET_CHAR_BIT)) return 0; *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT); @@ -83,7 +84,9 @@ supply_gregset (elf_gregset_t *gregsetp) { int regi; elf_greg_t *regp = *gregsetp; - static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + char *zerobuf = alloca (MAX_REGISTER_RAW_SIZE); + + memset (zerobuf, 0, MAX_REGISTER_RAW_SIZE); for (regi = EF_REG0; regi <= EF_REG31; regi++) supply_register ((regi - EF_REG0), (char *)(regp + regi)); @@ -172,7 +175,9 @@ void supply_fpregset (elf_fpregset_t *fpregsetp) { register int regi; - static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + char *zerobuf = alloca (MAX_REGISTER_RAW_SIZE); + + memset (zerobuf, 0, MAX_REGISTER_RAW_SIZE); for (regi = 0; regi < 32; regi++) supply_register (FP0_REGNUM + regi,