Re: Small patch to enable build of gdb-7.6 for GNU/Hurd

Joel Brobecker
2013-05-29T09:26:16Z

> 2013-05-27 Svante Signell <svante.signell@gmail.com>
>
> * nto-tdep.c (nto_init_solib_absolute_prefix): Solve build
> problems for systems not defining PATH_MAX by using xstrprintf
> followed by a cleanup.

As noticed by Thomas, he's right that we are introducing extra
quoting of the command's argument, and I don't think we should be
doing that in this patch. We can discuss the need to do so, but
it should be done separately.

Other than that, the patch looks good to me. Just give it a few more
days (say until Monday) before we commit the patch. Do you have an
FSF copyright assignment on file?

> --- a/gdb/nto-tdep.c
> +++ b/gdb/nto-tdep.c
> @@ -147,9 +147,10 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname)
> void
> nto_init_solib_absolute_prefix (void)
> {
> - char buf[PATH_MAX * 2], arch_path[PATH_MAX];
> + char *buf;
> char *nto_root, *endian;
> const char *arch;
> + struct cleanup *old_chain;
>
> nto_root = nto_target ();
> if (strcmp (gdbarch_bfd_arch_info (target_gdbarch ())->arch_name, "i386") == 0)
> @@ -172,10 +173,11 @@ nto_init_solib_absolute_prefix (void)
> == BFD_ENDIAN_BIG ? "be" : "le";
> }
>
> - xsnprintf (arch_path, sizeof (arch_path), "%s/%s%s", nto_root, arch, endian);
> -
> - xsnprintf (buf, sizeof (buf), "set solib-absolute-prefix %s", arch_path);
> + buf = xstrprintf ("set solib-absolute-prefix \"%s/%s%s\"",
> + nto_root, arch, endian);
> + old_chain = make_cleanup (xfree, buf);
> execute_command (buf, 0);
> + do_cleanups (old_chain);
> }
>
> char **

--
Joel