This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 1/2] $pdir/../foo: Make vec.h usable in gdbserver
- From: dje at google dot com
- To: gdb-patches at sourceware dot org
- Date: Wed, 18 Jul 2012 18:47:16 -0700
- Subject: [RFA 1/2] $pdir/../foo: Make vec.h usable in gdbserver
Hi.
In a 64-cross-32 debugging situation, $pdir in libthread-db-search-path
isn't usable, what you really want is $pdir/../lib64.
[setting aside lib vs lib32 vs lib64, blech]
This set of two patches provides support for this.
This first patch is just to let common/vec.h be usable in gdbserver.
The second patch contains the core functionality.
Ok to check in?
Regression tested on amd64-linux.
[The potentially only odd bit is adding a check for strstr in
gdbserver/configure.ac. Since gdb_string.h contains a check for
HAVE_DECL_STRSTR I figured it was cleaner to check for it in configure.]
2012-07-18 Doug Evans <dje@google.com>
* gdb_string.h: Moved to ...
* common/gdb_string.h: ... here.
* common/vec.h: Remove #ifndef GDBSERVER conditional inclusion of
gdb_string.h and gdb_assert.h.
gdbserver/
* configure.ac: Add check for strstr.
* config.in: Regenerate.
* configure: Regenerate.
Index: gdb_string.h
===================================================================
RCS file: gdb_string.h
diff -N gdb_string.h
--- gdb_string.h 4 Jan 2012 08:17:02 -0000 1.15
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-/* Portable <string.h>
-
- Copyright (C) 1995, 1998-2001, 2004, 2007-2012 Free Software
- Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#if !defined(GDB_STRING_H)
-#define GDB_STRING_H
-
-#ifdef STDC_HEADERS
-#include <string.h>
-#ifdef HAVE_STRINGS_H
-#include <strings.h> /* strcasecmp etc.. */
-#endif
-#else
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-
-#ifndef strchr
-extern char *strchr (const char *, int); /* X3.159-1989 4.11.5.2 */
-#endif
-
-#ifndef strrchr
-extern char *strrchr (const char *, int); /* X3.159-1989 4.11.5.5 */
-#endif
-
-#ifndef strtok
-extern char *strtok (char *, const char *); /* X3.159-1989 4.11.5.8 */
-#endif
-
-#ifdef HAVE_MEMORY_H
-#include <memory.h>
-#else
-extern void *memset ();
-extern void *memcpy ();
-extern void *memmove ();
-extern int memcmp ();
-#endif
-#endif /* STDC_HEADERS */
-
-#if !HAVE_DECL_STRERROR
-#ifndef strerror
-extern char *strerror (int); /* X3.159-1989 4.11.6.2 */
-#endif
-#endif
-
-#if !HAVE_DECL_STRSTR
-#ifndef strstr
-extern char *strstr (const char *, const char *); /* X3.159-1989 4.11.5.7 */
-#endif
-#endif
-
-#endif /* !defined(GDB_STRING_H) */
Index: common/gdb_string.h
===================================================================
RCS file: common/gdb_string.h
diff -N common/gdb_string.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ common/gdb_string.h 19 Jul 2012 01:34:25 -0000
@@ -0,0 +1,70 @@
+/* Portable <string.h>
+
+ Copyright (C) 1995, 1998-2001, 2004, 2007-2012 Free Software
+ Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#if !defined(GDB_STRING_H)
+#define GDB_STRING_H
+
+#ifdef STDC_HEADERS
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h> /* strcasecmp etc.. */
+#endif
+#else
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+#ifndef strchr
+extern char *strchr (const char *, int); /* X3.159-1989 4.11.5.2 */
+#endif
+
+#ifndef strrchr
+extern char *strrchr (const char *, int); /* X3.159-1989 4.11.5.5 */
+#endif
+
+#ifndef strtok
+extern char *strtok (char *, const char *); /* X3.159-1989 4.11.5.8 */
+#endif
+
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#else
+extern void *memset ();
+extern void *memcpy ();
+extern void *memmove ();
+extern int memcmp ();
+#endif
+#endif /* STDC_HEADERS */
+
+#if !HAVE_DECL_STRERROR
+#ifndef strerror
+extern char *strerror (int); /* X3.159-1989 4.11.6.2 */
+#endif
+#endif
+
+#if !HAVE_DECL_STRSTR
+#ifndef strstr
+extern char *strstr (const char *, const char *); /* X3.159-1989 4.11.5.7 */
+#endif
+#endif
+
+#endif /* !defined(GDB_STRING_H) */
Index: common/vec.h
===================================================================
RCS file: /cvs/src/src/gdb/common/vec.h,v
retrieving revision 1.1
diff -u -p -r1.1 vec.h
--- common/vec.h 19 Apr 2012 05:58:52 -0000 1.1
+++ common/vec.h 19 Jul 2012 01:34:25 -0000
@@ -22,10 +22,8 @@
#include <stddef.h>
-#ifndef GDBSERVER
#include "gdb_string.h"
#include "gdb_assert.h"
-#endif
/* The macros here implement a set of templated vector types and
associated interfaces. These templates are implemented with
Index: gdbserver/configure.ac
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/configure.ac,v
retrieving revision 1.57
diff -u -p -r1.57 configure.ac
--- gdbserver/configure.ac 19 Apr 2012 19:34:51 -0000 1.57
+++ gdbserver/configure.ac 19 Jul 2012 01:34:25 -0000
@@ -174,7 +174,7 @@ AC_TRY_LINK([
[AC_MSG_RESULT(no)])
fi
-AC_CHECK_DECLS([strerror, perror, vasprintf, vsnprintf])
+AC_CHECK_DECLS([strerror, strstr, perror, vasprintf, vsnprintf])
AC_CHECK_TYPES(socklen_t, [], [],
[#include <sys/types.h>