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