Better handling of realpath() failure in windows_make_so() on Cygwin

It seems Cygwin's realpath() can fail on certain DLLs (apparently some
AV software prevent it working on it's DLLs; See [1], [2]).  Warn rather
than stopping with an error if that occurs.

Based on an original patch from Tim Chick.

[1] https://cygwin.com/ml/cygwin/2014-08/msg00401.html
[2] https://cygwin.com/ml/cygwin/2015-11/msg00353.html

gdb/ChangeLog:

2016-01-20  Jon Turney  <jon.turney@dronecode.org.uk>

	* windows-nat.c (windows_make_so): Warn rather than stopping with
	an error if realpath() fails.
This commit is contained in:
Jon Turney 2016-01-13 18:27:48 +00:00
parent 95a5156812
commit a0e9b53238
No known key found for this signature in database
GPG Key ID: C7C86F0370285C81
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2016-01-20 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (windows_make_so): Warn rather than stopping with
an error if realpath() fails.
2020-04-14 Kamil Rytarowski <n54@gmx.com>
* nbsd-nat.c (nbsd_pid_to_kinfo_proc2): New.

View File

@ -820,7 +820,10 @@ windows_make_so (const char *name, LPVOID load_addr)
free (rname);
}
else
error (_("dll path too long"));
{
warning (_("dll path for \"%s\" too long or inaccessible"), name);
strcpy (so->so_name, so->so_original_name);
}
}
/* Record cygwin1.dll .text start/end. */
p = strchr (so->so_name, '\0') - (sizeof ("/cygwin1.dll") - 1);