From owner-svn-src-projects@FreeBSD.ORG Mon Feb 8 15:39:49 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55C111065697; Mon, 8 Feb 2010 15:39:49 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4556C8FC13; Mon, 8 Feb 2010 15:39:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o18FdnPm084531; Mon, 8 Feb 2010 15:39:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o18FdnNi084527; Mon, 8 Feb 2010 15:39:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201002081539.o18FdnNi084527@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 8 Feb 2010 15:39:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r203664 - in projects/ppc64: contrib/gdb/gdb gnu/usr.bin/binutils/libbfd X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Feb 2010 15:39:49 -0000 Author: nwhitehorn Date: Mon Feb 8 15:39:48 2010 New Revision: 203664 URL: http://svn.freebsd.org/changeset/base/203664 Log: Add the rs6000 architecture to binutils and fiddle some target definitions in the GDB tdep. GDB can now successfully debug core files on ppc64, but cannot yet attach to running processes, with this error: warning: Unable to find dynamic linker breakpoint function. Next up is fixing this and making ld believe that our CRT files can handle multiple TOCs, required for linking some large executables like LLVM. Modified: projects/ppc64/contrib/gdb/gdb/ppcfbsd-tdep.c projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile.powerpc64 Modified: projects/ppc64/contrib/gdb/gdb/ppcfbsd-tdep.c ============================================================================== --- projects/ppc64/contrib/gdb/gdb/ppcfbsd-tdep.c Mon Feb 8 14:09:07 2010 (r203663) +++ projects/ppc64/contrib/gdb/gdb/ppcfbsd-tdep.c Mon Feb 8 15:39:48 2010 (r203664) @@ -35,13 +35,13 @@ #include "gdb_assert.h" #include "solib-svr4.h" -#define REG_FIXREG_OFFSET(x) ((x) * 4) -#define REG_LR_OFFSET (32 * 4) -#define REG_CR_OFFSET (33 * 4) -#define REG_XER_OFFSET (34 * 4) -#define REG_CTR_OFFSET (35 * 4) -#define REG_PC_OFFSET (36 * 4) -#define SIZEOF_STRUCT_REG (37 * 4) +#define REG_FIXREG_OFFSET(x) ((x) * sizeof(register_t)) +#define REG_LR_OFFSET (32 * sizeof(register_t)) +#define REG_CR_OFFSET (33 * sizeof(register_t)) +#define REG_XER_OFFSET (34 * sizeof(register_t)) +#define REG_CTR_OFFSET (35 * sizeof(register_t)) +#define REG_PC_OFFSET (36 * sizeof(register_t)) +#define SIZEOF_STRUCT_REG (37 * sizeof(register_t)) #define FPREG_FPR_OFFSET(x) ((x) * 8) #define FPREG_FPSCR_OFFSET (32 * 8) @@ -274,8 +274,13 @@ ppcfbsd_init_abi (struct gdbarch_info in /* For NetBSD, this is an on again, off again thing. Some systems do use the broken struct convention, and some don't. */ set_gdbarch_return_value (gdbarch, ppcfbsd_return_value); +#ifdef __powerpc64__ + set_solib_svr4_fetch_link_map_offsets (gdbarch, + svr4_lp64_fetch_link_map_offsets); +#else set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_ilp32_fetch_link_map_offsets); +#endif } void Modified: projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile ============================================================================== --- projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile Mon Feb 8 14:09:07 2010 (r203663) +++ projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile Mon Feb 8 15:39:48 2010 (r203664) @@ -26,7 +26,7 @@ SELARCH= &bfd_i386_arch .elif ${TARGET_ARCH} == "sparc64" SELARCH= &bfd_sparc_arch .elif ${TARGET_ARCH} == "powerpc64" -SELARCH= &bfd_powerpc_arch +SELARCH= &bfd_powerpc_arch,&bfd_rs6000_arch .else .for _a in ${ARCHS} .if ${SELARCH} == "" Modified: projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile.powerpc64 ============================================================================== --- projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile.powerpc64 Mon Feb 8 14:09:07 2010 (r203663) +++ projects/ppc64/gnu/usr.bin/binutils/libbfd/Makefile.powerpc64 Mon Feb 8 15:39:48 2010 (r203664) @@ -22,4 +22,6 @@ SRCS+= cpu-powerpc.c \ VECS+= ${DEFAULT_VECTOR} \ bfd_elf64_powerpcle_vec \ bfd_elf32_powerpc_vec \ - bfd_elf32_powerpcle_vec + bfd_elf32_powerpcle_vec \ + ppcboot_vec +