[patch binutils gas]: Let binutils understand DOS-paths (2 of 4)
Kai Tietz
ktietz70@googlemail.com
Mon Feb 28 07:58:00 GMT 2011
Hello,
ChangeLog binutils/
2011-02-28 Kai Tietz
* debug.c (debug_start_source): Use filename_(n)cmp.
* ieee.c (ieee_finish_compilation_unit): Likewise.
(ieee_lineno): Likewise.
* nlmconv.c (main): Likewise.
* objcopy.c (strip_main): Likewise.
(copy_main): Likewise.
* objdump.c (show_line): Likewise.
(dump_reloc_set): Likewise.
* srconv.c (main): Likewise.
* wrstabs.c (stab_lineno): Likewise.
ChangeLog gas/
2011-02-28 Kai Tietz
* depend.c (register_dependency): Use filename_(n)cmp.
* dwarf2dbg.c (get_filenum): Likewise.
* ecoff.c (add_file): Likewise.
(ecoff_generate_asm_lineno): Likewise.
* input-scrub.c (new_logical_line_flags): Likewise.
* listing.c (file_info): Likewise.
(listing_newline): Likewise.
* remap.c (remap_debug_filename): Likewise.
* stabs.c (generate_asm_file): Likewise.
(stabs_generate_asm_lineno): Likewise.
Tested for x86_64-w64-mingw32, i686-pc-cygwin, and
x86_64-pc-linux-gnu. Ok for apply?
Regards,
Kai
-------------- next part --------------
Index: src/binutils/debug.c
===================================================================
--- src.orig/binutils/debug.c 2011-02-26 23:06:54.957909100 +0100
+++ src/binutils/debug.c 2011-02-27 12:08:48.031986200 +0100
@@ -31,6 +31,7 @@
#include <assert.h>
#include "bfd.h"
#include "libiberty.h"
+#include "filenames.h"
#include "debug.h"
/* Global information we keep for debugging. A pointer to this
@@ -729,9 +730,7 @@ debug_start_source (void *handle, const
for (f = info->current_unit->files; f != NULL; f = f->next)
{
- if (f->filename[0] == name[0]
- && f->filename[1] == name[1]
- && strcmp (f->filename, name) == 0)
+ if (filename_cmp (f->filename, name) == 0)
{
info->current_file = f;
return TRUE;
Index: src/binutils/ieee.c
===================================================================
--- src.orig/binutils/ieee.c 2011-02-26 23:06:54.959909100 +0100
+++ src/binutils/ieee.c 2011-02-27 12:08:48.054987500 +0100
@@ -4938,7 +4938,7 @@ ieee_finish_compilation_unit (struct iee
if (! ieee_change_buffer (info, &info->linenos)
|| ! ieee_write_byte (info, (int) ieee_be_record_enum))
return FALSE;
- if (strcmp (info->filename, info->lineno_filename) != 0)
+ if (filename_cmp (info->filename, info->lineno_filename) != 0)
{
/* We were not in the main file. We just closed the
included line number block, and now we must close the
@@ -7339,15 +7339,17 @@ ieee_lineno (void *p, const char *filena
info->lineno_filename = info->filename;
}
- if (strcmp (info->pending_lineno_filename, info->lineno_filename) != 0)
+ if (filename_cmp (info->pending_lineno_filename,
+ info->lineno_filename) != 0)
{
- if (strcmp (info->filename, info->lineno_filename) != 0)
+ if (filename_cmp (info->filename, info->lineno_filename) != 0)
{
/* We were not in the main file. Close the block for the
included file. */
if (! ieee_write_byte (info, (int) ieee_be_record_enum))
return FALSE;
- if (strcmp (info->filename, info->pending_lineno_filename) == 0)
+ if (filename_cmp (info->filename,
+ info->pending_lineno_filename) == 0)
{
/* We need a new NN record, and we aren't about to
output one. */
@@ -7359,7 +7361,8 @@ ieee_lineno (void *p, const char *filena
return FALSE;
}
}
- if (strcmp (info->filename, info->pending_lineno_filename) != 0)
+ if (filename_cmp (info->filename,
+ info->pending_lineno_filename) != 0)
{
/* We are not changing to the main file. Open a block for
the new included file. */
Index: src/binutils/nlmconv.c
===================================================================
--- src.orig/binutils/nlmconv.c 2011-02-26 23:06:54.960909100 +0100
+++ src/binutils/nlmconv.c 2011-02-27 13:25:20.499660300 +0100
@@ -37,6 +37,7 @@
#include "sysdep.h"
#include "bfd.h"
#include "libiberty.h"
+#include "filenames.h"
#include "safe-ctype.h"
#include "ansidecl.h"
@@ -268,7 +269,7 @@ main (int argc, char **argv)
++optind;
if (optind < argc)
show_usage (stderr, 1);
- if (strcmp (input_file, output_file) == 0)
+ if (filename_cmp (input_file, output_file) == 0)
{
fatal (_("input and output files must be different"));
}
Index: src/binutils/objcopy.c
===================================================================
--- src.orig/binutils/objcopy.c 2011-02-26 23:06:54.961909100 +0100
+++ src/binutils/objcopy.c 2011-02-27 12:08:48.097990000 +0100
@@ -3035,7 +3035,8 @@ strip_main (int argc, char *argv[])
It has already been checked in get_file_size(). */
stat (argv[i], &statbuf);
- if (output_file == NULL || strcmp (argv[i], output_file) == 0)
+ if (output_file == NULL
+ || filename_cmp (argv[i], output_file) == 0)
tmpname = make_tempname (argv[i]);
else
tmpname = output_file;
@@ -3902,7 +3903,8 @@ copy_main (int argc, char *argv[])
/* If there is no destination file, or the source and destination files
are the same, then create a temp and rename the result into the input. */
- if (output_filename == NULL || strcmp (input_filename, output_filename) == 0)
+ if (output_filename == NULL
+ || filename_cmp (input_filename, output_filename) == 0)
tmpname = make_tempname (input_filename);
else
tmpname = output_filename;
Index: src/binutils/objdump.c
===================================================================
--- src.orig/binutils/objdump.c 2011-02-26 23:06:54.962909100 +0100
+++ src/binutils/objdump.c 2011-02-27 12:08:48.119991200 +0100
@@ -1348,7 +1348,7 @@ show_line (bfd *abfd, asection *section,
unsigned l;
for (pp = &print_files; *pp != NULL; pp = &(*pp)->next)
- if (strcmp ((*pp)->filename, filename) == 0)
+ if (filename_cmp ((*pp)->filename, filename) == 0)
break;
p = *pp;
@@ -2856,7 +2856,7 @@ dump_reloc_set (bfd *abfd, asection *sec
&& (linenumber != last_line
|| (filename != NULL
&& last_filename != NULL
- && strcmp (filename, last_filename) != 0)))
+ && filename_cmp (filename, last_filename) != 0)))
{
printf ("%s:%u\n", filename == NULL ? "???" : filename, linenumber);
last_line = linenumber;
Index: src/binutils/srconv.c
===================================================================
--- src.orig/binutils/srconv.c 2011-02-26 23:06:54.964909100 +0100
+++ src/binutils/srconv.c 2011-02-27 13:26:18.222961900 +0100
@@ -32,6 +32,7 @@
#include "sysroff.h"
#include "coffgrok.h"
#include "libiberty.h"
+#include "filenames.h"
#include "getopt.h"
#include "coff/internal.h"
@@ -1818,7 +1819,7 @@ main (int ac, char **av)
++optind;
if (optind < ac)
show_usage (stderr, 1);
- if (strcmp (input_file, output_file) == 0)
+ if (filename_cmp (input_file, output_file) == 0)
{
fatal (_("input and output files must be different"));
}
Index: src/binutils/wrstabs.c
===================================================================
--- src.orig/binutils/wrstabs.c 2011-02-26 23:06:54.971909100 +0100
+++ src/binutils/wrstabs.c 2011-02-27 12:08:48.146992800 +0100
@@ -27,6 +27,7 @@
#include <assert.h>
#include "bfd.h"
#include "libiberty.h"
+#include "filenames.h"
#include "safe-ctype.h"
#include "bucomm.h"
#include "debug.h"
@@ -2261,7 +2262,7 @@ stab_lineno (void *p, const char *file,
if (addr > info->last_text_address)
info->last_text_address = addr;
- if (strcmp (file, info->lineno_filename) != 0)
+ if (filename_cmp (file, info->lineno_filename) != 0)
{
if (! stab_write_symbol (info, N_SOL, 0, addr, file))
return FALSE;
Index: src/gas/depend.c
===================================================================
--- src.orig/gas/depend.c 2011-02-26 23:06:54.975909100 +0100
+++ src/gas/depend.c 2011-02-27 12:08:48.161993600 +0100
@@ -20,6 +20,7 @@
02110-1301, USA. */
#include "as.h"
+#include "filenames.h"
/* The file to write to, or NULL if no dependencies being kept. */
static char * dep_file = NULL;
@@ -63,7 +64,7 @@ register_dependency (char *filename)
for (dep = dep_chain; dep != NULL; dep = dep->next)
{
- if (!strcmp (filename, dep->file))
+ if (!filename_cmp (filename, dep->file))
return;
}
Index: src/gas/dwarf2dbg.c
===================================================================
--- src.orig/gas/dwarf2dbg.c 2011-02-26 23:06:54.976909100 +0100
+++ src/gas/dwarf2dbg.c 2011-02-27 12:08:48.169994100 +0100
@@ -431,14 +431,14 @@ get_filenum (const char *filename, unsig
if (num == 0 && last_used)
{
if (! files[last_used].dir
- && strcmp (filename, files[last_used].filename) == 0)
+ && filename_cmp (filename, files[last_used].filename) == 0)
return last_used;
if (files[last_used].dir
- && strncmp (filename, dirs[files[last_used].dir],
- last_used_dir_len) == 0
+ && filename_ncmp (filename, dirs[files[last_used].dir],
+ last_used_dir_len) == 0
&& IS_DIR_SEPARATOR (filename [last_used_dir_len])
- && strcmp (filename + last_used_dir_len + 1,
- files[last_used].filename) == 0)
+ && filename_cmp (filename + last_used_dir_len + 1,
+ files[last_used].filename) == 0)
return last_used;
}
@@ -460,7 +460,7 @@ get_filenum (const char *filename, unsig
--dir_len;
#endif
for (dir = 1; dir < dirs_in_use; ++dir)
- if (strncmp (filename, dirs[dir], dir_len) == 0
+ if (filename_ncmp (filename, dirs[dir], dir_len) == 0
&& dirs[dir][dir_len] == '\0')
break;
@@ -485,7 +485,7 @@ get_filenum (const char *filename, unsig
for (i = 1; i < files_in_use; ++i)
if (files[i].dir == dir
&& files[i].filename
- && strcmp (file, files[i].filename) == 0)
+ && filename_cmp (file, files[i].filename) == 0)
{
last_used = i;
last_used_dir_len = dir_len;
Index: src/gas/ecoff.c
===================================================================
--- src.orig/gas/ecoff.c 2011-02-26 23:06:54.977909100 +0100
+++ src/gas/ecoff.c 2011-02-27 12:08:48.182994800 +0100
@@ -2257,7 +2257,7 @@ add_file (const char *file_name, int ind
fil_ptr = fil_ptr->next_file)
{
if (first_ch == fil_ptr->name[0]
- && strcmp (file_name, fil_ptr->name) == 0
+ && filename_cmp (file_name, fil_ptr->name) == 0
&& fil_ptr->fdr.fMerge)
{
cur_file_ptr = fil_ptr;
@@ -2325,7 +2325,7 @@ add_file (const char *file_name, int ind
void
ecoff_new_file (const char *name, int appfile ATTRIBUTE_UNUSED)
{
- if (cur_file_ptr != NULL && strcmp (cur_file_ptr->name, name) == 0)
+ if (cur_file_ptr != NULL && filename_cmp (cur_file_ptr->name, name) == 0)
return;
add_file (name, 0, 0);
@@ -5200,7 +5200,7 @@ ecoff_generate_asm_lineno (void)
as_where (&filename, &lineno);
if (current_stabs_filename == (char *) NULL
- || strcmp (current_stabs_filename, filename))
+ || filename_cmp (current_stabs_filename, filename))
add_file (filename, 0, 1);
list = allocate_lineno_list ();
Index: src/gas/input-scrub.c
===================================================================
--- src.orig/gas/input-scrub.c 2011-02-26 23:06:54.978909100 +0100
+++ src/gas/input-scrub.c 2011-02-27 12:08:48.206996200 +0100
@@ -21,6 +21,7 @@
02110-1301, USA. */
#include "as.h"
+#include "filenames.h"
#include "input-file.h"
#include "sb.h"
#include "listing.h"
@@ -474,7 +475,7 @@ new_logical_line_flags (char *fname, /*
if (fname
&& (logical_input_file == NULL
- || strcmp (logical_input_file, fname)))
+ || filename_cmp (logical_input_file, fname)))
{
logical_input_file = fname;
return 1;
Index: src/gas/listing.c
===================================================================
--- src.orig/gas/listing.c 2011-02-26 23:06:54.979909100 +0100
+++ src/gas/listing.c 2011-02-27 12:08:48.213996600 +0100
@@ -90,6 +90,7 @@
on a line. */
#include "as.h"
+#include "filenames.h"
#include "obstack.h"
#include "safe-ctype.h"
#include "input-file.h"
@@ -257,7 +258,7 @@ file_info (const char *file_name)
while (p != (file_info_type *) NULL)
{
- if (strcmp (p->filename, file_name) == 0)
+ if (filename_cmp (p->filename, file_name) == 0)
return p;
p = p->next;
}
@@ -318,7 +319,7 @@ listing_newline (char *ps)
if (ps == NULL)
{
if (line == last_line
- && !(last_file && file && strcmp (file, last_file)))
+ && !(last_file && file && filename_cmp (file, last_file)))
return;
new_i = (list_info_type *) xmalloc (sizeof (list_info_type));
Index: src/gas/remap.c
===================================================================
--- src.orig/gas/remap.c 2011-02-26 23:06:54.981909100 +0100
+++ src/gas/remap.c 2011-02-27 12:08:48.221997100 +0100
@@ -19,6 +19,7 @@
02110-1301, USA. */
#include "as.h"
+#include "filenames.h"
/* Structure recording the mapping from source file and directory
names at compile time to those to be embedded in debug
@@ -76,7 +77,7 @@ remap_debug_filename (const char *filena
size_t name_len;
for (map = debug_prefix_maps; map; map = map->next)
- if (strncmp (filename, map->old_prefix, map->old_len) == 0)
+ if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
break;
if (!map)
return filename;
Index: src/gas/stabs.c
===================================================================
--- src.orig/gas/stabs.c 2011-02-26 23:06:54.992909100 +0100
+++ src/gas/stabs.c 2011-02-27 12:08:48.225997300 +0100
@@ -20,6 +20,7 @@
02110-1301, USA. */
#include "as.h"
+#include "filenames.h"
#include "obstack.h"
#include "subsegs.h"
#include "ecoff.h"
@@ -521,7 +522,7 @@ generate_asm_file (int type, char *file)
char *bufp;
if (last_file != NULL
- && strcmp (last_file, file) == 0)
+ && filename_cmp (last_file, file) == 0)
return;
/* Rather than try to do this in some efficient fashion, we just
@@ -605,7 +606,7 @@ stabs_generate_asm_lineno (void)
prev_lineno = lineno;
}
else if (lineno == prev_lineno
- && strcmp (file, prev_file) == 0)
+ && filename_cmp (file, prev_file) == 0)
{
/* Same file/line as last time. */
return;
@@ -614,7 +615,7 @@ stabs_generate_asm_lineno (void)
{
/* Remember file/line for next time. */
prev_lineno = lineno;
- if (strcmp (file, prev_file) != 0)
+ if (filename_cmp (file, prev_file) != 0)
{
free (prev_file);
prev_file = xstrdup (file);
More information about the Binutils
mailing list