svn commit: r260027 - head/gnu/usr.bin/gdb/kgdb

Marcel Moolenaar marcel at FreeBSD.org
Sat Dec 28 23:31:23 UTC 2013


Author: marcel
Date: Sat Dec 28 23:31:22 2013
New Revision: 260027
URL: http://svnweb.freebsd.org/changeset/base/260027

Log:
  When building a cross kgdb, link against the appropriate cross libkvm.
  Provide an implementation of ps_pglobal_lookup() for use by the cross
  libkvm.

Modified:
  head/gnu/usr.bin/gdb/kgdb/Makefile
  head/gnu/usr.bin/gdb/kgdb/main.c

Modified: head/gnu/usr.bin/gdb/kgdb/Makefile
==============================================================================
--- head/gnu/usr.bin/gdb/kgdb/Makefile	Sat Dec 28 23:17:24 2013	(r260026)
+++ head/gnu/usr.bin/gdb/kgdb/Makefile	Sat Dec 28 23:31:22 2013	(r260027)
@@ -8,7 +8,13 @@ BULIBS= ${OBJ_BU}/libbfd/libbfd.a ${OBJ_
 	${OBJ_BU}/libiberty/libiberty.a
 GDBLIBS= ${OBJ_GDB}/libgdb/libgdb.a
 
-DPADD=	${GDBLIBS} ${BULIBS} ${LIBKVM} ${LIBM} ${LIBREADLINE} ${LIBTERMCAP} ${LIBGNUREGEX}
-LDADD=	${GDBLIBS} ${BULIBS} -lkvm -lm -lreadline -ltermcap -lgnuregex
+DPADD=	${GDBLIBS} ${BULIBS} ${LIBKVM} ${LIBM} ${LIBREADLINE} ${LIBTERMCAP} \
+	${LIBGNUREGEX}
+LDADD=	${GDBLIBS} ${BULIBS} -lkvm${GDB_SUFFIX} -lm -lreadline -ltermcap \
+	-lgnuregex
+
+.if defined(GDB_CROSS_DEBUGGER)
+CFLAGS+= -Wl,-export-dynamic
+.endif
 
 .include <bsd.prog.mk>

Modified: head/gnu/usr.bin/gdb/kgdb/main.c
==============================================================================
--- head/gnu/usr.bin/gdb/kgdb/main.c	Sat Dec 28 23:17:24 2013	(r260026)
+++ head/gnu/usr.bin/gdb/kgdb/main.c	Sat Dec 28 23:31:22 2013	(r260027)
@@ -41,6 +41,9 @@ __FBSDID("$FreeBSD$");
 #include <kvm.h>
 #include <limits.h>
 #include <paths.h>
+#ifdef CROSS_DEBUGGER
+#include <proc_service.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -78,6 +81,24 @@ static struct ui_file *parse_gdberr;
 
 static void (*kgdb_new_objfile_chain)(struct objfile * objfile);
 
+#ifdef CROSS_DEBUGGER
+ps_err_e
+ps_pglobal_lookup(struct ps_prochandle *ph, const char *obj, const char *name,
+    psaddr_t *sym_addr)
+{
+	struct minimal_symbol *ms;
+	CORE_ADDR addr;
+
+	ms = lookup_minimal_symbol (name, NULL, NULL);
+	if (ms == NULL)
+		return PS_NOSYM;
+
+	addr = SYMBOL_VALUE_ADDRESS (ms);
+	store_typed_address(sym_addr, builtin_type_void_data_ptr, addr);
+	return PS_OK;
+}
+#endif
+
 static void
 usage(void)
 {


More information about the svn-src-head mailing list