[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