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

Sergio Durigan Junior
2013-05-24T02:59:53Z

Thanks for your patch, Svante.

On Thursday, May 23 2013, Svante Signell wrote:

> --- 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);

When I define things in the middle of functions/code, I usually #undef
them just after I finished using, to avoid conflicts with others
#defines. Specially when the #define is called "FMT", which is very
generic IMO.

But that is just a good practice I try to follow.

--
Sergio