Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Dec 2013 23:31:22 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r260027 - head/gnu/usr.bin/gdb/kgdb
Message-ID:  <201312282331.rBSNVM3R013898@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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)
 {



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