Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Feb 2010 15:39:49 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r203664 - in projects/ppc64: contrib/gdb/gdb gnu/usr.bin/binutils/libbfd
Message-ID:  <201002081539.o18FdnNi084527@svn.freebsd.org>

index | next in thread | raw e-mail

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
+


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002081539.o18FdnNi084527>