mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
Fix binutils tools so that they can cope with the special /dev/null file when run on Windows systems.
PR 27252 * bucomm.c (get_file_size): Add code to handle /dev/null on Windows systems. * elfedit.c (check_file): Likewise.
This commit is contained in:

committed by
Nick Clifton

parent
0318cca493
commit
a7ad3cb1ff
@ -1,3 +1,10 @@
|
|||||||
|
2021-01-28 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
|
PR 27252
|
||||||
|
* bucomm.c (get_file_size): Add code to handle /dev/null on
|
||||||
|
Windows systems.
|
||||||
|
* elfedit.c (check_file): Likewise.
|
||||||
|
|
||||||
2021-01-27 Nick Clifton <nickc@redhat.com>
|
2021-01-27 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* objcopy.c (copy_main): Remove conditional control of the calls
|
* objcopy.c (copy_main): Remove conditional control of the calls
|
||||||
|
@ -623,6 +623,21 @@ get_file_size (const char * file_name)
|
|||||||
else if (statbuf.st_size < 0)
|
else if (statbuf.st_size < 0)
|
||||||
non_fatal (_("Warning: '%s' has negative size, probably it is too large"),
|
non_fatal (_("Warning: '%s' has negative size, probably it is too large"),
|
||||||
file_name);
|
file_name);
|
||||||
|
#if defined (_WIN32) && !defined (__CYGWIN__)
|
||||||
|
else if (statbuf.st_size == 0)
|
||||||
|
{
|
||||||
|
/* MS-Windows 'stat' doesn't reports the null device as a
|
||||||
|
regular file; fix that. */
|
||||||
|
int fd = open (file_name, O_RDONLY | O_BINARY);
|
||||||
|
if (isatty (fd))
|
||||||
|
{
|
||||||
|
close (fd);
|
||||||
|
non_fatal (_("Warning: '%s' is not an ordinary file"),
|
||||||
|
/* libtool wants to see /dev/null in the output. */
|
||||||
|
strcasecmp (file_name, "nul") ? file_name : "/dev/null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
return statbuf.st_size;
|
return statbuf.st_size;
|
||||||
|
|
||||||
|
@ -721,6 +721,20 @@ check_file (const char *file_name, struct stat *statbuf_p)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined (_WIN32) && !defined (__CYGWIN__)
|
||||||
|
else if (statbuf_p->st_size == 0)
|
||||||
|
{
|
||||||
|
/* MS-Windows 'stat' doesn't reports the null device as a
|
||||||
|
regular file; fix that. */
|
||||||
|
int fd = open (file_name, O_RDONLY | O_BINARY);
|
||||||
|
if (isatty (fd))
|
||||||
|
{
|
||||||
|
statbuf_p->st_mode &= ~S_IFREG;
|
||||||
|
statbuf_p->st_mode |= S_IFCHR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (! S_ISREG (statbuf_p->st_mode))
|
if (! S_ISREG (statbuf_p->st_mode))
|
||||||
{
|
{
|
||||||
error (_("'%s' is not an ordinary file\n"), file_name);
|
error (_("'%s' is not an ordinary file\n"), file_name);
|
||||||
|
Reference in New Issue
Block a user