This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Support MIPS elfoabi target


Thiemo Seufer wrote:
> Fu, Chao-Ying wrote:
> > Thiemo Seufer wrote:
> > 
> > gas/ChangeLog
> > 2008-05-07  Chao-ying Fu  <fu@mips.com>
> > 
> > 	* config/tc-mips.c (md_begin): Use strncmp to compare 
> TARGET_OS, in
> > 	case that some characters append at the end of the name.
> > 	(mips_ip): Likewise.
> > 	(s_change_sec): Likewise.
> > 	(md_section_align): Likewise.
> 
> Ok.

  Done.  Thanks!

> 
> > Index: tc-mips.c
> > ===================================================================
> > RCS file: /cvs/src/src/gas/config/tc-mips.c,v
> > retrieving revision 1.383
> > diff -r1.383 tc-mips.c
> > 1960,1961c1960,1961
> > <       if (strcmp (TARGET_OS, "elf") != 0
> > <         && strcmp (TARGET_OS, "vxworks") != 0)
> > ---
> > >       if (strncmp (TARGET_OS, "elf", 3) != 0
> > >         && strncmp (TARGET_OS, "vxworks", 7) != 0)
> 
> You probably want to put a line like "diff -upNR" in your ~/.cvsrc,
> unified diffs are a lot nicer to read, and more robust as patches.
> 
  Yes.  Here is the new diff.

Index: config/tc-mips.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-mips.c,v
retrieving revision 1.383
diff -u -p -r1.383 tc-mips.c
--- config/tc-mips.c    28 Apr 2008 17:06:28 -0000      1.383
+++ config/tc-mips.c    9 May 2008 18:12:15 -0000
@@ -1957,8 +1957,8 @@ md_begin (void)
       /* On a native system other than VxWorks, sections must be aligned
         to 16 byte boundaries.  When configured for an embedded ELF
         target, we don't bother.  */
-      if (strcmp (TARGET_OS, "elf") != 0
-         && strcmp (TARGET_OS, "vxworks") != 0)
+      if (strncmp (TARGET_OS, "elf", 3) != 0
+         && strncmp (TARGET_OS, "vxworks", 7) != 0)
        {
          (void) bfd_set_section_alignment (stdoutput, text_section, 4);
          (void) bfd_set_section_alignment (stdoutput, data_section, 4);
@@ -1980,7 +1980,7 @@ md_begin (void)
           running program can access it.  However, we don't load it
           if we are configured for an embedded target */
        flags = SEC_READONLY | SEC_DATA;
-       if (strcmp (TARGET_OS, "elf") != 0)
+       if (strncmp (TARGET_OS, "elf", 3) != 0)
          flags |= SEC_ALLOC | SEC_LOAD;

        if (mips_abi != N64_ABI)
@@ -9552,7 +9552,7 @@ do_msbd:
                                              | SEC_READONLY
                                              | SEC_DATA));
                    frag_align (*args == 'l' ? 2 : 3, 0, 0);
-                   if (IS_ELF && strcmp (TARGET_OS, "elf") != 0)
+                   if (IS_ELF && strncmp (TARGET_OS, "elf", 3) != 0)
                      record_alignment (new_seg, 4);
                    else
                      record_alignment (new_seg, *args == 'l' ? 2 : 3);
@@ -12175,7 +12175,7 @@ s_change_sec (int sec)
          bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD
                                                  | SEC_READONLY | SEC_RELOC
                                                  | SEC_DATA));
-         if (strcmp (TARGET_OS, "elf") != 0)
+         if (strncmp (TARGET_OS, "elf", 3) != 0)
            record_alignment (seg, 4);
        }
       demand_empty_rest_of_line ();
@@ -12187,7 +12187,7 @@ s_change_sec (int sec)
        {
          bfd_set_section_flags (stdoutput, seg,
                                                  | SEC_READONLY | SEC_RELOC
                                                  | SEC_DATA));
-         if (strcmp (TARGET_OS, "elf") != 0)
+         if (strncmp (TARGET_OS, "elf", 3) != 0)
            record_alignment (seg, 4);
        }
       demand_empty_rest_of_line ();
@@ -12187,7 +12187,7 @@ s_change_sec (int sec)
        {
          bfd_set_section_flags (stdoutput, seg,
                                 SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
-         if (strcmp (TARGET_OS, "elf") != 0)
+         if (strncmp (TARGET_OS, "elf", 3) != 0)
            record_alignment (seg, 4);
        }
       demand_empty_rest_of_line ();
@@ -12187,7 +12187,7 @@ s_change_sec (int sec)
        {
          bfd_set_section_flags (stdoutput, seg,
                                 SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
-         if (strcmp (TARGET_OS, "elf") != 0)
+         if (strncmp (TARGET_OS, "elf", 3) != 0)
            record_alignment (seg, 4);
        }
       demand_empty_rest_of_line ();
@@ -13276,7 +13276,7 @@ md_section_align (asection *seg, valueT
         However, Irix 5 may prefer that we align them at least to a 16
         byte boundary.  We don't bother to align the sections if we
         are targeted for an embedded system.  */
-      if (strcmp (TARGET_OS, "elf") == 0)
+      if (strncmp (TARGET_OS, "elf", 3) == 0)
         return addr;
       if (align > 4)
         align = 4;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]