Source: gdb
Version: 7.6-2
Severity: important
Tags: patch, upastream
Usertags: hurd
User: debian-h...@lists.debian.org

Hello,

gdb does not build from source any longer since gdb-multiarch packages
was enabled in 7.4.1-1. The build problems is due to a PATH_MAX issue
in gdb/nto-tdep.c:nto_init_solib_absolute_prefix(). The attached patch,
solve_PATH_MAX_issue.patch, solves this build problem. This patch has
also been submitted upstream, see
http://sourceware.org/ml/gdb-patches/2013-05/msg00878.html

Thanks!

--- a/gdb/nto-tdep.c	2013-05-23 14:28:24.000000000 +0000
+++ b/gdb/nto-tdep.c	2013-05-23 15:01:24.000000000 +0000
@@ -147,9 +147,11 @@ nto_find_and_open_solib (char *solib, un
 void
 nto_init_solib_absolute_prefix (void)
 {
-  char buf[PATH_MAX * 2], arch_path[PATH_MAX];
+  char *buf, *arch_path;
   char *nto_root, *endian;
   const char *arch;
+  int arch_len, len;
+#define FMT "set solib-absolute-prefix %s"
 
   nto_root = nto_target ();
   if (strcmp (gdbarch_bfd_arch_info (target_gdbarch ())->arch_name, "i386") == 0)
@@ -172,9 +174,13 @@ nto_init_solib_absolute_prefix (void)
 	       == BFD_ENDIAN_BIG ? "be" : "le";
     }
 
-  xsnprintf (arch_path, sizeof (arch_path), "%s/%s%s", nto_root, arch, endian);
+  arch_len = strlen (nto_root) + 1 + strlen (arch) + strlen (endian) + 1;
+  arch_path = alloca (arch_len);
+  xsnprintf (arch_path, arch_len, "%s/%s%s", nto_root, arch, endian);
 
-  xsnprintf (buf, sizeof (buf), "set solib-absolute-prefix %s", arch_path);
+  len = strlen (FMT) - 2 + strlen (arch_path) + 1;
+  buf =  alloca (len);
+  xsnprintf (buf, len, FMT, arch_path);
   execute_command (buf, 0);
 }
 

Reply via email to