]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* bfd-in.h (STRING_AND_COMMA): New macro. Takes one constant string as its
authorNick Clifton <nickc@redhat.com>
Sat, 16 Sep 2006 18:12:17 +0000 (18:12 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 16 Sep 2006 18:12:17 +0000 (18:12 +0000)
  argument and emits the string followed by a comma and then the length of
  the string.
  (CONST_STRNEQ): New macro.  Checks to see if a variable string has a constant
  string as its initial characters.
  (CONST_STRNCPY): New macro.  Copies a constant string to the start of a
  variable string.
* bfd-in2.h: Regenerate.
* <remainign files>: Make use of the new macros.

87 files changed:
bfd/ChangeLog
bfd/archive.c
bfd/archive64.c
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/bfd.c
bfd/coff-ppc.c
bfd/coff-stgo32.c
bfd/coffcode.h
bfd/cofflink.c
bfd/cpu-i960.c
bfd/dwarf2.c
bfd/ecoff.c
bfd/elf-m10300.c
bfd/elf.c
bfd/elf32-arm.c
bfd/elf32-bfin.c
bfd/elf32-cris.c
bfd/elf32-hppa.c
bfd/elf32-i370.c
bfd/elf32-i386.c
bfd/elf32-iq2000.c
bfd/elf32-m32r.c
bfd/elf32-m68hc11.c
bfd/elf32-m68hc12.c
bfd/elf32-m68k.c
bfd/elf32-mcore.c
bfd/elf32-ppc.c
bfd/elf32-s390.c
bfd/elf32-sh-symbian.c
bfd/elf32-sh.c
bfd/elf32-sh64.c
bfd/elf32-v850.c
bfd/elf32-vax.c
bfd/elf32-xtensa.c
bfd/elf64-alpha.c
bfd/elf64-hppa.c
bfd/elf64-mmix.c
bfd/elf64-ppc.c
bfd/elf64-s390.c
bfd/elf64-sh64.c
bfd/elf64-x86-64.c
bfd/elflink.c
bfd/elfxx-ia64.c
bfd/elfxx-mips.c
bfd/elfxx-sparc.c
bfd/hpux-core.c
bfd/i386linux.c
bfd/ieee.c
bfd/libpei.h
bfd/linker.c
bfd/m68klinux.c
bfd/mmo.c
bfd/nlmcode.h
bfd/osf-core.c
bfd/pef.c
bfd/som.c
bfd/sparclinux.c
bfd/vms-hdr.c
binutils/ChangeLog
binutils/ar.c
binutils/dlltool.c
binutils/emul_aix.c
binutils/nlmconv.c
binutils/objdump.c
binutils/prdbg.c
binutils/readelf.c
binutils/stabs.c
ld/ChangeLog
ld/emultempl/aix.em
ld/emultempl/beos.em
ld/emultempl/elf32.em
ld/emultempl/pe.em
ld/emultempl/sunos.em
ld/emultempl/xtensaelf.em
ld/ldctor.c
ld/ldmain.c
ld/ldwrite.c
ld/lexsup.c
ld/pe-dll.c
opcodes/ChangeLog
opcodes/arm-dis.c
opcodes/cris-dis.c
opcodes/h8300-dis.c
opcodes/i386-dis.c
opcodes/ia64-gen.c
opcodes/mips-dis.c

index 8222b4355983647b4274d24d88f7f9a8ae5f823b..fa9e137e084f46b41f95af9cdcf5a3b560cbb519 100644 (file)
@@ -1,3 +1,71 @@
+2006-09-16  Nick Clifton  <nickc@redhat.com>
+           Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * bfd-in.h (STRING_AND_COMMA): New macro.  Takes one constant
+       string as its argument and emits the string followed by a comma
+       and then the length of the string.
+       (CONST_STRNEQ): New macro.  Checks to see if a variable string
+       has a constant string as its initial characters.
+       (CONST_STRNCPY): New macro.  Copies a constant string to the start
+       of a variable string.
+       * bfd-in2.h: Regenerate.
+       * archive.c: Make use of the new macros.
+       * archive64.c: Likewise.
+       * bfd.c: Likewise.
+       * coff-ppc.c: Likewise.
+       * coff-stgo32.c: Likewise.
+       * coffcode.h: Likewise.
+       * cofflink.c: Likewise.
+       * cpu-i960.c: Likewise.
+       * dwarf2.c: Likewise.
+       * ecoff.c: Likewise.
+       * elf-m10300.c: Likewise.
+       * elf.c: Likewise.
+       * elf32-arm.c: Likewise.
+       * elf32-bfin.c: Likewise.
+       * elf32-cris.c: Likewise.
+       * elf32-hppa.c: Likewise.
+       * elf32-i370.c: Likewise.
+       * elf32-i386.c: Likewise.
+       * elf32-iq2000.c: Likewise.
+       * elf32-m32r.c: Likewise.
+       * elf32-m68hc11.c: Likewise.
+       * elf32-m68hc12.c: Likewise.
+       * elf32-m68k.c: Likewise.
+       * elf32-mcore.c: Likewise.
+       * elf32-ppc.c: Likewise.
+       * elf32-s390.c: Likewise.
+       * elf32-sh-symbian.c: Likewise.
+       * elf32-sh.c: Likewise.
+       * elf32-sh64.c: Likewise.
+       * elf32-v850.c: Likewise.
+       * elf32-vax.c: Likewise.
+       * elf32-xtensa.c: Likewise.
+       * elf64-alpha.c: Likewise.
+       * elf64-hppa.c: Likewise.
+       * elf64-mmix.c: Likewise.
+       * elf64-ppc.c: Likewise.
+       * elf64-s390.c: Likewise.
+       * elf64-sh64.c: Likewise.
+       * elf64-x86-64.c: Likewise.
+       * elflink.c: Likewise.
+       * elfxx-ia64.c: Likewise.
+       * elfxx-mips.c: Likewise.
+       * elfxx-sparc.c: Likewise.
+       * hpux-core.c: Likewise.
+       * i386linux.c: Likewise.
+       * ieee.c: Likewise.
+       * libpei.h: Likewise.
+       * linker.c: Likewise.
+       * m68klinux.c: Likewise.
+       * mmo.c: Likewise.
+       * nlmcode.h: Likewise.
+       * osf-core.c: Likewise.
+       * pef.c: Likewise.
+       * som.c: Likewise.
+       * sparclinux.c: Likewise.
+       * vms-hdr.c: Likewise.
+
 2006-09-14  Alan Modra  <amodra@bigpond.net.au>
 
        PR 3182
index 24bb048138bbe0d7daa003adabf348047beda655..947506d0002b07a460517ce128929b3a27a844f0 100644 (file)
@@ -912,12 +912,12 @@ bfd_slurp_armap (bfd *abfd)
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
     return FALSE;
 
-  if (!strncmp (nextname, "__.SYMDEF       ", 16)
-      || !strncmp (nextname, "__.SYMDEF/      ", 16)) /* old Linux archives */
+  if (CONST_STRNEQ (nextname, "__.SYMDEF       ")
+      || CONST_STRNEQ (nextname, "__.SYMDEF/      ")) /* Old Linux archives.  */
     return do_slurp_bsd_armap (abfd);
-  else if (!strncmp (nextname, "/               ", 16))
+  else if (CONST_STRNEQ (nextname, "/               "))
     return do_slurp_coff_armap (abfd);
-  else if (!strncmp (nextname, "/SYM64/         ", 16))
+  else if (CONST_STRNEQ (nextname, "/SYM64/         "))
     {
       /* 64bit ELF (Irix 6) archive.  */
 #ifdef BFD64
@@ -963,11 +963,11 @@ bfd_slurp_bsd_armap_f2 (bfd *abfd)
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
     return FALSE;
 
-  if (!strncmp (nextname, "__.SYMDEF       ", 16)
-      || !strncmp (nextname, "__.SYMDEF/      ", 16)) /* Old Linux archives.  */
+  if (CONST_STRNEQ (nextname, "__.SYMDEF       ")
+      || CONST_STRNEQ (nextname, "__.SYMDEF/      ")) /* Old Linux archives.  */
     return do_slurp_bsd_armap (abfd);
 
-  if (strncmp (nextname, "/               ", 16))
+  if (! CONST_STRNEQ (nextname, "/               "))
     {
       bfd_has_map (abfd) = FALSE;
       return TRUE;
@@ -1063,8 +1063,8 @@ _bfd_slurp_extended_name_table (bfd *abfd)
       if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
        return FALSE;
 
-      if (strncmp (nextname, "ARFILENAMES/    ", 16) != 0 &&
-         strncmp (nextname, "//              ", 16) != 0)
+      if (! CONST_STRNEQ (nextname, "ARFILENAMES/    ")
+         && ! CONST_STRNEQ (nextname, "//              "))
        {
          bfd_ardata (abfd)->extended_names = NULL;
          bfd_ardata (abfd)->extended_names_size = 0;
index 3b28f853c216619604ac45ecb5f3decfc4b45934..4fc8b851939cffa2f51653fecf6ed791f1d2f73b 100644 (file)
@@ -1,25 +1,25 @@
 /* MIPS-specific support for 64-bit ELF
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006
    Free Software Foundation, Inc.
    Ian Lance Taylor, Cygnus Support
    Linker support added by Mark Mitchell, CodeSourcery, LLC.
    <mark@codesourcery.com>
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* This file supports the 64-bit (MIPS) ELF archives.  */
 
@@ -65,10 +65,10 @@ bfd_elf64_archive_slurp_armap (bfd *abfd)
     return FALSE;
 
   /* Archives with traditional armaps are still permitted.  */
-  if (strncmp (nextname, "/               ", 16) == 0)
+  if (CONST_STRNEQ (nextname, "/               "))
     return bfd_slurp_armap (abfd);
 
-  if (strncmp (nextname, "/SYM64/         ", 16) != 0)
+  if (! CONST_STRNEQ (nextname, "/SYM64/         "))
     {
       bfd_has_map (abfd) = FALSE;
       return TRUE;
index 6ceb0dbdac3d3880c598923bfaf96c57932553c3..c11880e95374582fcd08785fdb846c973143323e 100644 (file)
@@ -43,6 +43,25 @@ extern "C" {
 #endif
 #endif
 
+/* This is a utility macro to handle the situation where the code
+   wants to place a constant string into the code, followed by a
+   comma and then the length of the string.  Doing this by hand
+   is error prone, so using this macro is safer.  The macro will
+   also safely handle the case where a NULL is passed as the arg.  */
+#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
+/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
+   to create the arguments to another macro, since the preprocessor
+   will mis-count the number of arguments to the outer macro (by not
+   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
+   problem for example when trying to use STRING_COMMA_LEN to build
+   the arguments to the strncmp() macro.  Hence this alternative
+   definition of strncmp is provided here.
+   
+   Note - these macros do NOT work if STR2 is not a constant string.  */
+#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
+#define CONST_STRNCPY(STR1,STR2) strncpy ((STR1), (STR2), sizeof (STR2) - 1)
+
+
 /* The word size used by BFD on the host.  This may be 64 with a 32
    bit target if the host is 64 bit, or if other 64 bit targets have
    been selected with --enable-targets, or if --enable-64-bit-bfd.  */
index b75c8e2510c86695674ba283c5555a68094560d5..841cc4655092f22a1b79a29ef94be123c57dc0f4 100644 (file)
@@ -50,6 +50,25 @@ extern "C" {
 #endif
 #endif
 
+/* This is a utility macro to handle the situation where the code
+   wants to place a constant string into the code, followed by a
+   comma and then the length of the string.  Doing this by hand
+   is error prone, so using this macro is safer.  The macro will
+   also safely handle the case where a NULL is passed as the arg.  */
+#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
+/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
+   to create the arguments to another macro, since the preprocessor
+   will mis-count the number of arguments to the outer macro (by not
+   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
+   problem for example when trying to use STRING_COMMA_LEN to build
+   the arguments to the strncmp() macro.  Hence this alternative
+   definition of strncmp is provided here.
+   
+   Note - these macros do NOT work if STR2 is not a constant string.  */
+#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
+#define CONST_STRNCPY(STR1,STR2) strncpy ((STR1), (STR2), sizeof (STR2) - 1)
+
+
 /* The word size used by BFD on the host.  This may be 64 with a 32
    bit target if the host is 64 bit, or if other 64 bit targets have
    been selected with --enable-targets, or if --enable-64-bit-bfd.  */
index 13fbf93628a0d8a38a713ee73da75e57f244391b..7f59adb13024bde2dd86b96490e187f97f2c9caa 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -881,7 +881,7 @@ bfd_get_sign_extend_vma (bfd *abfd)
      no place to store this information in the COFF back end.
      Should enough other COFF targets add support for DWARF2,
      a place will have to be found.  Until then, this hack will do.  */
-  if (strncmp (name, "coff-go32", sizeof ("coff-go32") - 1) == 0
+  if (CONST_STRNEQ (name, "coff-go32")
       || strcmp (name, "pe-i386") == 0
       || strcmp (name, "pei-i386") == 0
       || strcmp (name, "pe-arm-wince-little") == 0
index b4427936933a649abc02dd6810eba904ac73482e..0ef3785234532de44a1443d09b67f8a9b9d01129 100644 (file)
@@ -1332,7 +1332,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
 
            DUMP_RELOC2 (howto->name, rel);
 
-           if (strncmp(".idata$2",input_section->name,8) == 0 && first_thunk_address == 0)
+           if (CONST_STRNEQ (input_section->name, ".idata$2") && first_thunk_address == 0)
              {
                /* Set magic values.  */
                int idata5offset;
index 3c5fdbb6e804a9f12c0fa5d9747204071b29f832..61f18f0c1f35cb58b0e9ee6557183f62b3fd4c47 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub).
-   Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
    Written by Robert Hoehne.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -354,7 +354,7 @@ create_go32_stub (abfd)
          close (f);
          goto stub_end;
        }
-      if (memcmp (magic, "go32stub", 8) != 0)
+      if (! CONST_STRNEQ (magic, "go32stub"))
        {
          close (f);
          goto stub_end;
index fa0a206a5ef7d71f779ac2ad991c03e95cc56641..0c7f897453b8f50a17a030cf3e62f47fd8535723 100644 (file)
@@ -427,7 +427,7 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
       styp_flags = STYP_LIT;
 #endif /* _LIT */
     }
-  else if (!strncmp (sec_name, DOT_DEBUG, sizeof (DOT_DEBUG) - 1))
+  else if (CONST_STRNEQ (sec_name, DOT_DEBUG))
     {
       /* Handle the XCOFF debug section and DWARF2 debug sections.  */
       if (!sec_name[6])
@@ -435,12 +435,12 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
       else
         styp_flags = STYP_DEBUG_INFO;
     }
-  else if (!strncmp (sec_name, ".stab", 5))
+  else if (CONST_STRNEQ (sec_name, ".stab"))
     {
       styp_flags = STYP_DEBUG_INFO;
     }
 #ifdef COFF_LONG_SECTION_NAMES
-  else if (!strncmp (sec_name, GNU_LINKONCE_WI, sizeof (GNU_LINKONCE_WI) - 1))
+  else if (CONST_STRNEQ (sec_name, GNU_LINKONCE_WI))
     {
       styp_flags = STYP_DEBUG_INFO;
     }
@@ -529,8 +529,8 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags)
      but there are more IMAGE_SCN_* flags.  */
 
   /* FIXME: There is no gas syntax to specify the debug section flag.  */
-  if (strncmp (sec_name, DOT_DEBUG, sizeof (DOT_DEBUG) - 1) == 0
-      || strncmp (sec_name, GNU_LINKONCE_WI, sizeof (GNU_LINKONCE_WI) - 1) == 0)
+  if (CONST_STRNEQ (sec_name, DOT_DEBUG)
+      || CONST_STRNEQ (sec_name, GNU_LINKONCE_WI))
     sec_flags = SEC_DEBUGGING;
 
   /* skip LOAD */
@@ -674,14 +674,14 @@ styp_to_sec_flags (bfd *abfd ATTRIBUTE_UNUSED,
 #endif
        sec_flags |= SEC_ALLOC;
     }
-  else if (strncmp (name, DOT_DEBUG, sizeof (DOT_DEBUG) - 1) == 0
+  else if (CONST_STRNEQ (name, DOT_DEBUG)
 #ifdef _COMMENT
           || strcmp (name, _COMMENT) == 0
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-          || strncmp (name, GNU_LINKONCE_WI, sizeof (GNU_LINKONCE_WI) - 1) == 0
+          || CONST_STRNEQ (name, GNU_LINKONCE_WI)
 #endif
-          || strncmp (name, ".stab", 5) == 0)
+          || CONST_STRNEQ (name, ".stab"))
     {
 #ifdef COFF_PAGE_SIZE
       sec_flags |= SEC_DEBUGGING;
@@ -715,7 +715,7 @@ styp_to_sec_flags (bfd *abfd ATTRIBUTE_UNUSED,
      The symbols will be defined as weak, so that multiple definitions
      are permitted.  The GNU linker extension is to actually discard
      all but one of the sections.  */
-  if (strncmp (name, ".gnu.linkonce", sizeof ".gnu.linkonce" - 1) == 0)
+  if (CONST_STRNEQ (name, ".gnu.linkonce"))
     sec_flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
 #endif
 
@@ -1071,7 +1071,7 @@ styp_to_sec_flags (bfd *abfd,
          /* The MS PE spec sets the DISCARDABLE flag on .reloc sections
             but we do not want them to be labelled as debug section, since
             then strip would remove them.  */
-         if (strncmp (name, ".reloc", sizeof ".reloc" - 1) != 0)
+         if (! CONST_STRNEQ (name, ".reloc"))
            sec_flags |= SEC_DEBUGGING;
          break;
        case IMAGE_SCN_MEM_SHARED:
@@ -1126,7 +1126,7 @@ styp_to_sec_flags (bfd *abfd,
      The symbols will be defined as weak, so that multiple definitions
      are permitted.  The GNU linker extension is to actually discard
      all but one of the sections.  */
-  if (strncmp (name, ".gnu.linkonce", sizeof ".gnu.linkonce" - 1) == 0)
+  if (CONST_STRNEQ (name, ".gnu.linkonce"))
     sec_flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
 #endif
 
index 40f5a7009292a5eb2cbe897e548f510de1295c7c..6e15a025931cc2eca92d613561cde961ecb33135 100644 (file)
@@ -232,7 +232,7 @@ coff_link_check_ar_symbols (bfd *abfd,
          /* Auto import.  */
          if (!h
              && info->pei386_auto_import
-             && !strncmp (name,"__imp_", 6))
+             && CONST_STRNEQ (name, "__imp_"))
            h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE);
 
          /* We are only interested in symbols that are currently
@@ -439,7 +439,7 @@ coff_link_add_symbols (bfd *abfd,
                  || classification == COFF_SYMBOL_PE_SECTION)
              && coff_section_data (abfd, section) != NULL
              && coff_section_data (abfd, section)->comdat != NULL
-             && strncmp (name, "??_", 3) == 0
+             && CONST_STRNEQ (name, "??_")
              && strcmp (name, coff_section_data (abfd, section)->comdat->name) == 0)
            {
              if (*sym_hash == NULL)
@@ -583,7 +583,7 @@ coff_link_add_symbols (bfd *abfd,
          asection *stab;
          
          for (stab = abfd->sections; stab; stab = stab->next)
-           if (strncmp (".stab", stab->name, 5) == 0
+           if (CONST_STRNEQ (".stab", stab->name)
                && (!stab->name[5]
                    || (stab->name[5] == '.' && ISDIGIT (stab->name[6]))))
            {
@@ -1232,7 +1232,7 @@ process_embedded_commands (bfd *output_bfd,
          s++;
          continue;
        }
-      if (strncmp (s, "-attr", 5) == 0)
+      if (CONST_STRNEQ (s, "-attr"))
        {
          char *name;
          char *attribs;
@@ -1272,11 +1272,11 @@ process_embedded_commands (bfd *output_bfd,
                asec->flags |= SEC_READONLY;
            }
        }
-      else if (strncmp (s,"-heap", 5) == 0)
-       s = dores_com (s+5, output_bfd, 1);
+      else if (CONST_STRNEQ (s, "-heap"))
+       s = dores_com (s + 5, output_bfd, 1);
 
-      else if (strncmp (s,"-stack", 6) == 0)
-       s = dores_com (s+6, output_bfd, 0);
+      else if (CONST_STRNEQ (s, "-stack"))
+       s = dores_com (s + 6, output_bfd, 0);
 
       else
        s++;
index 7a9be7ca640a34985e0d72f7753879d418b54322..e7ccd46894d6ece8e274844dbb62552f08b60276 100644 (file)
@@ -1,23 +1,23 @@
 /* BFD library support routines for the i960 architecture.
-   Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001, 2002
+   Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001, 2002, 2006
    Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include "bfd.h"
 #include "sysdep.h"
@@ -57,7 +57,7 @@ scan_960_mach (ap, string)
     }
   /* In some bfds the cpu-id is written as "80960KA", "80960KB",
      "80960CA" or "80960MC".  */
-  else if (strncmp ("80960", string, 5) == 0)
+  else if (CONST_STRNEQ (string, "80960"))
     {
       string += 5;
 
index b55f2faec478e3c336efc6f69d8f23a5d398b296..b05711435908ce5d2f1b2a79dcb35773c1191c59 100644 (file)
@@ -2181,7 +2181,7 @@ find_debug_info (bfd *abfd, asection *after_sec)
       if (strcmp (msec->name, DWARF2_DEBUG_INFO) == 0)
        return msec;
 
-      if (strncmp (msec->name, GNU_LINKONCE_INFO, strlen (GNU_LINKONCE_INFO)) == 0)
+      if (CONST_STRNEQ (msec->name, GNU_LINKONCE_INFO))
        return msec;
 
       msec = msec->next;
index 386227b1ccfe6e1510989428c27c2b127fa54aad..eef59dc0f14b10f47eab7e358a599614fa45a171 100644 (file)
@@ -2861,7 +2861,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
      bfd_slurp_armap, but that seems inappropriate since no other
      target uses this format.  Instead, we check directly for a COFF
      armap.  */
-  if (strneq (nextname, "/               ", 16))
+  if (CONST_STRNEQ (nextname, "/               "))
     return bfd_slurp_armap (abfd);
 
   /* See if the first element is an armap.  */
index a8f4836e70973504d6856701c4fa18ceb2bb7f70..351d01c7318af29c2946cff16a7ed455e389fa6f 100644 (file)
@@ -2,21 +2,21 @@
    Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006 Free Software Foundation, Inc.
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include "bfd.h"
 #include "sysdep.h"
@@ -886,7 +886,7 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -1036,7 +1036,7 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
              if (name == NULL)
                return FALSE;
 
-             BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+             BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                          && strcmp (bfd_get_section_name (input_bfd,
                                                           input_section),
                                     name + 5) == 0);
@@ -4310,7 +4310,7 @@ _bfd_mn10300_elf_size_dynamic_sections (output_bfd, info)
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -4343,7 +4343,7 @@ _bfd_mn10300_elf_size_dynamic_sections (output_bfd, info)
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        /* It's not one of our sections, so don't allocate space.  */
        continue;
index ce8f4bccb5fee237de22cf5e913e9559e5311895..83bfcef843009d0a5812f75183c0b5f51177797a 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -816,22 +816,22 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
          int len;
        } debug_sections [] =
        {
-         { "debug",             5  },  /* 'd' */
+         { STRING_COMMA_LEN ("debug") },       /* 'd' */
          { NULL,                0  },  /* 'e' */
          { NULL,                0  },  /* 'f' */
-         { "gnu.linkonce.wi.", 16 },   /* 'g' */
+         { STRING_COMMA_LEN ("gnu.linkonce.wi.") },    /* 'g' */
          { NULL,                0  },  /* 'h' */
          { NULL,                0  },  /* 'i' */
          { NULL,                0  },  /* 'j' */
          { NULL,                0  },  /* 'k' */
-         { "line",              4  },  /* 'l' */
+         { STRING_COMMA_LEN ("line") },        /* 'l' */
          { NULL,                0  },  /* 'm' */
          { NULL,                0  },  /* 'n' */
          { NULL,                0  },  /* 'o' */
          { NULL,                0  },  /* 'p' */
          { NULL,                0  },  /* 'q' */
          { NULL,                0  },  /* 'r' */
-         { "stab",              4  }   /* 's' */
+         { STRING_COMMA_LEN ("stab") } /* 's' */
        };
       
       if (name [0] == '.')
@@ -852,7 +852,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
      The symbols will be defined as weak, so that multiple definitions
      are permitted.  The GNU linker extension is to actually discard
      all but one of the sections.  */
-  if (strncmp (name, ".gnu.linkonce", sizeof ".gnu.linkonce" - 1) == 0
+  if (CONST_STRNEQ (name, ".gnu.linkonce")
       && elf_next_in_group (newsect) == NULL)
     flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
 
@@ -2281,109 +2281,109 @@ bfd_section_from_elf_index (bfd *abfd, unsigned int index)
 
 static const struct bfd_elf_special_section special_sections_b[] =
 {
-  { ".bss",            4, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".bss"), -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { NULL,                   0,  0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_c[] =
 {
-  { ".comment",        8,  0, SHT_PROGBITS, 0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".comment"), 0, SHT_PROGBITS, 0 },
+  { NULL,                       0, 0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_d[] =
 {
-  { ".data",           5, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".data1",          6,  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".debug",          6,  0, SHT_PROGBITS, 0 },
-  { ".debug_line",    11,  0, SHT_PROGBITS, 0 },
-  { ".debug_info",    11,  0, SHT_PROGBITS, 0 },
-  { ".debug_abbrev",  13,  0, SHT_PROGBITS, 0 },
-  { ".debug_aranges", 14,  0, SHT_PROGBITS, 0 },
-  { ".dynamic",        8,  0, SHT_DYNAMIC,  SHF_ALLOC },
-  { ".dynstr",         7,  0, SHT_STRTAB,   SHF_ALLOC },
-  { ".dynsym",         7,  0, SHT_DYNSYM,   SHF_ALLOC },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".data"),         -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".data1"),         0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".debug"),         0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_line"),    0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_info"),    0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_abbrev"),  0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_aranges"), 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".dynamic"),       0, SHT_DYNAMIC,  SHF_ALLOC },
+  { STRING_COMMA_LEN (".dynstr"),        0, SHT_STRTAB,   SHF_ALLOC },
+  { STRING_COMMA_LEN (".dynsym"),        0, SHT_DYNSYM,   SHF_ALLOC },
+  { NULL,                      0,        0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_f[] =
 {
-  { ".fini",           5,  0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { ".fini_array",    11,  0, SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".fini"),       0, SHT_PROGBITS,   SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".fini_array"), 0, SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
+  { NULL,                          0, 0, 0,              0 }
 };
 
 static const struct bfd_elf_special_section special_sections_g[] =
 {
-  { ".gnu.linkonce.b",15, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".got",            4,  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".gnu.version",   12,  0, SHT_GNU_versym, 0 },
-  { ".gnu.version_d", 14,  0, SHT_GNU_verdef, 0 },
-  { ".gnu.version_r", 14,  0, SHT_GNU_verneed, 0 },
-  { ".gnu.liblist",   12,  0, SHT_GNU_LIBLIST, SHF_ALLOC },
-  { ".gnu.conflict",  13,  0, SHT_RELA,     SHF_ALLOC },
-  { ".gnu.hash",       9,  0, SHT_GNU_HASH, SHF_ALLOC },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".gnu.linkonce.b"), -2, SHT_NOBITS,      SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".got"),             0, SHT_PROGBITS,    SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".gnu.version"),     0, SHT_GNU_versym,  0 },
+  { STRING_COMMA_LEN (".gnu.version_d"),   0, SHT_GNU_verdef,  0 },
+  { STRING_COMMA_LEN (".gnu.version_r"),   0, SHT_GNU_verneed, 0 },
+  { STRING_COMMA_LEN (".gnu.liblist"),     0, SHT_GNU_LIBLIST, SHF_ALLOC },
+  { STRING_COMMA_LEN (".gnu.conflict"),    0, SHT_RELA,        SHF_ALLOC },
+  { STRING_COMMA_LEN (".gnu.hash"),        0, SHT_GNU_HASH,    SHF_ALLOC },
+  { NULL,                        0,        0, 0,               0 }
 };
 
 static const struct bfd_elf_special_section special_sections_h[] =
 {
-  { ".hash",           5,  0, SHT_HASH,     SHF_ALLOC },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".hash"), 0, SHT_HASH,     SHF_ALLOC },
+  { NULL,                    0, 0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_i[] =
 {
-  { ".init",           5,  0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { ".init_array",    11,  0, SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { ".interp",         7,  0, SHT_PROGBITS, 0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".init"),       0, SHT_PROGBITS,   SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".init_array"), 0, SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".interp"),     0, SHT_PROGBITS,   0 },
+  { NULL,                      0,     0, 0,              0 }
 };
 
 static const struct bfd_elf_special_section special_sections_l[] =
 {
-  { ".line",           5,  0, SHT_PROGBITS, 0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".line"), 0, SHT_PROGBITS, 0 },
+  { NULL,                    0, 0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_n[] =
 {
-  { ".note.GNU-stack",15,  0, SHT_PROGBITS, 0 },
-  { ".note",           5, -1, SHT_NOTE,     0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".note.GNU-stack"), 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".note"),          -1, SHT_NOTE,     0 },
+  { NULL,                    0,           0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_p[] =
 {
-  { ".preinit_array", 14,  0, SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { ".plt",            4,  0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".preinit_array"), 0, SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".plt"),           0, SHT_PROGBITS,      SHF_ALLOC + SHF_EXECINSTR },
+  { NULL,                   0,           0, 0,                 0 }
 };
 
 static const struct bfd_elf_special_section special_sections_r[] =
 {
-  { ".rodata",         7, -2, SHT_PROGBITS, SHF_ALLOC },
-  { ".rodata1",        8,  0, SHT_PROGBITS, SHF_ALLOC },
-  { ".rela",           5, -1, SHT_RELA,     0 },
-  { ".rel",            4, -1, SHT_REL,      0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".rodata"), -2, SHT_PROGBITS, SHF_ALLOC },
+  { STRING_COMMA_LEN (".rodata1"), 0, SHT_PROGBITS, SHF_ALLOC },
+  { STRING_COMMA_LEN (".rela"),   -1, SHT_RELA,     0 },
+  { STRING_COMMA_LEN (".rel"),    -1, SHT_REL,      0 },
+  { NULL,                   0,     0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section special_sections_s[] =
 {
-  { ".shstrtab",       9,  0, SHT_STRTAB,   0 },
-  { ".strtab",         7,  0, SHT_STRTAB,   0 },
-  { ".symtab",         7,  0, SHT_SYMTAB,   0 },
-  { ".stabstr",        5,  3, SHT_STRTAB,   0 },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".shstrtab"), 0, SHT_STRTAB, 0 },
+  { STRING_COMMA_LEN (".strtab"),   0, SHT_STRTAB, 0 },
+  { STRING_COMMA_LEN (".symtab"),   0, SHT_SYMTAB, 0 },
+  { STRING_COMMA_LEN (".stabstr"),  3, SHT_STRTAB, 0 },
+  { NULL,                       0,  0, 0,          0 }
 };
 
 static const struct bfd_elf_special_section special_sections_t[] =
 {
-  { ".text",           5, -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { ".tbss",           5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_TLS },
-  { ".tdata",          6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".text"),  -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".tbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_TLS },
+  { STRING_COMMA_LEN (".tdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
+  { NULL,                     0,  0, 0,            0 }
 };
 
 static const struct bfd_elf_special_section *special_sections[] =
@@ -3238,7 +3238,7 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
             string section.  We look for a section with the same name
             but without the trailing ``str'', and set its sh_link
             field to point to this section.  */
-         if (strncmp (sec->name, ".stab", sizeof ".stab" - 1) == 0
+         if (CONST_STRNEQ (sec->name, ".stab")
              && strcmp (sec->name + strlen (sec->name) - 3, "str") == 0)
            {
              size_t len;
@@ -3646,7 +3646,7 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
   for (s = abfd->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LOAD) != 0
-         && strncmp (s->name, ".note", 5) == 0)
+         && CONST_STRNEQ (s->name, ".note"))
        {
          /* We need a PT_NOTE segment.  */
          ++segs;
@@ -4028,7 +4028,7 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
       for (s = abfd->sections; s != NULL; s = s->next)
        {
          if ((s->flags & SEC_LOAD) != 0
-             && strncmp (s->name, ".note", 5) == 0)
+             && CONST_STRNEQ (s->name, ".note"))
            {
              amt = sizeof (struct elf_segment_map);
              m = bfd_zalloc (abfd, amt);
@@ -8291,12 +8291,12 @@ elfcore_read_notes (bfd *abfd, file_ptr offset, bfd_size_type size)
       in.descdata = in.namedata + BFD_ALIGN (in.namesz, 4);
       in.descpos = offset + (in.descdata - buf);
 
-      if (strncmp (in.namedata, "NetBSD-CORE", 11) == 0)
+      if (CONST_STRNEQ (in.namedata, "NetBSD-CORE"))
         {
           if (! elfcore_grok_netbsd_note (abfd, &in))
             goto error;
         }
-      else if (strncmp (in.namedata, "QNX", 3) == 0)
+      else if (CONST_STRNEQ (in.namedata, "QNX"))
        {
          if (! elfcore_grok_nto_note (abfd, &in))
            goto error;
@@ -8675,10 +8675,8 @@ bfd_elf_match_symbols_in_sections (asection *sec1, asection *sec2)
 
   /* If both are .gnu.linkonce sections, they have to have the same
      section name.  */
-  if (strncmp (sec1->name, ".gnu.linkonce",
-              sizeof ".gnu.linkonce" - 1) == 0
-      && strncmp (sec2->name, ".gnu.linkonce",
-                 sizeof ".gnu.linkonce" - 1) == 0)
+  if (CONST_STRNEQ (sec1->name, ".gnu.linkonce")
+      && CONST_STRNEQ (sec2->name, ".gnu.linkonce"))
     return strcmp (sec1->name + sizeof ".gnu.linkonce",
                   sec2->name + sizeof ".gnu.linkonce") == 0;
 
index 8db3c8cb2fdccc97a8c1ac3a68f49798322dcfb6..f46b6ae58bc711e402be85e7d0e5329b4827ba95 100644 (file)
@@ -2221,9 +2221,9 @@ reloc_section_p (struct elf32_arm_link_hash_table *htab,
                 const char *name, asection *s)
 {
   if (htab->use_rel)
-    return strncmp (name, ".rel", 4) == 0 && strcmp (s->name, name + 4) == 0;
+    return CONST_STRNEQ (name, ".rel") && strcmp (s->name, name + 4) == 0;
   else
-    return strncmp (name, ".rela", 5) == 0 && strcmp (s->name, name + 5) == 0;
+    return CONST_STRNEQ (name, ".rela") && strcmp (s->name, name + 5) == 0;
 }
 
 /* Create .got, .gotplt, and .rel(a).got sections in DYNOBJ, and set up
@@ -7938,7 +7938,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rel", 4) == 0)
+      else if (CONST_STRNEQ (name, ".rel"))
        {
          if (s->size != 0)
            {
@@ -7952,7 +7952,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        {
          /* It's not one of our sections, so don't allocate space.  */
@@ -8680,12 +8680,8 @@ elf32_arm_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED
 static bfd_boolean
 is_arm_elf_unwind_section_name (bfd * abfd ATTRIBUTE_UNUSED, const char * name)
 {
-  size_t len1, len2;
-
-  len1 = sizeof (ELF_STRING_ARM_unwind) - 1;
-  len2 = sizeof (ELF_STRING_ARM_unwind_once) - 1;
-  return (strncmp (name, ELF_STRING_ARM_unwind, len1) == 0
-         || strncmp (name, ELF_STRING_ARM_unwind_once, len2) == 0);
+  return (CONST_STRNEQ (name, ELF_STRING_ARM_unwind)
+         || CONST_STRNEQ (name, ELF_STRING_ARM_unwind_once));
 }
 
 
@@ -9656,18 +9652,18 @@ elf32_arm_symbian_special_sections[] =
      the loadable read-only segment.  The post-linker may wish to
      refer to these sections, but they are not part of the final
      program image.  */
-  { ".dynamic",        8,  0, SHT_DYNAMIC,  0 },
-  { ".dynstr",         7,  0, SHT_STRTAB,   0 },
-  { ".dynsym",         7,  0, SHT_DYNSYM,   0 },
-  { ".got",            4,  0, SHT_PROGBITS, 0 },
-  { ".hash",           5,  0, SHT_HASH,     0 },
+  { STRING_COMMA_LEN (".dynamic"),       0, SHT_DYNAMIC,  0 },
+  { STRING_COMMA_LEN (".dynstr"),        0, SHT_STRTAB,   0 },
+  { STRING_COMMA_LEN (".dynsym"),        0, SHT_DYNSYM,   0 },
+  { STRING_COMMA_LEN (".got"),           0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".hash"),          0, SHT_HASH,     0 },
   /* These sections do not need to be writable as the SymbianOS
      postlinker will arrange things so that no dynamic relocation is
      required.  */
-  { ".init_array",    11,  0, SHT_INIT_ARRAY, SHF_ALLOC },
-  { ".fini_array",    11,  0, SHT_FINI_ARRAY, SHF_ALLOC },
-  { ".preinit_array", 14,  0, SHT_PREINIT_ARRAY, SHF_ALLOC },
-  { NULL,              0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".init_array"),    0, SHT_INIT_ARRAY,    SHF_ALLOC },
+  { STRING_COMMA_LEN (".fini_array"),    0, SHT_FINI_ARRAY,    SHF_ALLOC },
+  { STRING_COMMA_LEN (".preinit_array"), 0, SHT_PREINIT_ARRAY, SHF_ALLOC },
+  { NULL,                             0, 0, 0,                 0 }
 };
 
 static void
index 54900d05c750e451dadfdfc3385c605d26b7291f..6ceaeb0e089b2d0c48fcae50bdc4a03e2b07f71f 100644 (file)
@@ -5292,7 +5292,7 @@ bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
 
       strip = FALSE;
 
-       if (strncmp (name, ".rela", 5) == 0)
+       if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size == 0)
            {
@@ -5316,7 +5316,7 @@ bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0)
+      else if (! CONST_STRNEQ (name, ".got"))
        {
          /* It's not one of our sections, so don't allocate space.  */
          continue;
index 4019e34e26b4b21a2e3080772b8cd9250c6ccf74..121b85d814d6d22b71e441fe23b05371ee415688 100644 (file)
@@ -1388,7 +1388,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
@@ -2799,7 +2799,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
              if (name == NULL)
                return FALSE;
 
-             BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+             BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                          && strcmp (bfd_get_section_name (abfd, sec),
                                     name + 5) == 0);
 
@@ -2962,7 +2962,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -2976,7 +2976,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        {
          /* It's not one of our sections, so don't allocate space.  */
index 10a1183ea0571e6afab40ffd1e345d5b67d234aa..07a448c6f40b67ccbe749c9e731b19a5fc5a4f0e 100644 (file)
@@ -2442,7 +2442,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
       else if (sec == htab->sgot
               || sec == htab->sdynbss)
        ;
-      else if (strncmp (bfd_get_section_name (dynobj, sec), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, sec), ".rela"))
        {
          if (sec->size != 0)
            {
index 6a013f8165ff85b73e78dcbaf9b5ebaafdae1bac..3c7c37239aa5d71923a6fb3783b6e053cbe8c2da 100644 (file)
@@ -655,7 +655,7 @@ i370_elf_size_dynamic_sections (bfd *output_bfd,
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -867,7 +867,7 @@ i370_elf_check_relocs (bfd *abfd,
              if (name == NULL)
                return FALSE;
 
-             BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+             BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                          && strcmp (bfd_get_section_name (abfd, sec), name + 5) == 0);
 
              sreloc = bfd_get_section_by_name (dynobj, name);
@@ -1236,7 +1236,7 @@ i370_elf_relocate_section (bfd *output_bfd,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
index 7fb142289ac161307de52fff6311360846e6ea70..88f4de78ede9e422061511123e356f4ebb09fa67 100644 (file)
@@ -1177,7 +1177,7 @@ elf_i386_check_relocs (bfd *abfd,
                  if (name == NULL)
                    return FALSE;
 
-                 if (strncmp (name, ".rel", 4) != 0
+                 if (! CONST_STRNEQ (name, ".rel")
                      || strcmp (bfd_get_section_name (abfd, sec),
                                 name + 4) != 0)
                    {
@@ -2029,7 +2029,7 @@ elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
          if (htab->elf.hplt != NULL)
            strip_section = FALSE;
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rel", 4) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rel"))
        {
          if (s->size != 0 && s != htab->srelplt && s != htab->srelplt2)
            relocs = TRUE;
index 146dcaaecaf42a0d94719340dcc52e6e38da1e34..f51ca07af22c77714b079a9c365cae530aba173a 100644 (file)
@@ -1,5 +1,5 @@
 /* IQ2000-specific support for 32-bit ELF.
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -452,9 +452,9 @@ iq2000_elf_check_relocs (bfd *abfd,
 
        case R_IQ2000_32:
          /* For debug section, change to special harvard-aware relocations.  */
-         if (memcmp (sec->name, ".debug", 6) == 0
-             || memcmp (sec->name, ".stab", 5) == 0
-             || memcmp (sec->name, ".eh_frame", 9) == 0)
+         if (CONST_STRNEQ (sec->name, ".debug")
+             || CONST_STRNEQ (sec->name, ".stab")
+             || CONST_STRNEQ (sec->name, ".eh_frame"))
            {
              ((Elf_Internal_Rela *) rel)->r_info
                = ELF32_R_INFO (ELF32_R_SYM (rel->r_info), R_IQ2000_32_DEBUG);
index 6c42c2f5b60de6a544bab31431f51a5071729c7d..7f4acac1c02ba316bfec4f67d0954ada596a9820 100644 (file)
@@ -2309,7 +2309,7 @@ m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
           /* Strip this section if we don't need it; see the
              comment below.  */
         }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
         {
           if (s->size != 0 && s != htab->srelplt)
             relocs = TRUE;
@@ -2933,7 +2933,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                       if (name == NULL)
                         return FALSE;
 
-                      BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                      BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                                   && strcmp (bfd_get_section_name (input_bfd,
                                                                    input_section),
                                              name + 5) == 0);
@@ -3990,7 +3990,7 @@ m32r_elf_check_relocs (bfd *abfd,
                   if (name == NULL)
                     return FALSE;
 
-                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                  BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                               && strcmp (bfd_get_section_name (abfd, sec),
                                          name + 5) == 0);
 
@@ -4082,9 +4082,9 @@ m32r_elf_check_relocs (bfd *abfd,
 
 static const struct bfd_elf_special_section m32r_elf_special_sections[] =
 {
-  { ".sbss",    5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".sdata",   6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { NULL,       0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { NULL,                     0,  0, 0,            0 }
 };
 
 static bfd_boolean
index d61590ff4861db200992a4f5f2081235ae2ba093..68e55893d634b33bf43e09d27a1b220ba923b203 100644 (file)
@@ -1,5 +1,5 @@
 /* Motorola 68HC11-specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2006
    Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
@@ -1259,11 +1259,11 @@ m68hc11_elf_relax_delete_bytes (bfd *abfd, asection *sec,
      vectors.  */
 static const struct bfd_elf_special_section elf32_m68hc11_special_sections[] =
 {
-  { ".eeprom",   7, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".page0",    6, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".softregs", 9, 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".vectors",  8, 0, SHT_PROGBITS, SHF_ALLOC },
-  { NULL,        0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".eeprom"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".page0"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".softregs"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".vectors"),  0, SHT_PROGBITS, SHF_ALLOC },
+  { NULL,                       0,  0, 0,            0 }
 };
 \f
 #define ELF_ARCH               bfd_arch_m68hc11
index b52f3fff853fa42a6fdf95041405c77968e20778..b98615708f2b40c7ee9c05298faef7dafb73befb 100644 (file)
@@ -1,5 +1,5 @@
 /* Motorola 68HC12-specific support for 32-bit ELF
-   Copyright 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
 
@@ -537,11 +537,11 @@ m68hc12_elf_set_mach_from_flags (bfd *abfd)
      vectors.  */
 static const struct bfd_elf_special_section elf32_m68hc12_special_sections[] =
 {
-  { ".eeprom",   7, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".page0",    6, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".softregs", 9, 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".vectors",  8, 0, SHT_PROGBITS, SHF_ALLOC },
-  { NULL,        0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".eeprom"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".page0"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".softregs"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".vectors"),  0, SHT_PROGBITS, SHF_ALLOC },
+  { NULL,                       0,  0, 0,            0 }
 };
 \f
 #define ELF_ARCH               bfd_arch_m68hc12
index e8bb275f6faef89bee20824fe8bd29bd3cdf7dc3..0cab8d93c7ce604c2b818ca1e4ad98566c0687f9 100644 (file)
@@ -864,7 +864,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -1402,7 +1402,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -1413,7 +1413,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        {
          /* It's not one of our sections, so don't allocate space.  */
index ed0123d553bd5321ee3b7adb0d0de12372a1fed8..e978cdc0051b6f0ad6b4e9df2b750cc4b84d456f 100644 (file)
@@ -1,5 +1,5 @@
 /* Motorola MCore specific support for 32-bit ELF
-   Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -637,9 +637,9 @@ mcore_elf_check_relocs (bfd * abfd,
 
 static const struct bfd_elf_special_section mcore_elf_special_sections[]=
 {
-  { ".ctors",   6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".dtors",   6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { NULL,       0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".ctors"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".dtors"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { NULL,                     0,  0, 0,            0 }
 };
 
 #define TARGET_BIG_SYM         bfd_elf32_mcore_big_vec
index 6e80a1e29c289fad723f880ffbece3403d4d8079..98dc93fcdde2452e4f9a51f331a544ecc6b722cd 100644 (file)
@@ -1896,21 +1896,21 @@ ppc_elf_additional_program_headers (bfd *abfd,
 
 static const struct bfd_elf_special_section ppc_elf_special_sections[] =
 {
-  { ".plt",              4,  0, SHT_NOBITS,   SHF_ALLOC + SHF_EXECINSTR },
-  { ".sbss",             5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".sbss2",            6, -2, SHT_PROGBITS, SHF_ALLOC },
-  { ".sdata",            6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".sdata2",           7, -2, SHT_PROGBITS, SHF_ALLOC },
-  { ".tags",             5,  0, SHT_ORDERED,  SHF_ALLOC },
-  { ".PPC.EMB.apuinfo", 16,  0, SHT_NOTE,     0 },
-  { ".PPC.EMB.sbss0",   14,  0, SHT_PROGBITS, SHF_ALLOC },
-  { ".PPC.EMB.sdata0",  15,  0, SHT_PROGBITS, SHF_ALLOC },
-  { NULL,                0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".plt"),             0, SHT_NOBITS,   SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".sbss"),           -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".sbss2"),          -2, SHT_PROGBITS, SHF_ALLOC },
+  { STRING_COMMA_LEN (".sdata"),          -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".sdata2"),         -2, SHT_PROGBITS, SHF_ALLOC },
+  { STRING_COMMA_LEN (".tags"),            0, SHT_ORDERED,  SHF_ALLOC },
+  { STRING_COMMA_LEN (".PPC.EMB.apuinfo"), 0, SHT_NOTE,     0 },
+  { STRING_COMMA_LEN (".PPC.EMB.sbss0"),   0, SHT_PROGBITS, SHF_ALLOC },
+  { STRING_COMMA_LEN (".PPC.EMB.sdata0"),  0, SHT_PROGBITS, SHF_ALLOC },
+  { NULL,                              0,  0, 0,            0 }
 };
 
 /* This is what we want for new plt/got.  */
 static struct bfd_elf_special_section ppc_alt_plt =
-  { ".plt",              4,  0, SHT_PROGBITS, SHF_ALLOC };
+  { STRING_COMMA_LEN (".plt"),             0, SHT_PROGBITS, SHF_ALLOC };
 
 static const struct bfd_elf_special_section *
 ppc_elf_get_sec_type_attr (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
@@ -3436,7 +3436,7 @@ ppc_elf_check_relocs (bfd *abfd,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -4864,7 +4864,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
        {
          /* Strip these too.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0)
            {
@@ -6242,7 +6242,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
@@ -6445,9 +6445,9 @@ ppc_elf_relocate_section (bfd *output_bfd,
 
            BFD_ASSERT (sec != NULL);
            name = bfd_get_section_name (abfd, sec->output_section);
-           if (! ((strncmp (name, ".sdata", 6) == 0
+           if (! ((CONST_STRNEQ (name, ".sdata")
                    && (name[6] == 0 || name[6] == '.'))
-                  || (strncmp (name, ".sbss", 5) == 0
+                  || (CONST_STRNEQ (name, ".sbss")
                       && (name[5] == 0 || name[5] == '.'))))
              {
                (*_bfd_error_handler)
@@ -6473,8 +6473,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
 
            BFD_ASSERT (sec != NULL);
            name = bfd_get_section_name (abfd, sec->output_section);
-           if (! (strncmp (name, ".sdata2", 7) == 0
-                  || strncmp (name, ".sbss2", 6) == 0))
+           if (! (CONST_STRNEQ (name, ".sdata2")
+                  || CONST_STRNEQ (name, ".sbss2")))
              {
                (*_bfd_error_handler)
                  (_("%B: the target (%s) of a %s relocation is "
@@ -6505,9 +6505,9 @@ ppc_elf_relocate_section (bfd *output_bfd,
 
            BFD_ASSERT (sec != NULL);
            name = bfd_get_section_name (abfd, sec->output_section);
-           if (((strncmp (name, ".sdata", 6) == 0
+           if (((CONST_STRNEQ (name, ".sdata")
                  && (name[6] == 0 || name[6] == '.'))
-                || (strncmp (name, ".sbss", 5) == 0
+                || (CONST_STRNEQ (name, ".sbss")
                     && (name[5] == 0 || name[5] == '.'))))
              {
                reg = 13;
@@ -6517,8 +6517,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
                           + sh->root.u.def.section->output_section->vma);
              }
 
-           else if (strncmp (name, ".sdata2", 7) == 0
-                    || strncmp (name, ".sbss2", 6) == 0)
+           else if (CONST_STRNEQ (name, ".sdata2")
+                    || CONST_STRNEQ (name, ".sbss2"))
              {
                reg = 2;
                sh = htab->sdata[1].sym;
index e2934cff573bb7dfd8b2f93df35ee058947e9c10..7b3c2d3ade6019f13b54b6277291f6fd0cd1b951 100644 (file)
@@ -1273,7 +1273,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  if (name == NULL)
                    return FALSE;
 
-                 if (strncmp (name, ".rela", 5) != 0
+                 if (! CONST_STRNEQ (name, ".rela")
                      || strcmp (bfd_get_section_name (abfd, sec),
                                 name + 5) != 0)
                    {
@@ -2126,7 +2126,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0)
            relocs = TRUE;
index 9ca0564c36c02d92f8d86f638e0f0bffbadbf4b5..7ea9207009fe68dabe683340c107db53b1eaf7f1 100644 (file)
@@ -1,5 +1,5 @@
 /* Renesas / SuperH specific support for Symbian 32-bit ELF files
-   Copyright 2004, 2005
+   Copyright 2004, 2005, 2006
    Free Software Foundation, Inc.
    Contributed by Red Hat
 
@@ -225,7 +225,7 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
          break;
 
        case 'I':
-         if (strncmp (s, DIRECTIVE_IMPORT, strlen (DIRECTIVE_IMPORT)))
+         if (! CONST_STRNEQ (s, DIRECTIVE_IMPORT))
            result = FALSE;
          else
            {
@@ -261,9 +261,9 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
              name_end_char = * new_name_end;
              * new_name_end = 0;
 
-             /* Check to see if 'AS '... is present.  If se we have an IMPORT AS
-                directive, otherwise we have an IMPORT directive.  */
-             if (strncmp (s, DIRECTIVE_AS, strlen (DIRECTIVE_AS)))
+             /* Check to see if 'AS '... is present.  If so we have an
+                IMPORT AS directive, otherwise we have an IMPORT directive.  */
+             if (! CONST_STRNEQ (s, DIRECTIVE_AS))
                {
                  /* Skip the new-line at the end of the name.  */
                  if (SYMBIAN_DEBUG && name_end_char != '\n')
@@ -327,7 +327,7 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
          break;
 
        case 'E':
-         if (strncmp (s, DIRECTIVE_EXPORT, strlen (DIRECTIVE_EXPORT)))
+         if (! CONST_STRNEQ (s, DIRECTIVE_EXPORT))
            result = FALSE;
          else
            {
index a4109016017dc6fef94495440e05a67b648d8355..19ee8b636e5c6a1dfc75e70b7338437013c4a2e2 100644 (file)
@@ -3042,7 +3042,7 @@ sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0 && s != htab->srelplt && s != htab->srelplt2)
            relocs = TRUE;
@@ -3585,7 +3585,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
@@ -4311,7 +4311,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
                if (name == NULL)
                  return FALSE;
 
-               BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+               BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                            && strcmp (bfd_get_section_name (input_bfd,
                                                             input_section),
                                       name + 5) == 0);
@@ -5200,7 +5200,7 @@ sh_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
index 55aa25b7de9082acf32f7d5ec44b62f4d6649ca7..03d5e3e9df125c784c935138ee0ce41a39391ff8 100644 (file)
@@ -759,8 +759,8 @@ sh64_elf_merge_symbol_attribute (struct elf_link_hash_entry *h,
 
 static const struct bfd_elf_special_section sh64_elf_special_sections[] =
 {
-  { ".cranges", 8, 0, SHT_PROGBITS, 0 },
-  { NULL,       0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 },
+  { NULL,                       0, 0, 0,            0 }
 };
 
 #undef TARGET_BIG_SYM
index e3f1240bf580255ad7103aa4a3ba896717986981..1b288e41380332e44ddfa3d60dede2974fee6a6b 100644 (file)
@@ -3028,33 +3028,32 @@ v850_elf_relax_section (bfd *abfd,
 
 static const struct bfd_elf_special_section v850_elf_special_sections[] =
 {
-  { ".call_table_data", 16,  0, SHT_PROGBITS,     (SHF_ALLOC
-                                                   + SHF_WRITE) },
-  { ".call_table_text", 16,  0, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_EXECINSTR) },
-  { ".rosdata",          8, -2, SHT_PROGBITS,     (SHF_ALLOC
-                                                   + SHF_V850_GPREL) },
-  { ".rozdata",          8, -2, SHT_PROGBITS,     (SHF_ALLOC
-                                                   + SHF_V850_R0REL) },
-  { ".sbss",             5, -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_GPREL) },
-  { ".scommon",          8, -2, SHT_V850_SCOMMON, (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_GPREL) },
-  { ".sdata",            6, -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_GPREL) },
-  { ".tbss",             5, -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_EPREL) },
-  { ".tcommon",          8, -2, SHT_V850_TCOMMON, (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_R0REL) },
-  { ".tdata",            6, -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_EPREL) },
-  { ".zbss",             5, -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_R0REL) },
-  { ".zcommon",          8, -2, SHT_V850_ZCOMMON, (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_R0REL) },
-  { ".zdata",            6, -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
-                                                   + SHF_V850_R0REL) },
-  { NULL,        0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".call_table_data"), 0, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE) },
+  { STRING_COMMA_LEN (".call_table_text"), 0, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_EXECINSTR) },
+  { STRING_COMMA_LEN (".rosdata"),        -2, SHT_PROGBITS,     (SHF_ALLOC
+                                                                + SHF_V850_GPREL) },
+  { STRING_COMMA_LEN (".rozdata"),        -2, SHT_PROGBITS,     (SHF_ALLOC
+                                                                + SHF_V850_R0REL) },
+  { STRING_COMMA_LEN (".sbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_GPREL) },
+  { STRING_COMMA_LEN (".scommon"),        -2, SHT_V850_SCOMMON, (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_GPREL) },
+  { STRING_COMMA_LEN (".sdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_GPREL) },
+  { STRING_COMMA_LEN (".tbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_EPREL) },
+  { STRING_COMMA_LEN (".tcommon"),        -2, SHT_V850_TCOMMON, (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_R0REL) },
+  { STRING_COMMA_LEN (".tdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_EPREL) },
+  { STRING_COMMA_LEN (".zbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_R0REL) },
+  { STRING_COMMA_LEN (".zcommon"),        -2, SHT_V850_ZCOMMON, (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_R0REL) },
+  { STRING_COMMA_LEN (".zdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+                                                                + SHF_V850_R0REL) },
+  { NULL,                     0,           0, 0,                0 }
 };
 \f
 #define TARGET_LITTLE_SYM                      bfd_elf32_v850_vec
index bf481e459e75d496cb1902f2e607ec991bffbe64..62735a69f4341f601739cfe751766cfe95781643 100644 (file)
@@ -738,7 +738,7 @@ elf_vax_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -1194,7 +1194,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -1226,7 +1226,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        {
          /* It's not one of our sections, so don't allocate space.  */
@@ -1646,7 +1646,7 @@ elf_vax_relocate_section (bfd *output_bfd,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
index 88365ddd32ac3b54d7c1c832ce91f5a29b2e3e8a..12af7c30e7eaee7bcce0069679a38056e6a8eafa 100644 (file)
@@ -1409,7 +1409,7 @@ elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      if (strncmp (name, ".rela", 5) == 0)
+      if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -1423,8 +1423,8 @@ elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".plt.", 5) != 0
-              && strncmp (name, ".got.plt.", 9) != 0
+      else if (! CONST_STRNEQ (name, ".plt.")
+              && ! CONST_STRNEQ (name, ".got.plt.")
               && strcmp (name, ".got") != 0
               && strcmp (name, ".plt") != 0
               && strcmp (name, ".got.plt") != 0
@@ -8854,10 +8854,8 @@ relax_property_section (bfd *abfd,
     }
 
   is_full_prop_section =
-    ((strncmp (sec->name, XTENSA_PROP_SEC_NAME,
-              sizeof (XTENSA_PROP_SEC_NAME) - 1) == 0)
-     || (strncmp (sec->name, ".gnu.linkonce.prop.",
-                 sizeof ".gnu.linkonce.prop." - 1) == 0));
+    (   CONST_STRNEQ (sec->name, XTENSA_PROP_SEC_NAME)
+     || CONST_STRNEQ (sec->name, ".gnu.linkonce.prop."));
 
   if (internal_relocs)
     {
@@ -9518,23 +9516,19 @@ pcrel_reloc_fits (xtensa_opcode opc,
 
 
 static int linkonce_len = sizeof (".gnu.linkonce.") - 1;
-static int insn_sec_len = sizeof (XTENSA_INSN_SEC_NAME) - 1;
-static int lit_sec_len = sizeof (XTENSA_LIT_SEC_NAME) - 1;
-static int prop_sec_len = sizeof (XTENSA_PROP_SEC_NAME) - 1;
-
 
 static bfd_boolean 
 xtensa_is_property_section (asection *sec)
 {
-  if (strncmp (XTENSA_INSN_SEC_NAME, sec->name, insn_sec_len) == 0
-      || strncmp (XTENSA_LIT_SEC_NAME, sec->name, lit_sec_len) == 0
-      || strncmp (XTENSA_PROP_SEC_NAME, sec->name, prop_sec_len) == 0)
+  if (CONST_STRNEQ (sec->name, XTENSA_INSN_SEC_NAME)
+      || CONST_STRNEQ (sec->name, XTENSA_LIT_SEC_NAME)
+      || CONST_STRNEQ (sec->name, XTENSA_PROP_SEC_NAME))
     return TRUE;
 
   if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0
-      && (strncmp (&sec->name[linkonce_len], "x.", 2) == 0
-         || strncmp (&sec->name[linkonce_len], "p.", 2) == 0
-         || strncmp (&sec->name[linkonce_len], "prop.", 5) == 0))
+      && (CONST_STRNEQ (&sec->name[linkonce_len], "x.")
+         || CONST_STRNEQ (&sec->name[linkonce_len], "p.")
+         || CONST_STRNEQ (&sec->name[linkonce_len], "prop.")))
     return TRUE;
 
   return FALSE;
@@ -9544,7 +9538,7 @@ xtensa_is_property_section (asection *sec)
 static bfd_boolean 
 xtensa_is_littable_section (asection *sec)
 {
-  if (strncmp (XTENSA_LIT_SEC_NAME, sec->name, lit_sec_len) == 0)
+  if (CONST_STRNEQ (sec->name, XTENSA_LIT_SEC_NAME))
     return TRUE;
 
   if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0
@@ -9646,7 +9640,7 @@ xtensa_get_property_section (asection *sec, const char *base_name)
       suffix = sec->name + linkonce_len;
       /* For backward compatibility, replace "t." instead of inserting
          the new linkonce_kind (but not for "prop" sections).  */
-      if (strncmp (suffix, "t.", 2) == 0 && linkonce_kind[1] == '.')
+      if (CONST_STRNEQ (suffix, "t.") && linkonce_kind[1] == '.')
         suffix += 2;
       strcat (prop_sec_name + linkonce_len, suffix);
     }
@@ -9680,10 +9674,8 @@ xtensa_get_property_section (asection *sec, const char *base_name)
 flagword
 xtensa_get_property_predef_flags (asection *sec)
 {
-  if (strncmp (sec->name, XTENSA_INSN_SEC_NAME,
-              sizeof (XTENSA_INSN_SEC_NAME) - 1) == 0
-      || strncmp (sec->name, ".gnu.linkonce.x.",
-                 sizeof ".gnu.linkonce.x." - 1) == 0)
+  if (CONST_STRNEQ (sec->name, XTENSA_INSN_SEC_NAME)
+      || CONST_STRNEQ (sec->name, ".gnu.linkonce.x."))
     return (XTENSA_PROP_INSN
            | XTENSA_PROP_INSN_NO_TRANSFORM
            | XTENSA_PROP_INSN_NO_REORDER);
@@ -9717,7 +9709,7 @@ xtensa_callback_required_dependence (bfd *abfd,
   /* ".plt*" sections have no explicit relocations but they contain L32R
      instructions that reference the corresponding ".got.plt*" sections.  */
   if ((sec->flags & SEC_LINKER_CREATED) != 0
-      && strncmp (sec->name, ".plt", 4) == 0)
+      && CONST_STRNEQ (sec->name, ".plt"))
     {
       asection *sgotplt;
 
@@ -9794,10 +9786,10 @@ xtensa_callback_required_dependence (bfd *abfd,
    module loader so that the literals are not placed after the text.  */
 static const struct bfd_elf_special_section elf_xtensa_special_sections[] =
 {
-  { ".fini.literal", 13, 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { ".init.literal", 13, 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { ".literal",       8, 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { NULL,             0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".fini.literal"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".init.literal"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".literal"),      0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { NULL,                       0,      0, 0,            0 }
 };
 \f
 #ifndef ELF_ARCH
index 0823f5c3eca9a4a4cb9d4f3c2558c5287f87d099..f37a3174d31bd13457f503e0bf086edb36c5a692 100644 (file)
@@ -1901,7 +1901,7 @@ elf64_alpha_check_relocs (bfd *abfd, struct bfd_link_info *info,
              if (rel_sec_name == NULL)
                return FALSE;
 
-             BFD_ASSERT (strncmp (rel_sec_name, ".rela", 5) == 0
+             BFD_ASSERT (CONST_STRNEQ (rel_sec_name, ".rela")
                          && strcmp (bfd_get_section_name (abfd, sec),
                                     rel_sec_name+5) == 0);
            }
@@ -2761,7 +2761,7 @@ elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      if (strncmp (name, ".rela", 5) == 0)
+      if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -2773,7 +2773,7 @@ elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".plt") != 0
               && strcmp (name, ".dynbss") != 0)
        {
@@ -5148,9 +5148,9 @@ elf64_alpha_reloc_type_class (const Elf_Internal_Rela *rela)
 \f
 static const struct bfd_elf_special_section elf64_alpha_special_sections[] =
 {
-  { ".sbss",  5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
-  { ".sdata", 6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
-  { NULL,     0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
+  { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
+  { NULL,                     0,  0, 0,            0 }
 };
 
 /* ECOFF swapping routines.  These are used when dealing with the
index 7fcc94f6b3e1f03f4b8fe784e95ce142090ff926..4ff7e6adf5038dd4c6e20c16cf470af36ae20cc0 100644 (file)
@@ -517,12 +517,12 @@ get_reloc_section (abfd, hppa_info, sec)
   if (srel_name == NULL)
     return FALSE;
 
-  BFD_ASSERT ((strncmp (srel_name, ".rela", 5) == 0
+  BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela")
               && strcmp (bfd_get_section_name (abfd, sec),
-                         srel_name+5) == 0)
-             || (strncmp (srel_name, ".rel", 4) == 0
+                         srel_name + 5) == 0)
+             || (CONST_STRNEQ (srel_name, ".rel")
                  && strcmp (bfd_get_section_name (abfd, sec),
-                            srel_name+4) == 0));
+                            srel_name + 4) == 0));
 
   dynobj = hppa_info->root.dynobj;
   if (!dynobj)
@@ -1713,13 +1713,13 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          plt = s->size != 0;
        }
       else if (strcmp (name, ".opd") == 0
-              || strncmp (name, ".dlt", 4) == 0
+              || CONST_STRNEQ (name, ".dlt")
               || strcmp (name, ".stub") == 0
               || strcmp (name, ".got") == 0)
        {
          /* Strip this section if we don't need it; see the comment below.  */
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -2752,14 +2752,14 @@ elf64_hppa_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index,
 
 static const struct bfd_elf_special_section elf64_hppa_special_sections[] =
 {
-  { ".fini",   5, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".init",   5, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".plt",    4, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { ".dlt",    4, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { ".sdata",  6, 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { ".sbss",   5, 0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { ".tbss",   5, 0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_HP_TLS },
-  { NULL,      0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".fini"),  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".init"),  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".plt"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".dlt"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".sdata"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".sbss"),  0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".tbss"),  0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_HP_TLS },
+  { NULL,                    0,  0, 0,            0 }
 };
 
 /* The hash bucket size is the standard one, namely 4.  */
index d8dfc56c078dc86b632ce681b4b956d01caea85d..881ba38b034277c8e4723ec3d5e6c68d9c87ece6 100644 (file)
@@ -2193,8 +2193,7 @@ mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       (*secp)->flags |= SEC_LINKER_CREATED;
     }
   else if ((*namep)[0] == '_' && (*namep)[1] == '_' && (*namep)[2] == '.'
-          && strncmp (*namep, MMIX_LOC_SECTION_START_SYMBOL_PREFIX,
-                      strlen (MMIX_LOC_SECTION_START_SYMBOL_PREFIX)) == 0)
+          && CONST_STRNEQ (*namep, MMIX_LOC_SECTION_START_SYMBOL_PREFIX))
     {
       /* See if we have another one.  */
       struct bfd_link_hash_entry *h = bfd_link_hash_lookup (info->hash,
index 4fd6bf763191cc25cc622e22ce468c56c3aab738..6917623b02702fcbfa70d3f131f7625523c5b8aa 100644 (file)
@@ -2520,13 +2520,13 @@ ppc64_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
 
 static const struct bfd_elf_special_section ppc64_elf_special_sections[]=
 {
-  { ".plt",     4,  0, SHT_NOBITS,   0 },
-  { ".sbss",    5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { ".sdata",   6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".toc",     4,  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".toc1",    5,  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { ".tocbss",  7,  0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { NULL,       0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".plt"),    0, SHT_NOBITS,   0 },
+  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".toc"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".toc1"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".tocbss"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { NULL,                     0,  0, 0,            0 }
 };
 
 struct _ppc64_elf_section_data
@@ -4575,7 +4575,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
                  || h == &htab->tls_get_addr_fd->elf)
                sec->has_tls_reloc = 1;
              else if (htab->tls_get_addr == NULL
-                      && !strncmp (h->root.root.string, ".__tls_get_addr", 15)
+                      && CONST_STRNEQ (h->root.root.string, ".__tls_get_addr")
                       && (h->root.root.string[15] == 0
                           || h->root.root.string[15] == '@'))
                {
@@ -4583,7 +4583,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
                  sec->has_tls_reloc = 1;
                }
              else if (htab->tls_get_addr_fd == NULL
-                      && !strncmp (h->root.root.string, "__tls_get_addr", 14)
+                      && CONST_STRNEQ (h->root.root.string, "__tls_get_addr")
                       && (h->root.root.string[14] == 0
                           || h->root.root.string[14] == '@'))
                {
@@ -4776,7 +4776,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
                  if (name == NULL)
                    return FALSE;
 
-                 if (strncmp (name, ".rela", 5) != 0
+                 if (! CONST_STRNEQ (name, ".rela")
                      || strcmp (bfd_get_section_name (abfd, sec),
                                 name + 5) != 0)
                    {
@@ -7913,7 +7913,7 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0)
            {
index 72d8432f75abd244748e8db1bfca02d9a65de406..05be62fb26f3461815288fc95b1ab7a20dece344 100644 (file)
@@ -1238,7 +1238,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  if (name == NULL)
                    return FALSE;
 
-                 if (strncmp (name, ".rela", 5) != 0
+                 if (! CONST_STRNEQ (name, ".rela")
                      || strcmp (bfd_get_section_name (abfd, sec),
                                 name + 5) != 0)
                    {
@@ -2098,7 +2098,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0 && s != htab->srelplt)
            relocs = TRUE;
index 4d6d8d5645fac50019b4cadd12aa5fa03899c663..d972fc68bc387450a70bec1371f57ff1b785106e 100644 (file)
@@ -1709,7 +1709,7 @@ sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (input_bfd,
                                                               input_section),
                                         name + 5) == 0);
@@ -2731,7 +2731,7 @@ sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -3591,7 +3591,7 @@ sh64_elf64_size_dynamic_sections (bfd *output_bfd,
          /* Remember whether there is a PLT.  */
          plt = s->size != 0;
        }
-      else if (strncmp (name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (name, ".rela"))
        {
          if (s->size != 0)
            {
@@ -3624,7 +3624,7 @@ sh64_elf64_size_dynamic_sections (bfd *output_bfd,
              s->reloc_count = 0;
            }
        }
-      else if (strncmp (name, ".got", 4) != 0
+      else if (! CONST_STRNEQ (name, ".got")
               && strcmp (name, ".dynbss") != 0)
        {
          /* It's not one of our sections, so don't allocate space.  */
@@ -4070,8 +4070,8 @@ sh64_elf64_merge_symbol_attribute (struct elf_link_hash_entry *h,
 
 static const struct bfd_elf_special_section sh64_elf64_special_sections[]=
 {
-  { ".cranges", 8, 0, SHT_PROGBITS, 0 },
-  { NULL,       0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 },
+  { NULL,                       0, 0, 0,            0 }
 };
 
 #define TARGET_BIG_SYM         bfd_elf64_sh64_vec
index d84b82ea39c486ed296933f22fe83547ddefd103..c2cf6a43f9dcdd3547671486bfced0610d58c551 100644 (file)
@@ -1025,7 +1025,7 @@ elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
                  if (name == NULL)
                    return FALSE;
 
-                 if (strncmp (name, ".rela", 5) != 0
+                 if (! CONST_STRNEQ (name, ".rela")
                      || strcmp (bfd_get_section_name (abfd, sec),
                                 name + 5) != 0)
                    {
@@ -1883,7 +1883,7 @@ elf64_x86_64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
        {
          if (s->size != 0 && s != htab->srelplt)
            relocs = TRUE;
@@ -3636,13 +3636,13 @@ elf64_x86_64_hash_symbol (struct elf_link_hash_entry *h)
 static const struct bfd_elf_special_section 
   elf64_x86_64_special_sections[]=
 {
-  { ".gnu.linkonce.lb",        16, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
-  { ".gnu.linkonce.lr",        16, -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
-  { ".gnu.linkonce.lt",        16, -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR + SHF_X86_64_LARGE},
-  { ".lbss",   5, -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
-  { ".ldata",  6, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
-  { ".lrodata",        8, -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
-  { NULL,      0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".gnu.linkonce.lb"), -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".gnu.linkonce.lr"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".gnu.linkonce.lt"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".lbss"),                   -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".ldata"),          -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".lrodata"),        -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
+  { NULL,                      0,          0, 0,            0 }
 };
 
 #define TARGET_LITTLE_SYM                  bfd_elf64_x86_64_vec
index a1bc864a00d53b594b84c48739a91309603d64e2..9b45578494893503d78635851a22b34b318963d6 100644 (file)
@@ -3204,7 +3204,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
          const char *name;
 
          name = bfd_get_section_name (abfd, s);
-         if (strncmp (name, ".gnu.warning.", sizeof ".gnu.warning." - 1) == 0)
+         if (CONST_STRNEQ (name, ".gnu.warning."))
            {
              char *msg;
              bfd_size_type sz;
@@ -4552,7 +4552,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
          asection *stab;
 
          for (stab = abfd->sections; stab; stab = stab->next)
-           if (strncmp (".stab", stab->name, 5) == 0
+           if (CONST_STRNEQ (stab->name, ".stab")
                && (!stab->name[5] ||
                    (stab->name[5] == '.' && ISDIGIT (stab->name[6])))
                && (stab->flags & SEC_MERGE) == 0
@@ -9694,7 +9694,7 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info)
       for (o = sub->sections; o != NULL; o = o->next)
        if (!o->gc_mark && o->gc_mark_from_eh && (o->flags & SEC_CODE) == 0)
          {
-           if (strncmp (o->name, ".gcc_except_table.", 18) == 0)
+           if (CONST_STRNEQ (o->name, ".gcc_except_table."))
              {
                unsigned long len;
                char *fn_name;
@@ -9704,7 +9704,7 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info)
                fn_name = bfd_malloc (len + 6);
                if (fn_name == NULL)
                  return FALSE;
-               memcpy (fn_name, ".text.", 6);
+               memcpy (fn_name, STRING_COMMA_LEN (".text."));
                memcpy (fn_name + 6, o->name + 18, len);
                fn_text = bfd_get_section_by_name (sub, fn_name);
                free (fn_name);
@@ -10224,7 +10224,7 @@ _bfd_elf_section_already_linked (bfd *abfd, struct bfd_section * sec)
 
   name = bfd_get_section_name (abfd, sec);
 
-  if (strncmp (name, ".gnu.linkonce.", sizeof (".gnu.linkonce.") - 1) == 0
+  if (CONST_STRNEQ (name, ".gnu.linkonce.")
       && (p = strchr (name + sizeof (".gnu.linkonce.") - 1, '.')) != NULL)
     p++;
   else
index 2af3fb452bd256e500c55a564bec70e0f7bdc898..0b6f26a695c72864cb73d08ede21bf68983574fd 100644 (file)
@@ -1424,22 +1424,15 @@ elfNN_ia64_relax_ldxmov (contents, off)
 /* Return TRUE if NAME is an unwind table section name.  */
 
 static inline bfd_boolean
-is_unwind_section_name (abfd, name)
-       bfd *abfd;
-       const char *name;
+is_unwind_section_name (bfd *abfd, const char *name)
 {
-  size_t len1, len2, len3;
-
   if (elfNN_ia64_hpux_vec (abfd->xvec)
       && !strcmp (name, ELF_STRING_ia64_unwind_hdr))
     return FALSE;
 
-  len1 = sizeof (ELF_STRING_ia64_unwind) - 1;
-  len2 = sizeof (ELF_STRING_ia64_unwind_info) - 1;
-  len3 = sizeof (ELF_STRING_ia64_unwind_once) - 1;
-  return ((strncmp (name, ELF_STRING_ia64_unwind, len1) == 0
-          && strncmp (name, ELF_STRING_ia64_unwind_info, len2) != 0)
-         || strncmp (name, ELF_STRING_ia64_unwind_once, len3) == 0);
+  return ((CONST_STRNEQ (name, ELF_STRING_ia64_unwind)
+          && ! CONST_STRNEQ (name, ELF_STRING_ia64_unwind_info))
+         || CONST_STRNEQ (name, ELF_STRING_ia64_unwind_once));
 }
 
 /* Handle an IA-64 specific section when reading an object file.  This
@@ -2621,10 +2614,10 @@ get_reloc_section (abfd, ia64_info, sec, create)
   if (srel_name == NULL)
     return NULL;
 
-  BFD_ASSERT ((strncmp (srel_name, ".rela", 5) == 0
+  BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela")
               && strcmp (bfd_get_section_name (abfd, sec),
                          srel_name+5) == 0)
-             || (strncmp (srel_name, ".rel", 4) == 0
+             || (CONST_STRNEQ (srel_name, ".rel")
                  && strcmp (bfd_get_section_name (abfd, sec),
                             srel_name+4) == 0));
 
@@ -3702,7 +3695,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
 
          if (strcmp (name, ".got.plt") == 0)
            strip = FALSE;
-         else if (strncmp (name, ".rel", 4) == 0)
+         else if (CONST_STRNEQ (name, ".rel"))
            {
              if (!strip)
                {
@@ -5569,9 +5562,9 @@ elfNN_ia64_reloc_type_class (rela)
 
 static const struct bfd_elf_special_section elfNN_ia64_special_sections[] =
 {
-  { ".sbss",  5, -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
-  { ".sdata", 6, -1, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
-  { NULL,        0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".sbss"),  -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+  { STRING_COMMA_LEN (".sdata"), -1, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+  { NULL,                    0,   0, 0,            0 }
 };
 
 static bfd_boolean
@@ -5598,7 +5591,7 @@ elfNN_ia64_object_p (bfd *abfd)
       if (elf_sec_group (sec) == NULL
          && ((sec->flags & (SEC_LINK_ONCE | SEC_CODE | SEC_GROUP))
              == (SEC_LINK_ONCE | SEC_CODE))
-         && strncmp (sec->name, ".gnu.linkonce.t.", 16) == 0)
+         && CONST_STRNEQ (sec->name, ".gnu.linkonce.t."))
        {
          name = sec->name + 16;
 
index cdc81a229d5bf770c1d998a5d4c207e120dd193d..d0116227c7bca186a9d6bef09d0221078124ee38 100644 (file)
@@ -4098,8 +4098,8 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
          sec = NULL;
          for (o = input_bfd->sections; o != NULL; o = o->next)
            {
-             if (strncmp (bfd_get_section_name (input_bfd, o),
-                          CALL_FP_STUB, sizeof CALL_FP_STUB - 1) == 0)
+             if (CONST_STRNEQ (bfd_get_section_name (input_bfd, o),
+                               CALL_FP_STUB))
                {
                  sec = h->call_fp_stub;
                  break;
@@ -4690,9 +4690,9 @@ mips_elf_stub_section_p (bfd *abfd ATTRIBUTE_UNUSED, asection *section)
 {
   const char *name = bfd_get_section_name (abfd, section);
 
-  return (strncmp (name, FN_STUB, sizeof FN_STUB - 1) == 0
-         || strncmp (name, CALL_STUB, sizeof CALL_STUB - 1) == 0
-         || strncmp (name, CALL_FP_STUB, sizeof CALL_FP_STUB - 1) == 0);
+  return (CONST_STRNEQ (name, FN_STUB)
+         || CONST_STRNEQ (name, CALL_STUB)
+         || CONST_STRNEQ (name, CALL_FP_STUB));
 }
 \f
 /* Add room for N relocations to the .rel(a).dyn section in ABFD.  */
@@ -5407,7 +5407,7 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
        return FALSE;
       break;
     case SHT_MIPS_GPTAB:
-      if (strncmp (name, ".gptab.", sizeof ".gptab." - 1) != 0)
+      if (! CONST_STRNEQ (name, ".gptab."))
        return FALSE;
       break;
     case SHT_MIPS_UCODE:
@@ -5430,7 +5430,7 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
        return FALSE;
       break;
     case SHT_MIPS_CONTENT:
-      if (strncmp (name, ".MIPS.content", sizeof ".MIPS.content" - 1) != 0)
+      if (! CONST_STRNEQ (name, ".MIPS.content"))
        return FALSE;
       break;
     case SHT_MIPS_OPTIONS:
@@ -5438,7 +5438,7 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
        return FALSE;
       break;
     case SHT_MIPS_DWARF:
-      if (strncmp (name, ".debug_", sizeof ".debug_" - 1) != 0)
+      if (! CONST_STRNEQ (name, ".debug_"))
        return FALSE;
       break;
     case SHT_MIPS_SYMBOL_LIB:
@@ -5446,9 +5446,8 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
        return FALSE;
       break;
     case SHT_MIPS_EVENTS:
-      if (strncmp (name, ".MIPS.events", sizeof ".MIPS.events" - 1) != 0
-         && strncmp (name, ".MIPS.post_rel",
-                     sizeof ".MIPS.post_rel" - 1) != 0)
+      if (! CONST_STRNEQ (name, ".MIPS.events")
+         && ! CONST_STRNEQ (name, ".MIPS.post_rel"))
        return FALSE;
       break;
     default:
@@ -5568,7 +5567,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
     }
   else if (strcmp (name, ".conflict") == 0)
     hdr->sh_type = SHT_MIPS_CONFLICT;
-  else if (strncmp (name, ".gptab.", sizeof ".gptab." - 1) == 0)
+  else if (CONST_STRNEQ (name, ".gptab."))
     {
       hdr->sh_type = SHT_MIPS_GPTAB;
       hdr->sh_entsize = sizeof (Elf32_External_gptab);
@@ -5625,7 +5624,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
       hdr->sh_type = SHT_MIPS_IFACE;
       hdr->sh_flags |= SHF_MIPS_NOSTRIP;
     }
-  else if (strncmp (name, ".MIPS.content", strlen (".MIPS.content")) == 0)
+  else if (CONST_STRNEQ (name, ".MIPS.content"))
     {
       hdr->sh_type = SHT_MIPS_CONTENT;
       hdr->sh_flags |= SHF_MIPS_NOSTRIP;
@@ -5637,7 +5636,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
       hdr->sh_entsize = 1;
       hdr->sh_flags |= SHF_MIPS_NOSTRIP;
     }
-  else if (strncmp (name, ".debug_", sizeof ".debug_" - 1) == 0)
+  else if (CONST_STRNEQ (name, ".debug_"))
     hdr->sh_type = SHT_MIPS_DWARF;
   else if (strcmp (name, ".MIPS.symlib") == 0)
     {
@@ -5645,9 +5644,8 @@ _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
       /* The sh_link and sh_info fields are set in
          final_write_processing.  */
     }
-  else if (strncmp (name, ".MIPS.events", sizeof ".MIPS.events" - 1) == 0
-          || strncmp (name, ".MIPS.post_rel",
-                      sizeof ".MIPS.post_rel" - 1) == 0)
+  else if (CONST_STRNEQ (name, ".MIPS.events")
+          || CONST_STRNEQ (name, ".MIPS.post_rel"))
     {
       hdr->sh_type = SHT_MIPS_EVENTS;
       hdr->sh_flags |= SHF_MIPS_NOSTRIP;
@@ -6118,7 +6116,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
   /* Check for the mips16 stub sections.  */
 
   name = bfd_get_section_name (abfd, sec);
-  if (strncmp (name, FN_STUB, sizeof FN_STUB - 1) == 0)
+  if (CONST_STRNEQ (name, FN_STUB))
     {
       unsigned long r_symndx;
 
@@ -6143,12 +6141,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
              /* We can ignore stub sections when looking for relocs.  */
              if ((o->flags & SEC_RELOC) == 0
                  || o->reloc_count == 0
-                 || strncmp (bfd_get_section_name (abfd, o), FN_STUB,
-                             sizeof FN_STUB - 1) == 0
-                 || strncmp (bfd_get_section_name (abfd, o), CALL_STUB,
-                             sizeof CALL_STUB - 1) == 0
-                 || strncmp (bfd_get_section_name (abfd, o), CALL_FP_STUB,
-                             sizeof CALL_FP_STUB - 1) == 0)
+                 || CONST_STRNEQ (bfd_get_section_name (abfd, o), FN_STUB)
+                 || CONST_STRNEQ (bfd_get_section_name (abfd, o), CALL_STUB)
+                 || CONST_STRNEQ (bfd_get_section_name (abfd, o), CALL_FP_STUB))
                continue;
 
              sec_relocs
@@ -6224,8 +6219,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
          mips_elf_hash_table (info)->mips16_stubs_seen = TRUE;
        }
     }
-  else if (strncmp (name, CALL_STUB, sizeof CALL_STUB - 1) == 0
-          || strncmp (name, CALL_FP_STUB, sizeof CALL_FP_STUB - 1) == 0)
+  else if (CONST_STRNEQ (name, CALL_STUB)
+          || CONST_STRNEQ (name, CALL_FP_STUB))
     {
       unsigned long r_symndx;
       struct mips_elf_link_hash_entry *h;
@@ -6254,7 +6249,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 
       /* H is the symbol this stub is for.  */
 
-      if (strncmp (name, CALL_FP_STUB, sizeof CALL_FP_STUB - 1) == 0)
+      if (CONST_STRNEQ (name, CALL_FP_STUB))
        loc = &h->call_fp_stub;
       else
        loc = &h->call_stub;
@@ -6639,12 +6634,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
          References from a stub section do not count.  */
       if (h != NULL
          && r_type != R_MIPS16_26
-         && strncmp (bfd_get_section_name (abfd, sec), FN_STUB,
-                     sizeof FN_STUB - 1) != 0
-         && strncmp (bfd_get_section_name (abfd, sec), CALL_STUB,
-                     sizeof CALL_STUB - 1) != 0
-         && strncmp (bfd_get_section_name (abfd, sec), CALL_FP_STUB,
-                     sizeof CALL_FP_STUB - 1) != 0)
+         && ! CONST_STRNEQ (bfd_get_section_name (abfd, sec), FN_STUB)
+         && ! CONST_STRNEQ (bfd_get_section_name (abfd, sec), CALL_STUB)
+         && ! CONST_STRNEQ (bfd_get_section_name (abfd, sec), CALL_FP_STUB))
        {
          struct mips_elf_link_hash_entry *mh;
 
@@ -7292,7 +7284,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
 
-      if (strncmp (name, ".rel", 4) == 0)
+      if (CONST_STRNEQ (name, ".rel"))
        {
          if (s->size != 0)
            {
@@ -7344,7 +7336,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
              mips_elf_allocate_dynamic_relocations (dynobj, info, count);
            }
        }
-      else if (!htab->is_vxworks && strncmp (name, ".got", 4) == 0)
+      else if (!htab->is_vxworks && CONST_STRNEQ (name, ".got"))
        {
          /* _bfd_mips_elf_always_size_sections() has already done
             most of the work, but some symbols may have been mapped
@@ -7420,16 +7412,16 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
        }
       else if (! info->shared
               && ! mips_elf_hash_table (info)->use_rld_obj_head
-              && strncmp (name, ".rld_map", 8) == 0)
+              && CONST_STRNEQ (name, ".rld_map"))
        {
          /* We add a room for __rld_map.  It will be filled in by the
             rtld to contain a pointer to the _r_debug structure.  */
          s->size += 4;
        }
       else if (SGI_COMPAT (output_bfd)
-              && strncmp (name, ".compact_rel", 12) == 0)
+              && CONST_STRNEQ (name, ".compact_rel"))
        s->size += mips_elf_hash_table (info)->compact_rel_size;
-      else if (strncmp (name, ".init", 5) != 0
+      else if (! CONST_STRNEQ (name, ".init")
               && s != htab->sgotplt
               && s != htab->splt)
        {
@@ -9089,7 +9081,7 @@ _bfd_mips_elf_final_write_processing (bfd *abfd,
          BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
          name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
          BFD_ASSERT (name != NULL
-                     && strncmp (name, ".gptab.", sizeof ".gptab." - 1) == 0);
+                     && CONST_STRNEQ (name, ".gptab."));
          sec = bfd_get_section_by_name (abfd, name + sizeof ".gptab" - 1);
          BFD_ASSERT (sec != NULL);
          (*hdrpp)->sh_info = elf_section_data (sec)->this_idx;
@@ -9099,8 +9091,7 @@ _bfd_mips_elf_final_write_processing (bfd *abfd,
          BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
          name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
          BFD_ASSERT (name != NULL
-                     && strncmp (name, ".MIPS.content",
-                                 sizeof ".MIPS.content" - 1) == 0);
+                     && CONST_STRNEQ (name, ".MIPS.content"));
          sec = bfd_get_section_by_name (abfd,
                                         name + sizeof ".MIPS.content" - 1);
          BFD_ASSERT (sec != NULL);
@@ -9120,13 +9111,12 @@ _bfd_mips_elf_final_write_processing (bfd *abfd,
          BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
          name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
          BFD_ASSERT (name != NULL);
-         if (strncmp (name, ".MIPS.events", sizeof ".MIPS.events" - 1) == 0)
+         if (CONST_STRNEQ (name, ".MIPS.events"))
            sec = bfd_get_section_by_name (abfd,
                                           name + sizeof ".MIPS.events" - 1);
          else
            {
-             BFD_ASSERT (strncmp (name, ".MIPS.post_rel",
-                                  sizeof ".MIPS.post_rel" - 1) == 0);
+             BFD_ASSERT (CONST_STRNEQ (name, ".MIPS.post_rel"));
              sec = bfd_get_section_by_name (abfd,
                                             (name
                                              + sizeof ".MIPS.post_rel" - 1));
@@ -10435,7 +10425,7 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info)
          mdebug_sec = o;
        }
 
-      if (strncmp (o->name, ".gptab.", sizeof ".gptab." - 1) == 0)
+      if (CONST_STRNEQ (o->name, ".gptab."))
        {
          const char *subname;
          unsigned int c;
@@ -11106,13 +11096,13 @@ _bfd_mips_elf_print_private_bfd_data (bfd *abfd, void *ptr)
 
 const struct bfd_elf_special_section _bfd_mips_elf_special_sections[] =
 {
-  { ".lit4",   5,  0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
-  { ".lit8",   5,  0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
-  { ".mdebug", 7,  0, SHT_MIPS_DEBUG, 0 },
-  { ".sbss",   5, -2, SHT_NOBITS,     SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
-  { ".sdata",  6, -2, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
-  { ".ucode",  6,  0, SHT_MIPS_UCODE, 0 },
-  { NULL,      0,  0, 0,              0 }
+  { STRING_COMMA_LEN (".lit4"),   0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".lit8"),   0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".mdebug"), 0, SHT_MIPS_DEBUG, 0 },
+  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,     SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".ucode"),  0, SHT_MIPS_UCODE, 0 },
+  { NULL,                     0,  0, 0,              0 }
 };
 
 /* Merge non visibility st_other attributes.  Ensure that the
index 6da70a32f86861429f42f063377f5adb83c5904a..63eed174aa26632e79bb9c7cda39294212f4c656 100644 (file)
@@ -1430,7 +1430,7 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
                  if (name == NULL)
                    return FALSE;
 
-                 BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+                 BFD_ASSERT (CONST_STRNEQ (name, ".rela")
                              && strcmp (bfd_get_section_name (abfd, sec),
                                         name + 5) == 0);
 
@@ -2290,7 +2290,7 @@ _bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd,
          /* Strip this section if we don't need it; see the
             comment below.  */
        }
-      else if (strncmp (s->name, ".rela", 5) == 0)
+      else if (CONST_STRNEQ (s->name, ".rela"))
        {
          if (s->size != 0)
            {
index b3c070c5e29bb7c297d7a0572daf8e8444e12b24..e8a5e31b1ecc899cd17e561f567f33a97f86c6be 100644 (file)
@@ -144,7 +144,7 @@ thread_section_p (bfd *abfd ATTRIBUTE_UNUSED,
                   asection *sect,
                   void *obj ATTRIBUTE_UNUSED)
 {
-  return (strncmp (sect->name, ".reg/", 5) == 0);
+  return CONST_STRNEQ (sect->name, ".reg/");
 }
 
 /* this function builds a bfd target if the file is a corefile.
index 519c40e1766070855314ea3744af49e0604ce8bb..99d1c06c5bea1166d524f89c034dff9e09380ca0 100644 (file)
@@ -93,8 +93,7 @@ i386linux_write_object_contents (abfd)
 #define        GOT_REF_PREFIX  "__GOT_"
 #endif
 
-#define IS_GOT_SYM(name) \
-  (strncmp (name, GOT_REF_PREFIX, sizeof GOT_REF_PREFIX - 1) == 0)
+#define IS_GOT_SYM(name)   (CONST_STRNEQ (name, GOT_REF_PREFIX))
 
 /* See if a symbol name is a reference to the procedure linkage table.  */
 
@@ -102,8 +101,7 @@ i386linux_write_object_contents (abfd)
 #define        PLT_REF_PREFIX  "__PLT_"
 #endif
 
-#define IS_PLT_SYM(name) \
-  (strncmp (name, PLT_REF_PREFIX, sizeof PLT_REF_PREFIX - 1) == 0)
+#define IS_PLT_SYM(name)  (CONST_STRNEQ (name, PLT_REF_PREFIX))
 
 /* This string is used to generate specialized error messages.  */
 
@@ -441,8 +439,7 @@ linux_tally_symbols (h, data)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.root.type == bfd_link_hash_undefined
-      && strncmp (h->root.root.root.string, NEEDS_SHRLIB,
-                 sizeof NEEDS_SHRLIB - 1) == 0)
+      && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB))
     {
       const char *name;
       char *p;
index f8d4e8002351e34acc1fe0d96cf40d8b5d730a38..0d60ad1e19c7510817afc3781b637abbd0b3a7fc 100644 (file)
@@ -1875,8 +1875,8 @@ ieee_object_p (bfd *abfd)
            family[9] = '\0';
          }
       }
-    else if ((strncmp (processor, "cpu32", 5) == 0) /* CPU32 and CPU32+ */
-            || (strncmp (processor, "CPU32", 5) == 0))
+    else if ((CONST_STRNEQ (processor, "cpu32")) /* CPU32 and CPU32+  */
+            || (CONST_STRNEQ (processor, "CPU32")))
       strcpy (family, "68332");
     else
       {
index f0f6580fe4ba33da11829d72f03806fe65a2c517..b01e222ede9986110ef66c4698bf8f928eb11eeb 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for the generic parts of PE/PEI; common header information.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
    Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
 #endif /* !COFF_WITH_pep */
 
 /* Macro: Returns true if the bfd is a PE executable as opposed to a PE object file.  */
-#define bfd_pe_executable_p(abfd) \
-  (strncmp ((abfd)->xvec->name, "pei-", 4) == 0                \
-   || strncmp ((abfd)->xvec->name, "efi-app-", 8) == 0)
+#define bfd_pe_executable_p(abfd)                      \
+  (CONST_STRNEQ ((abfd)->xvec->name, "pei-")           \
+   || CONST_STRNEQ ((abfd)->xvec->name, "efi-app-"))
 
 /* These functions are architecture dependent, and are in peicode.h:
    coff_swap_reloc_in
index 14eeae4df0c858d63dcdd4f299951fb39ad2775b..ea14d7645d4513d2c67bdba79db330b42eb4e61e 100644 (file)
@@ -562,11 +562,11 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
 
 #undef WRAP
 
-#undef REAL
+#undef  REAL
 #define REAL "__real_"
 
       if (*l == '_'
-         && strncmp (l, REAL, sizeof REAL - 1) == 0
+         && CONST_STRNEQ (l, REAL)
          && bfd_hash_lookup (info->wrap_hash, l + sizeof REAL - 1,
                              FALSE, FALSE) != NULL)
        {
@@ -1659,8 +1659,7 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
                s = name + 1;
                while (*s == '_')
                  ++s;
-               if (s[0] == 'G'
-                   && strncmp (s, CONS_PREFIX, CONS_PREFIX_LEN - 1) == 0)
+               if (s[0] == 'G' && CONST_STRNEQ (s, CONS_PREFIX))
                  {
                    char c;
 
index 03f8eaac0f0a93ba80c4fa4d0a491eb50234fe61..f2295d12204e65bdd48b7d4ea4f580bf633ca90a 100644 (file)
@@ -94,8 +94,7 @@ m68klinux_write_object_contents (abfd)
 #define        GOT_REF_PREFIX  "__GOT_"
 #endif
 
-#define IS_GOT_SYM(name) \
-  (strncmp (name, GOT_REF_PREFIX, sizeof GOT_REF_PREFIX - 1) == 0)
+#define IS_GOT_SYM(name)  (CONST_STRNEQ (name, GOT_REF_PREFIX))
 
 /* See if a symbol name is a reference to the procedure linkage table.  */
 
@@ -103,8 +102,7 @@ m68klinux_write_object_contents (abfd)
 #define        PLT_REF_PREFIX  "__PLT_"
 #endif
 
-#define IS_PLT_SYM(name) \
-  (strncmp (name, PLT_REF_PREFIX, sizeof PLT_REF_PREFIX - 1) == 0)
+#define IS_PLT_SYM(name)  (CONST_STRNEQ (name, PLT_REF_PREFIX))
 
 /* This string is used to generate specialized error messages.  */
 
@@ -445,8 +443,7 @@ linux_tally_symbols (h, data)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.root.type == bfd_link_hash_undefined
-      && strncmp (h->root.root.root.string, NEEDS_SHRLIB,
-                 sizeof NEEDS_SHRLIB - 1) == 0)
+      && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB))
     {
       const char *name;
       char *p;
index 9ee539baece3fa975fe39a99b9c8817ba8f5ff22..077e3a8b8a0c120518ec2e41b6a444d9fa77e2c1 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -2421,10 +2421,10 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
     }
-  else if (strncmp (sec->name, MMIX_OTHER_SPEC_SECTION_PREFIX,
-                   strlen (MMIX_OTHER_SPEC_SECTION_PREFIX)) == 0)
+  else if (CONST_STRNEQ (sec->name, MMIX_OTHER_SPEC_SECTION_PREFIX))
     {
       int n = atoi (sec->name + strlen (MMIX_OTHER_SPEC_SECTION_PREFIX));
+
       mmo_write_tetra_raw (abfd, (LOP << 24) | (LOP_SPEC << 16) | n);
       return (! abfd->tdata.mmo_data->have_error
              && mmo_write_chunk_list (abfd, mmo_section_data (sec)->head));
index a7d3985c6a7c86af12f5283fb53f8d783f5a740e..30e6f47b3573c0002344f946e59db468b7b0228c 100644 (file)
@@ -174,7 +174,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
        return FALSE;
       if (bfd_seek (abfd, position, SEEK_SET) != 0)
        return FALSE;
-      if (strncmp (tempstr, "VeRsIoN#", 8) == 0)
+      if (CONST_STRNEQ (tempstr, "VeRsIoN#"))
        {
          Nlm_External_Version_Header thdr;
 
@@ -196,7 +196,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
          nlm_version_header (abfd)->day =
            get_word (abfd, (bfd_byte *) thdr.day);
        }
-      else if (strncmp (tempstr, "MeSsAgEs", 8) == 0)
+      else if (CONST_STRNEQ (tempstr, "MeSsAgEs"))
        {
          Nlm_External_Extended_Header thdr;
 
@@ -264,7 +264,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
          nlm_extended_header (abfd)->reserved5 =
            get_word (abfd, (bfd_byte *) thdr.reserved5);
        }
-      else if (strncmp (tempstr, "CoPyRiGhT=", 10) == 0)
+      else if (CONST_STRNEQ (tempstr, "CoPyRiGhT="))
        {
          amt = sizeof (nlm_copyright_header (abfd)->stamp);
          if (bfd_bread ((void *) nlm_copyright_header (abfd)->stamp,
@@ -280,7 +280,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
                        amt, abfd) != amt)
            return FALSE;
        }
-      else if (strncmp (tempstr, "CuStHeAd", 8) == 0)
+      else if (CONST_STRNEQ (tempstr, "CuStHeAd"))
        {
          Nlm_External_Custom_Header thdr;
          bfd_size_type hdrLength;
@@ -345,7 +345,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
          /* If we have found a Cygnus header, process it.  Otherwise,
             just save the associated data without trying to interpret
             it.  */
-         if (strncmp (dataStamp, "CyGnUsEx", 8) == 0)
+         if (CONST_STRNEQ (dataStamp, "CyGnUsEx"))
            {
              file_ptr pos;
              bfd_byte *contents;
@@ -364,7 +364,7 @@ nlm_swap_auxiliary_headers_in (bfd *abfd)
              if (bfd_seek (abfd, pos, SEEK_SET) != 0)
                return FALSE;
 
-             memcpy (nlm_cygnus_ext_header (abfd), "CyGnUsEx", 8);
+             memcpy (nlm_cygnus_ext_header (abfd), STRING_COMMA_LEN ("CyGnUsEx"));
              nlm_cygnus_ext_header (abfd)->offset = dataOffset;
              nlm_cygnus_ext_header (abfd)->length = dataLength;
 
@@ -645,7 +645,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Version_Header thdr;
 
-      memcpy (thdr.stamp, "VeRsIoN#", 8);
+      memcpy (thdr.stamp, STRING_COMMA_LEN ("VeRsIoN#"));
       put_word (abfd, (bfd_vma) nlm_version_header (abfd)->majorVersion,
                (bfd_byte *) thdr.majorVersion);
       put_word (abfd, (bfd_vma) nlm_version_header (abfd)->minorVersion,
@@ -672,7 +672,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Copyright_Header thdr;
 
-      memcpy (thdr.stamp, "CoPyRiGhT=", 10);
+      memcpy (thdr.stamp, STRING_COMMA_LEN ("CoPyRiGhT="));
       amt = sizeof (thdr.stamp);
       if (bfd_bwrite ((void *) thdr.stamp, amt, abfd) != amt)
        return FALSE;
@@ -694,7 +694,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Extended_Header thdr;
 
-      memcpy (thdr.stamp, "MeSsAgEs", 8);
+      memcpy (thdr.stamp, STRING_COMMA_LEN ("MeSsAgEs"));
       put_word (abfd,
                (bfd_vma) nlm_extended_header (abfd)->languageID,
                (bfd_byte *) thdr.languageID);
@@ -797,7 +797,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
 
       ds = find_nonzero (nlm_custom_header (abfd)->dataStamp,
                         sizeof (nlm_custom_header (abfd)->dataStamp));
-      memcpy (thdr.stamp, "CuStHeAd", 8);
+      memcpy (thdr.stamp, STRING_COMMA_LEN ("CuStHeAd"));
       hdrLength = (2 * NLM_TARGET_LONG_SIZE + (ds ? 8 : 0)
                   + nlm_custom_header (abfd)->hdrLength);
       put_word (abfd, hdrLength, thdr.length);
@@ -831,14 +831,14 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Custom_Header thdr;
 
-      memcpy (thdr.stamp, "CuStHeAd", 8);
+      memcpy (thdr.stamp, STRING_COMMA_LEN ("CuStHeAd"));
       put_word (abfd, (bfd_vma) 2 * NLM_TARGET_LONG_SIZE + 8,
                (bfd_byte *) thdr.length);
       put_word (abfd, (bfd_vma) nlm_cygnus_ext_header (abfd)->offset,
                (bfd_byte *) thdr.dataOffset);
       put_word (abfd, (bfd_vma) nlm_cygnus_ext_header (abfd)->length,
                (bfd_byte *) thdr.dataLength);
-      memcpy (thdr.dataStamp, "CyGnUsEx", 8);
+      memcpy (thdr.dataStamp, STRING_COMMA_LEN ("CyGnUsEx"));
       amt = sizeof (thdr);
       if (bfd_bwrite ((void *) &thdr, amt, abfd) != amt)
        return FALSE;
index 1d3802bf82f3055a239183ebd3b5aad1f12f9178..9bba6e78ddd96785ad0117f1e324be4944d05ae8 100644 (file)
@@ -94,7 +94,7 @@ osf_core_core_file_p (abfd)
   if (val != sizeof core_header)
     return NULL;
 
-  if (strncmp (core_header.magic, "Core", 4) != 0)
+  if (! CONST_STRNEQ (core_header.magic, "Core"))
     return NULL;
 
   core_hdr (abfd) = (struct osf_core_struct *)
index 63e557acaa5cd4c8d43aae70ef2253df20f4bd6b..23715f44c2df7a736240d89e6f04afd75cda0ce5 100644 (file)
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -209,7 +209,7 @@ bfd_pef_print_symbol (bfd *abfd,
     default:
       bfd_print_symbol_vandf (abfd, (void *) file, symbol);
       fprintf (file, " %-5s %s", symbol->section->name, symbol->name);
-      if (strncmp (symbol->name, "__traceback_", strlen ("__traceback_")) == 0)
+      if (CONST_STRNEQ (symbol->name, "__traceback_"))
        {
          unsigned char *buf = alloca (symbol->udata.i);
          size_t offset = symbol->value + 4;
index ead05f94746e27d0a5997a9e1c93a1bc5a1f049e..4d00d49a3230d81923dc7752bf2bf86222f425e0 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -4374,12 +4374,12 @@ som_slurp_symbol_table (bfd *abfd)
          && sym->symbol.name[strlen (sym->symbol.name) - 1] == '$'
          && !strcmp (sym->symbol.name, sym->symbol.section->name))
        sym->symbol.flags |= BSF_SECTION_SYM;
-      else if (!strncmp (sym->symbol.name, "L$0\002", 4))
+      else if (CONST_STRNEQ (sym->symbol.name, "L$0\002"))
        {
          sym->symbol.flags |= BSF_SECTION_SYM;
          sym->symbol.name = sym->symbol.section->name;
        }
-      else if (!strncmp (sym->symbol.name, "L$0\001", 4))
+      else if (CONST_STRNEQ (sym->symbol.name, "L$0\001"))
        sym->symbol.flags |= BSF_DEBUGGING;
 
       /* Note increment at bottom of loop, since we skip some symbols
@@ -5653,7 +5653,7 @@ som_slurp_armap (bfd *abfd)
     return FALSE;
 
   /* For archives without .o files there is no symbol table.  */
-  if (strncmp (nextname, "/               ", 16))
+  if (! CONST_STRNEQ (nextname, "/               "))
     {
       bfd_has_map (abfd) = FALSE;
       return TRUE;
index 6b534e3a4d3b36415e3d8e4cbdb987f8be68383f..243e85028d0389e78d5fad345d97027e7fa415d0 100644 (file)
@@ -2,22 +2,22 @@
    Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
    2003, 2004, 2006 Free Software Foundation, Inc.
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
 
 #define TARGET_PAGE_SIZE       4096
 #define ZMAGIC_DISK_BLOCK_SIZE 1024
@@ -94,8 +94,7 @@ sparclinux_write_object_contents (abfd)
 #define GOT_REF_PREFIX  "__GOT_"
 #endif
 
-#define IS_GOT_SYM(name) \
-  (strncmp (name, GOT_REF_PREFIX, sizeof GOT_REF_PREFIX - 1) == 0)
+#define IS_GOT_SYM(name)  (CONST_STRNEQ (name, GOT_REF_PREFIX))
 
 /* See if a symbol name is a reference to the procedure linkage table.  */
 
@@ -103,8 +102,7 @@ sparclinux_write_object_contents (abfd)
 #define PLT_REF_PREFIX  "__PLT_"
 #endif
 
-#define IS_PLT_SYM(name) \
-  (strncmp (name, PLT_REF_PREFIX, sizeof PLT_REF_PREFIX - 1) == 0)
+#define IS_PLT_SYM(name)  (CONST_STRNEQ (name, PLT_REF_PREFIX))
 
 /* This string is used to generate specialized error messages.  */
 
@@ -428,9 +426,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
    This function is called via linux_link_hash_traverse.  */
 
 static bfd_boolean
-linux_tally_symbols (h, data)
-     struct linux_link_hash_entry *h;
-     PTR data;
+linux_tally_symbols (struct linux_link_hash_entry *h, void * data)
 {
   struct bfd_link_info *info = (struct bfd_link_info *) data;
   struct fixup *f, *f1;
@@ -442,8 +438,7 @@ linux_tally_symbols (h, data)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.root.type == bfd_link_hash_undefined
-      && strncmp (h->root.root.root.string, NEEDS_SHRLIB,
-                 sizeof NEEDS_SHRLIB - 1) == 0)
+      && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB))
     {
       const char *name;
       char *p;
index 24a0aec1a0c50b9ccc979b67b36512e12e17535a..67c22b300d13ee4f56c2df92b367ad8fff97d733 100644 (file)
@@ -1,6 +1,6 @@
 /* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
    EVAX (openVMS/Alpha) files.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
    Free Software Foundation, Inc.
 
    HDR record handling functions
@@ -248,7 +248,7 @@ _bfd_vms_write_hdr (bfd *abfd, int objtype)
 
   /* LMN.  */
   _bfd_vms_output_begin (abfd, EOBJ_S_C_EMH, EMH_S_C_LNM);
-  _bfd_vms_output_dump (abfd, (unsigned char *)"GAS proGIS", 10);
+  _bfd_vms_output_dump (abfd, (unsigned char *) STRING_COMMA_LEN ("GAS proGIS"));
   _bfd_vms_output_flush (abfd);
 
   /* SRC.  */
@@ -260,7 +260,7 @@ _bfd_vms_write_hdr (bfd *abfd, int objtype)
 
       if (symbol->flags & BSF_FILE)
        {
-         if (strncmp ((char *)symbol->name, "<CASE:", 6) == 0)
+         if (CONST_STRNEQ ((char *)symbol->name, "<CASE:"))
            {
              PRIV (flag_hash_long_names) = symbol->name[6] - '0';
              PRIV (flag_show_after_trunc) = symbol->name[7] - '0';
@@ -280,13 +280,13 @@ _bfd_vms_write_hdr (bfd *abfd, int objtype)
     }
 
   if (symnum == abfd->symcount)
-    _bfd_vms_output_dump (abfd, (unsigned char *)"noname", 6);
+    _bfd_vms_output_dump (abfd, (unsigned char *) STRING_COMMA_LEN ("noname"));
 
   _bfd_vms_output_flush (abfd);
 
   /* TTL.  */
   _bfd_vms_output_begin (abfd, EOBJ_S_C_EMH, EMH_S_C_TTL);
-  _bfd_vms_output_dump (abfd, (unsigned char *)"TTL", 3);
+  _bfd_vms_output_dump (abfd, (unsigned char *) STRING_COMMA_LEN ("TTL"));
   _bfd_vms_output_flush (abfd);
 
   /* CPR.  */
index 90c6fe9c24992d437160b0992fbbbff1da4cf15d..23f0a81c2b4d391301c0b717860263048daceabe 100644 (file)
@@ -1,3 +1,19 @@
+2006-09-16  Nick Clifton  <nickc@redhat.com>
+           Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * ar.c: Make use of new STRING_COMMA_LEN and CONST_STRNEQ
+       macros defined in bfd.h.
+       * dlltool.c: Likewise.
+       * emul_aix.c: Likewise.
+       * nlmconv.c: Likewise.
+       * objdump.c: Likewise.
+       * prdbg.c: Likewise.
+       * stabs.c: Likewise.
+       * readelf.c (const_strneq): New macro.
+       (process_section_headers, slurp_ia64_unwind_table,
+       slurp_hppa_unwind_table, display_debug_section, process_notes,
+       process_archive): Use the new macro.
+
 2006-09-14  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutils/3181
index 243144894b4a71b15b944d74c542dc3651678e4d..9675caf3b2f3d53735ce5c625a32dc990cb30a49 100644 (file)
@@ -430,7 +430,7 @@ main (int argc, char **argv)
        usage (0);
       if (strcmp (argv[1], "-V") == 0
          || strcmp (argv[1], "-v") == 0
-         || strncmp (argv[1], "--v", 3) == 0)
+         || CONST_STRNEQ (argv[1], "--v"))
        print_version ("ranlib");
       arg_index = 1;
       if (strcmp (argv[1], "-t") == 0)
index 8cf972e318f286582067c5aea56f668cfda465d2..b09c94ebb37286e3747c501694ed07ff86e5341b 100644 (file)
@@ -1248,7 +1248,7 @@ scan_drectve_symbols (bfd *abfd)
   while (p < e)
     {
       if (p[0] == '-'
-         && strncmp (p, "-export:", 8) == 0)
+         && CONST_STRNEQ (p, "-export:"))
        {
          char * name;
          char * c;
@@ -1266,7 +1266,7 @@ scan_drectve_symbols (bfd *abfd)
              char *tag_start = ++p;
              while (p < e && *p != ' ' && *p != '-')
                p++;
-             if (strncmp (tag_start, "data", 4) == 0)
+             if (CONST_STRNEQ (tag_start, "data"))
                flags &= ~BSF_FUNCTION;
            }
 
index 8161a86822bb16f6d7de8ca590a74e20d6ff96f6..97677bc36d29f668b72900e9b3b8dbcaa5a94ba9 100644 (file)
@@ -1,5 +1,5 @@
 /* Binutils emulation layer.
-   Copyright 2002, 2003 Free Software Foundation, Inc.
+   Copyright 2002, 2003, 2006 Free Software Foundation, Inc.
    Written by Tom Rix, Red Hat Inc.
 
    This file is part of GNU Binutils.
@@ -126,25 +126,25 @@ ar_emul_aix5_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
 static bfd_boolean
 ar_emul_aix_parse_arg (char *arg)
 {
-  if (strncmp (arg, "-X32_64", 6) == 0)
+  if (CONST_STRNEQ (arg, "-X32_64"))
     {
       big_archive = TRUE;
       X32 = TRUE;
       X64 = TRUE;
     }
-  else if (strncmp (arg, "-X32", 3) == 0)
+  else if (CONST_STRNEQ (arg, "-X32"))
     {
       big_archive = TRUE;
       X32 = TRUE;
       X64 = FALSE;
     }
-  else if (strncmp (arg, "-X64", 3) == 0)
+  else if (CONST_STRNEQ (arg, "-X64"))
     {
       big_archive = TRUE;
       X32 = FALSE;
       X64 = TRUE;
     }
-  else if (strncmp (arg, "-g", 2) == 0)
+  else if (CONST_STRNEQ (arg, "-g"))
     {
       big_archive = FALSE;
       X32 = TRUE;
index 551e7e59e430bbbfacef4d2f3f502937734625dd..6159dc97ba47c6d4232cb1e1d86d14da794835a8 100644 (file)
@@ -1,6 +1,6 @@
 /* nlmconv.c -- NLM conversion program
    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
 
@@ -737,7 +737,7 @@ main (int argc, char **argv)
              || ! bfd_set_section_flags (outbfd, help_section,
                                          SEC_HAS_CONTENTS))
            bfd_fatal (_("help section"));
-         strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
+         CONST_STRNCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs");
        }
     }
   if (message_file != NULL)
@@ -759,7 +759,7 @@ main (int argc, char **argv)
              || ! bfd_set_section_flags (outbfd, message_section,
                                          SEC_HAS_CONTENTS))
            bfd_fatal (_("message section"));
-         strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
+         CONST_STRNCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs");
        }
     }
   if (modules != NULL)
@@ -795,7 +795,7 @@ main (int argc, char **argv)
              || ! bfd_set_section_flags (outbfd, rpc_section,
                                          SEC_HAS_CONTENTS))
            bfd_fatal (_("rpc section"));
-         strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
+         CONST_STRNCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs");
        }
     }
   if (sharelib_file != NULL)
@@ -852,20 +852,20 @@ main (int argc, char **argv)
                  || ! bfd_set_section_flags (outbfd, shared_section,
                                              SEC_HAS_CONTENTS))
                bfd_fatal (_("shared section"));
-             strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
+             CONST_STRNCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs");
            }
        }
     }
 
   /* Check whether a version was given.  */
-  if (strncmp (version_hdr->stamp, "VeRsIoN#", 8) != 0)
+  if (!CONST_STRNEQ (version_hdr->stamp, "VeRsIoN#"))
     non_fatal (_("warning: No version number given"));
 
   /* At least for now, always create an extended header, because that
      is what NLMLINK does.  */
-  strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
+  CONST_STRNCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs");
 
-  strncpy (nlm_cygnus_ext_header (outbfd)->stamp, "CyGnUsEx", 8);
+  CONST_STRNCPY (nlm_cygnus_ext_header (outbfd)->stamp, "CyGnUsEx");
 
   /* If the date was not given, force it in.  */
   if (nlm_version_header (outbfd)->month == 0
@@ -880,7 +880,7 @@ main (int argc, char **argv)
       nlm_version_header (outbfd)->month = ptm->tm_mon + 1;
       nlm_version_header (outbfd)->day = ptm->tm_mday;
       nlm_version_header (outbfd)->year = ptm->tm_year + 1900;
-      strncpy (version_hdr->stamp, "VeRsIoN#", 8);
+      CONST_STRNCPY (version_hdr->stamp, "VeRsIoN#");
     }
 
 #ifdef NLMCONV_POWERPC
index 824cc3336b96417bc730bee7072a98fbde1a0258..809457ec10305e81f6fe24d22d120ee346090b62 100644 (file)
@@ -2015,7 +2015,7 @@ dump_dwarf_section (bfd *abfd, asection *section,
   const char *match;
   enum dwarf_section_display_enum i;
 
-  if (strncmp (name, ".gnu.linkonce.wi.", 17) == 0)
+  if (CONST_STRNEQ (name, ".gnu.linkonce.wi."))
     match = ".debug_info";
   else
     match = name;
index 87a49341b016ab965470dda5cb1b7efa171ca052..5b89595b6e47b1232d3d7f748ddc51cf2fa2cf2b 100644 (file)
@@ -1,5 +1,5 @@
 /* prdbg.c -- Print out generic debugging information.
-   Copyright 1995, 1996, 1999, 2002, 2003, 2004
+   Copyright 1995, 1996, 1999, 2002, 2003, 2004, 2006
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
    Tags style generation written by Salvador E. Tropea <set@computer.org>.
@@ -910,11 +910,10 @@ pr_method_type (void *p, bfd_boolean domain, int argcount, bfd_boolean varargs)
       domain_type = pop_type (info);
       if (domain_type == NULL)
        return FALSE;
-      if (strncmp (domain_type, "class ", sizeof "class " - 1) == 0
+      if (CONST_STRNEQ (domain_type, "class ")
          && strchr (domain_type + sizeof "class " - 1, ' ') == NULL)
        domain_type += sizeof "class " - 1;
-      else if (strncmp (domain_type, "union class ",
-                       sizeof "union class ") == 0
+      else if (CONST_STRNEQ (domain_type, "union class ")
               && (strchr (domain_type + sizeof "union class " - 1, ' ')
                   == NULL))
        domain_type += sizeof "union class " - 1;
@@ -1317,7 +1316,7 @@ pr_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
   if (t == NULL)
     return FALSE;
 
-  if (strncmp (t, "class ", sizeof "class " - 1) == 0)
+  if (CONST_STRNEQ (t, "class "))
     t += sizeof "class " - 1;
 
   /* Push it back on to take advantage of the prepend_type and
@@ -2158,7 +2157,7 @@ tg_class_static_member (void *p, const char *name,
   if (! full_name)
     return FALSE;
   memcpy (full_name, info->stack->next->type, len_class);
-  memcpy (full_name + len_class, "::", 2);
+  memcpy (full_name + len_class, STRING_COMMA_LEN ("::"));
   memcpy (full_name + len_class + 2, name, len_var + 1);
 
   if (! substitute_type (info, full_name))
@@ -2199,7 +2198,7 @@ tg_class_baseclass (void *p, bfd_vma bitpos ATTRIBUTE_UNUSED,
   if (t == NULL)
     return FALSE;
 
-  if (strncmp (t, "class ", sizeof "class " - 1) == 0)
+  if (CONST_STRNEQ (t, "class "))
     t += sizeof "class " - 1;
 
   /* Push it back on to take advantage of the prepend_type and
index 96442562b8d3a77602d9a93425f157ab73341446..6d0e66c4365fe86dc8206b8931cb5414c75141ee 100644 (file)
@@ -263,6 +263,7 @@ static void (*byte_put) (unsigned char *, bfd_vma, int);
 /* This is just a bit of syntatic sugar.  */
 #define streq(a,b)     (strcmp ((a), (b)) == 0)
 #define strneq(a,b,n)  (strncmp ((a), (b), (n)) == 0)
+#define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0)
 \f
 static void *
 get_data (void *var, FILE *file, long offset, size_t size, size_t nmemb,
@@ -1135,7 +1136,6 @@ dump_relocations (FILE *file,
        case EM_BLACKFIN:
          rtype = elf_bfin_reloc_type (type);
          break;
-
        }
 
       if (rtype == NULL)
@@ -1968,7 +1968,7 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
              char const *isa = _("unknown");
              char const *mac = _("unknown mac");
              char const *additional = NULL;
-      
+
              switch (e_flags & EF_M68K_ISA_MASK)
                {
                case EF_M68K_ISA_A_NODIV:
@@ -2049,7 +2049,6 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
        case EM_CYGNUS_M32R:
          if ((e_flags & EF_M32R_ARCH) == E_M32R_ARCH)
            strcat (buf, ", m32r");
-
          break;
 
        case EM_MIPS:
@@ -4070,7 +4069,7 @@ process_section_headers (FILE *file)
                || do_debug_lines || do_debug_pubnames || do_debug_aranges
                || do_debug_frames || do_debug_macinfo || do_debug_str
                || do_debug_loc || do_debug_ranges)
-              && strneq (name, ".debug_", 7))
+              && const_strneq (name, ".debug_"))
        {
          name += 7;
 
@@ -4090,7 +4089,7 @@ process_section_headers (FILE *file)
        }
       /* linkonce section to be combined with .debug_info at link time.  */
       else if ((do_debugging || do_debug_info)
-              && strneq (name, ".gnu.linkonce.wi.", 17))
+              && const_strneq (name, ".gnu.linkonce.wi."))
        request_dump (i, DEBUG_DUMP);
       else if (do_debug_frames && streq (name, ".eh_frame"))
        request_dump (i, DEBUG_DUMP);
@@ -4926,7 +4925,7 @@ slurp_ia64_unwind_table (FILE *file,
              sym = aux->symtab + ELF64_R_SYM (rp->r_info);
            }
 
-         if (! strneq (relname, "R_IA64_SEGREL", 13))
+         if (! const_strneq (relname, "R_IA64_SEGREL"))
            {
              warn (_("Skipping unexpected relocation type %s\n"), relname);
              continue;
@@ -5339,7 +5338,7 @@ slurp_hppa_unwind_table (FILE *file,
            }
 
          /* R_PARISC_SEGREL32 or R_PARISC_SEGREL64.  */
-         if (strncmp (relname, "R_PARISC_SEGREL", 15) != 0)
+         if (! const_strneq (relname, "R_PARISC_SEGREL"))
            {
              warn (_("Skipping unexpected relocation type %s\n"), relname);
              continue;
@@ -7826,7 +7825,7 @@ display_debug_section (Elf_Internal_Shdr *section, FILE *file)
       return 0;
     }
 
-  if (strneq (name, ".gnu.linkonce.wi.", 17))
+  if (const_strneq (name, ".gnu.linkonce.wi."))
     name = ".debug_info";
 
   /* See if we know how to display the contents of this section.  */
@@ -8871,7 +8870,7 @@ process_note (Elf_Internal_Note *pnote)
        note type strings.  */
     nt = get_note_type (pnote->type);
 
-  else if (strneq (pnote->namedata, "NetBSD-CORE", 11))
+  else if (const_strneq (pnote->namedata, "NetBSD-CORE"))
     /* NetBSD-specific core file notes.  */
     nt = get_netbsd_elfcore_note_type (pnote->type);
 
@@ -9319,7 +9318,7 @@ process_archive (char *file_name, FILE *file)
       return 1;
     }
 
-  if (memcmp (arhdr.ar_name, "/               ", 16) == 0)
+  if (const_strneq (arhdr.ar_name, "/               "))
     {
       /* This is the archive symbol table.  Skip it.
         FIXME: We should have an option to dump it.  */
@@ -9341,7 +9340,7 @@ process_archive (char *file_name, FILE *file)
        }
     }
 
-  if (memcmp (arhdr.ar_name, "//              ", 16) == 0)
+  if (const_strneq (arhdr.ar_name, "//              "))
     {
       /* This is the archive string table holding long member
         names.  */
index 879a3e2c7a7065906d44dc65d1d8d2667fd58743..9aca97afe68c0eaf15c26ee63e757cdcbdebba70 100644 (file)
@@ -1,5 +1,5 @@
 /* stabs.c -- Parse stabs debugging information
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
@@ -1696,12 +1696,12 @@ parse_stab_range_type (void *dhandle, struct stab_handle *info, const char *type
 #define ULLHIGH "01777777777777777777777;"
       if (index_type == DEBUG_TYPE_NULL)
        {
-         if (strncmp (s2, LLLOW, sizeof LLLOW - 1) == 0
-             && strncmp (s3, LLHIGH, sizeof LLHIGH - 1) == 0)
+         if (CONST_STRNEQ (s2, LLLOW)
+             && CONST_STRNEQ (s3, LLHIGH))
            return debug_make_int_type (dhandle, 8, FALSE);
          if (! ov2
              && n2 == 0
-             && strncmp (s3, ULLHIGH, sizeof ULLHIGH - 1) == 0)
+             && CONST_STRNEQ (s3, ULLHIGH))
            return debug_make_int_type (dhandle, 8, TRUE);
        }
 
@@ -2832,7 +2832,7 @@ parse_stab_argtypes (void *dhandle, struct stab_handle *info,
                                   && (ISDIGIT (argtypes[2])
                                       || argtypes[2] == 'Q'
                                       || argtypes[2] == 't'))
-                                 || strncmp (argtypes, "__ct", 4) == 0);
+                                 || CONST_STRNEQ (argtypes, "__ct"));
 
   is_constructor = (is_full_physname_constructor
                    || (tagname != NULL
@@ -2840,7 +2840,7 @@ parse_stab_argtypes (void *dhandle, struct stab_handle *info,
   is_destructor = ((argtypes[0] == '_'
                    && (argtypes[1] == '$' || argtypes[1] == '.')
                    && argtypes[2] == '_')
-                  || strncmp (argtypes, "__dt", 4) == 0);
+                  || CONST_STRNEQ (argtypes, "__dt"));
   is_v3 = argtypes[0] == '_' && argtypes[1] == 'Z';
 
   if (is_destructor || is_full_physname_constructor || is_v3)
@@ -3841,7 +3841,7 @@ stab_demangle_function_name (struct stab_demangle_info *minfo,
   *pp = scan + 2;
 
   if (*pp - name >= 5
-          && strncmp (name, "type", 4) == 0
+          && CONST_STRNEQ (name, "type")
           && (name[4] == '$' || name[4] == '.'))
     {
       const char *tem;
index dab46921e0264e9b4c7190073efe147d082c1b97..99cc47762d20fe761ac6e53bd2a192e24a7220a3 100644 (file)
@@ -1,3 +1,19 @@
+2006-09-16  Nick Clifton  <nickc@redhat.com>
+           Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * ldctor.c: Make use of new STRING_COMMA_LEN and CONST_STRNEQ
+       macros defined in bfd.h.
+       * ldmain.c: Likewise.
+       * ldwrite.c: Likewise.
+       * lexsup.c: Likewise.
+       * pe-dll.c: Likewise.
+       * emultempl/aix.em: Likewise.
+       * emultempl/beos.em: Likewise.
+       * emultempl/elf32.em: Likewise.
+       * emultempl/pe.em: Likewise.
+       * emultempl/sunos.em: Likewise.
+       * emultempl/xtensaelf.em: Likewise.
+
 2006-09-15  Nick Clifton  <nickc@redhat.com>
 
        PR ld/3107
index d525edd890455ab06798430e0366b13c66c5b79a..a85f7d0c05794e89fc10b7fb068ed60db4a0204f 100644 (file)
@@ -10,7 +10,7 @@ cat >e${EMULATION_NAME}.c <<EOF
 
 /* AIX emulation code for ${EMULATION_NAME}
    Copyright 1991, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005
+   2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
    AIX support by Ian Lance Taylor <ian@cygnus.com>
@@ -268,7 +268,7 @@ gld${EMULATION_NAME}_parse_args (int argc, char **argv)
   if (indx == 0)
     indx = 1;
 
-  if (indx < argc && strncmp (argv[indx], "-b", 2) == 0)
+  if (indx < argc && CONST_STRNEQ (argv[indx], "-b"))
     {
       char *s;
 
index 220ba5900a3f164a376dcbe4611a9d9d83c5ff07..adb5dfbfcb4f4bfe56031a06e62c390fba4094fb 100644 (file)
@@ -8,7 +8,7 @@ fi
 cat >e${EMULATION_NAME}.c <<EOF
 /* This file is part of GLD, the Gnu Linker.
    Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2005 Free Software Foundation, Inc.
+   2005, 2006 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -452,16 +452,15 @@ sort_by_section_name (const void *a, const void *b)
   const lang_statement_union_type *const *rb = b;
   int i;
   i = strcmp ((*ra)->input_section.section->name,
-                (*rb)->input_section.section->name);
-/* this is a hack to make .stab and .stabstr last, so we don't have
-   to fix strip/objcopy for .reloc sections.
-   FIXME stripping images with a .rsrc section still needs to be fixed */
-  if ( i != 0)
+             (*rb)->input_section.section->name);
+  /* This is a hack to make .stab and .stabstr last, so we don't have
+     to fix strip/objcopy for .reloc sections.
+     FIXME stripping images with a .rsrc section still needs to be fixed.  */
+  if (i != 0)
     {
-      if ((strncmp ((*ra)->input_section.section->name, ".stab", 5) == 0)
-           && (strncmp ((*rb)->input_section.section->name, ".stab", 5) != 0))
+      if ((CONST_STRNEQ ((*ra)->input_section.section->name, ".stab"))
+           && (! CONST_STRNEQ ((*rb)->input_section.section->name, ".stab")))
          return 1;
-      return i;
     }
   return i;
 }
@@ -534,7 +533,7 @@ sort_sections (lang_statement_union_type *s)
            {
              /* Is this the .idata section?  */
              if (sec->spec.name != NULL
-                 && strncmp (sec->spec.name, ".idata", 6) == 0)
+                 && CONST_STRNEQ (sec->spec.name, ".idata"))
                {
                  /* Sort the children.  We want to sort any objects in
                     the same archive.  In order to handle the case of
index 38bceaa024cf31eb064efeda2714a18dc5b4017f..3350ac027ab2aa78986ecf1aaefb071683eaad68 100644 (file)
@@ -365,7 +365,7 @@ case ${target} in
            struct bfd_link_needed_list *l;
 
            for (l = needed; l != NULL; l = l->next)
-             if (strncmp (l->name, "libc.so", 7) == 0)
+             if (CONST_STRNEQ (l->name, "libc.so"))
                break;
            if (l == NULL)
              {
@@ -698,7 +698,7 @@ gld${EMULATION_NAME}_parse_ld_so_conf
       if (p[0] == '\0')
        continue;
 
-      if (!strncmp (p, "include", 7) && (p[7] == ' ' || p[7] == '\t'))
+      if (CONST_STRNEQ (p, "include") && (p[7] == ' ' || p[7] == '\t'))
        {
          char *dir, c;
          p += 8;
@@ -1326,7 +1326,7 @@ output_rel_find (asection *sec, int isdyn)
        lookup = lookup->next)
     {
       if (lookup->constraint != -1
-         && strncmp (".rel", lookup->name, 4) == 0)
+         && CONST_STRNEQ (lookup->name, ".rel"))
        {
          int lookrela = lookup->name[4] == 'a';
 
@@ -1435,7 +1435,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s)
          default:
            break;
          }
-      else if (strncmp (secname, ".rel", 4) == 0)
+      else if (CONST_STRNEQ (secname, ".rel"))
        {
          secname = secname[4] == 'a' ? ".rela.dyn" : ".rel.dyn";
          isdyn = 1;
@@ -1483,7 +1483,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s)
      sections into the .text section to get them out of the way.  */
   if (link_info.executable
       && ! link_info.relocatable
-      && strncmp (secname, ".gnu.warning.", sizeof ".gnu.warning." - 1) == 0
+      && CONST_STRNEQ (secname, ".gnu.warning.")
       && hold[orphan_text].os != NULL)
     {
       lang_add_section (&hold[orphan_text].os->children, s,
@@ -1502,7 +1502,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s)
     ;
   else if ((s->flags & SEC_LOAD) != 0
           && ((iself && sh_type == SHT_NOTE)
-              || (!iself && strncmp (secname, ".note", 5) == 0)))
+              || (!iself && CONST_STRNEQ (secname, ".note"))))
     place = &hold[orphan_interp];
   else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
     place = &hold[orphan_bss];
@@ -1511,7 +1511,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s)
   else if ((s->flags & SEC_READONLY) == 0)
     place = &hold[orphan_data];
   else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
-           || (!iself && strncmp (secname, ".rel", 4) == 0))
+           || (!iself && CONST_STRNEQ (secname, ".rel")))
           && (s->flags & SEC_LOAD) != 0)
     place = &hold[orphan_rel];
   else if ((s->flags & SEC_CODE) == 0)
@@ -1871,15 +1871,16 @@ EOF
   fi
 
 cat >>e${EMULATION_NAME}.c <<EOF
-      else if (strncmp (optarg, "max-page-size=", 14) == 0)
+      else if (CONST_STRNEQ (optarg, "max-page-size="))
        {
          char *end;
+
          config.maxpagesize = strtoul (optarg + 14, &end, 0);
          if (*end)
            einfo (_("%P%F: invalid maxium page size \`%s'\n"),
                   optarg + 14);
        }
-      else if (strncmp (optarg, "common-page-size=", 17) == 0)
+      else if (CONST_STRNEQ (optarg, "common-page-size="))
        {
          char *end;
          config.commonpagesize = strtoul (optarg + 17, &end, 0);
index 0e75e182c54dd69aff2b8fe62bc51061d12a8e38..fa4cafe8880d04d95d166de41f06da7a875c01ad 100644 (file)
@@ -925,8 +925,7 @@ pe_find_data_imports (void)
 
              for (i = 0; i < nsyms; i++)
                {
-                 if (memcmp (symbols[i]->name, "__head_",
-                             sizeof ("__head_") - 1))
+                 if (! CONST_STRNEQ (symbols[i]->name, "__head_"))
                    continue;
 
                  if (pe_dll_extra_pe_debug)
@@ -1060,7 +1059,7 @@ gld_${EMULATION_NAME}_after_open (void)
              {
                if (strcmp (sec->name, ".idata\$2") == 0)
                  idata2 = 1;
-               if (strncmp (sec->name, ".idata\$", 7) == 0)
+               if (CONST_STRNEQ (sec->name, ".idata\$"))
                  is_imp = 1;
                reloc_count += sec->reloc_count;
              }
index a480558c90691679c4d5692d3c0f224b7131355d..4fbe108f760674bbfd7e7379103075c6aa37ec51 100644 (file)
@@ -10,7 +10,7 @@ cat >e${EMULATION_NAME}.c <<EOF
 
 /* SunOS emulation code for ${EMULATION_NAME}
    Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
    SunOS shared library support by Ian Lance Taylor <ian@cygnus.com>
 
@@ -160,7 +160,7 @@ gld${EMULATION_NAME}_find_so (lang_input_statement_type *inp)
       || ! inp->dynamic)
     return;
 
-  ASSERT (strncmp (inp->local_sym_name, "-l", 2) == 0);
+  ASSERT (CONST_STRNEQ (inp->local_sym_name, "-l"));
 
   for (search = search_head; search != NULL; search = search->next)
     {
@@ -273,7 +273,7 @@ gld${EMULATION_NAME}_search_dir
       const char *s;
       int found_maj, found_min;
 
-      if (strncmp (entry->d_name, "lib", 3) != 0
+      if (! CONST_STRNEQ (entry->d_name, "lib")
          || strncmp (entry->d_name + 3, filename, len) != 0)
        continue;
 
@@ -288,7 +288,7 @@ gld${EMULATION_NAME}_search_dir
         native linker does not.  This is more convenient for packages
         which just generate .so files for shared libraries, as on ELF
         systems.  */
-      if (strncmp (entry->d_name + 3 + len, ".so", 3) != 0)
+      if (! CONST_STRNEQ (entry->d_name + 3 + len, ".so"))
        continue;
       if (entry->d_name[6 + len] == '\0')
        ;
@@ -400,7 +400,7 @@ gld${EMULATION_NAME}_after_open (void)
       if (global_found)
        continue;
 
-      if (strncmp (lname, "-l", 2) != 0)
+      if (! CONST_STRNEQ (lname, "-l"))
        {
          bfd *abfd;
 
@@ -586,7 +586,7 @@ gld${EMULATION_NAME}_check_needed (lang_input_statement_type *s)
 {
   if (s->filename == NULL)
     return;
-  if (strncmp (global_needed->name, "-l", 2) != 0)
+  if (! CONST_STRNEQ (global_needed->name, "-l"))
     {
       if (strcmp (s->filename, global_needed->name) == 0)
        global_found = TRUE;
@@ -605,7 +605,7 @@ gld${EMULATION_NAME}_check_needed (lang_input_statement_type *s)
       else
        ++sname;
 
-      if (strncmp (sname, "lib", 3) != 0)
+      if (! CONST_STRNEQ (sname, "lib"))
        return;
       sname += 3;
 
index 1135d27ef01a1653e75170e76a10172fbd5cbeb6..bbee5462029fa2a5091304740fb43eaf48bec88e 100644 (file)
@@ -267,8 +267,7 @@ replace_instruction_table_sections (bfd *abfd, asection *sec)
       insn_sec_name = INSN_SEC_BASE_NAME;
       prop_sec_name = PROP_SEC_BASE_NAME;
     }
-  else if (strncmp (sec_name, LINKONCE_SEC_OLD_TEXT_BASE_NAME,
-                   strlen (LINKONCE_SEC_OLD_TEXT_BASE_NAME)) == 0)
+  else if (CONST_STRNEQ (sec_name, LINKONCE_SEC_OLD_TEXT_BASE_NAME))
     {
       insn_sec_name = sec_name;
       owned_prop_sec_name = (char *) xmalloc (strlen (sec_name) + 20);
@@ -1207,9 +1206,9 @@ is_inconsistent_linkonce_section (asection *sec)
     return FALSE;
 
   /* Check if this is an Xtensa property section.  */
-  if (strncmp (sec_name + linkonce_len, "p.", 2) == 0)
+  if (CONST_STRNEQ (sec_name + linkonce_len, "p."))
     name = sec_name + linkonce_len + 2;
-  else if (strncmp (sec_name + linkonce_len, "prop.", 5) == 0)
+  else if (CONST_STRNEQ (sec_name + linkonce_len, "prop."))
     name = strchr (sec_name + linkonce_len + 5, '.') + 1;
 
   if (name)
index 3de4ef16051efeacb521050ee9bfdd0039b6404b..f9cdcd1d961a214edc5665da5e04777b20006152 100644 (file)
@@ -1,6 +1,6 @@
 /* ldctor.c -- constructor support routines
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004 Free Software Foundation, Inc.
+   2002, 2003, 2004, 2006 Free Software Foundation, Inc.
    By Steve Chamberlain <sac@cygnus.com>
 
 This file is part of GLD, the Gnu Linker.
@@ -131,7 +131,7 @@ ctor_prio (const char *name)
   while (*name == '_')
     ++name;
 
-  if (strncmp (name, "GLOBAL_", sizeof "GLOBAL_" - 1) != 0)
+  if (! CONST_STRNEQ (name, "GLOBAL_"))
     return -1;
 
   name += sizeof "GLOBAL_" - 1;
index d9b434323d0ba73028f509def364eda7fa6af04f..bc03e0274357179a7d0d0eb39e269eb57f8b255a 100644 (file)
@@ -608,7 +608,7 @@ get_sysroot (int argc, char **argv)
   const char *path;
 
   for (i = 1; i < argc; i++)
-    if (strncmp (argv[i], "--sysroot=", strlen ("--sysroot=")) == 0)
+    if (CONST_STRNEQ (argv[i], "--sysroot="))
       return argv[i] + strlen ("--sysroot=");
 
   path = get_relative_sysroot (BINDIR);
@@ -637,7 +637,7 @@ get_emulation (int argc, char **argv)
 
   for (i = 1; i < argc; i++)
     {
-      if (!strncmp (argv[i], "-m", 2))
+      if (CONST_STRNEQ (argv[i], "-m"))
        {
          if (argv[i][2] == '\0')
            {
index ee9d74a796d6c5a00203ede07f17ae774800aab1..6c8152db50c0894f69b6e0d30ff34406448f1aa9 100644 (file)
@@ -1,6 +1,6 @@
 /* ldwrite.c -- write out the linked file
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002,
-   2003, 2004, 2005 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    Written by Steve Chamberlain sac@cygnus.com
 
 This file is part of GLD, the Gnu Linker.
@@ -293,7 +293,7 @@ build_link_order (lang_statement_union_type *statement)
 static bfd_boolean
 unsplittable_name (const char *name)
 {
-  if (strncmp (name, ".stab", 5) == 0)
+  if (CONST_STRNEQ (name, ".stab"))
     {
       /* There are several stab like string sections. We pattern match on
         ".stab...str"  */
@@ -338,7 +338,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
     {
       /* Some section names cannot be truncated, as the name is
         used to locate some other section.  */
-      if (strncmp (name, ".stab", 5) == 0
+      if (CONST_STRNEQ (name, ".stab")
          || strcmp (name, "$GDB_SYMBOLS$") == 0)
        {
          einfo (_ ("%F%P: cannot create split section name for %s\n"), name);
index 19cb037f0db5af9b27851e708c4bfa870b6c056b..c4336c45be5ad9633482a66553dfddc9f589cbbe 100644 (file)
@@ -1308,7 +1308,7 @@ parse_args (unsigned argc, char **argv)
          link_info.discard = discard_all;
          break;
        case 'Y':
-         if (strncmp (optarg, "P,", 2) == 0)
+         if (CONST_STRNEQ (optarg, "P,"))
            optarg += 2;
          if (default_dirlist != NULL)
            free (default_dirlist);
index 8af1b0639049894bdcdd1e8dae96282eed28e8fd..0b783fbcba4272fdf0cf6c22cb5c47d1121b62f0 100644 (file)
@@ -164,42 +164,42 @@ pe_details_type;
 
 static autofilter_entry_type autofilter_symbollist_generic[] =
 {
-  { ".text", 5 },
+  { STRING_COMMA_LEN (".text") },
   /* Entry point symbols.  */
-  { "DllMain", 7 },
-  { "DllMainCRTStartup", 17 },
-  { "_DllMainCRTStartup", 18 },
+  { STRING_COMMA_LEN ("DllMain") },
+  { STRING_COMMA_LEN ("DllMainCRTStartup") },
+  { STRING_COMMA_LEN ("_DllMainCRTStartup") },
   /* Runtime pseudo-reloc.  */
-  { "_pei386_runtime_relocator", 25 },
-  { "do_pseudo_reloc", 15 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("_pei386_runtime_relocator") },
+  { STRING_COMMA_LEN ("do_pseudo_reloc") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 static autofilter_entry_type autofilter_symbollist_i386[] =
 {
-  { ".text", 5 },
+  { STRING_COMMA_LEN (".text") },
   /* Entry point symbols, and entry hooks.  */
-  { "cygwin_crt0", 11 },
-  { "DllMain@12", 10 },
-  { "DllEntryPoint@0", 15 },
-  { "DllMainCRTStartup@12", 20 },
-  { "_cygwin_dll_entry@12", 20 },
-  { "_cygwin_crt0_common@8", 21 },
-  { "_cygwin_noncygwin_dll_entry@12", 30 },
-  { "cygwin_attach_dll", 17 },
-  { "cygwin_premain0", 15 },
-  { "cygwin_premain1", 15 },
-  { "cygwin_premain2", 15 },
-  { "cygwin_premain3", 15 },
+  { STRING_COMMA_LEN ("cygwin_crt0") },
+  { STRING_COMMA_LEN ("DllMain@12") },
+  { STRING_COMMA_LEN ("DllEntryPoint@0") },
+  { STRING_COMMA_LEN ("DllMainCRTStartup@12") },
+  { STRING_COMMA_LEN ("_cygwin_dll_entry@12") },
+  { STRING_COMMA_LEN ("_cygwin_crt0_common@8") },
+  { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry@12") },
+  { STRING_COMMA_LEN ("cygwin_attach_dll") },
+  { STRING_COMMA_LEN ("cygwin_premain0") },
+  { STRING_COMMA_LEN ("cygwin_premain1") },
+  { STRING_COMMA_LEN ("cygwin_premain2") },
+  { STRING_COMMA_LEN ("cygwin_premain3") },
   /* Runtime pseudo-reloc.  */
-  { "_pei386_runtime_relocator", 25 },
-  { "do_pseudo_reloc", 15 },
+  { STRING_COMMA_LEN ("_pei386_runtime_relocator") },
+  { STRING_COMMA_LEN ("do_pseudo_reloc") },
   /* Global vars that should not be exported.  */
-  { "impure_ptr", 10 },
-  { "_impure_ptr", 11 },
-  { "_fmode", 6 },
-  { "environ", 7 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("impure_ptr") },
+  { STRING_COMMA_LEN ("_impure_ptr") },
+  { STRING_COMMA_LEN ("_fmode") },
+  { STRING_COMMA_LEN ("environ") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 #define PE_ARCH_i386    1
@@ -273,51 +273,51 @@ static pe_details_type *pe_details;
 /* Do not specify library suffix explicitly, to allow for dllized versions.  */
 static autofilter_entry_type autofilter_liblist[] =
 {
-  { "libcegcc", 8 },
-  { "libcygwin", 9 },
-  { "libgcc", 6 },
-  { "libstdc++", 9 },
-  { "libmingw32", 10 },
-  { "libmingwex", 10 },
-  { "libg2c", 6 },
-  { "libsupc++", 9 },
-  { "libobjc", 7 },
-  { "libgcj", 6 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("libcegcc") },
+  { STRING_COMMA_LEN ("libcygwin") },
+  { STRING_COMMA_LEN ("libgcc") },
+  { STRING_COMMA_LEN ("libstdc++") },
+  { STRING_COMMA_LEN ("libmingw32") },
+  { STRING_COMMA_LEN ("libmingwex") },
+  { STRING_COMMA_LEN ("libg2c") },
+  { STRING_COMMA_LEN ("libsupc++") },
+  { STRING_COMMA_LEN ("libobjc") },
+  { STRING_COMMA_LEN ("libgcj") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 static autofilter_entry_type autofilter_objlist[] =
 {
-  { "crt0.o", 6 },
-  { "crt1.o", 6 },
-  { "crt2.o", 6 },
-  { "dllcrt1.o", 9 },
-  { "dllcrt2.o", 9 },
-  { "gcrt0.o", 7 },
-  { "gcrt1.o", 7 },
-  { "gcrt2.o", 7 },
-  { "crtbegin.o", 10 },
-  { "crtend.o", 8 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("crt0.o") },
+  { STRING_COMMA_LEN ("crt1.o") },
+  { STRING_COMMA_LEN ("crt2.o") },
+  { STRING_COMMA_LEN ("dllcrt1.o") },
+  { STRING_COMMA_LEN ("dllcrt2.o") },
+  { STRING_COMMA_LEN ("gcrt0.o") },
+  { STRING_COMMA_LEN ("gcrt1.o") },
+  { STRING_COMMA_LEN ("gcrt2.o") },
+  { STRING_COMMA_LEN ("crtbegin.o") },
+  { STRING_COMMA_LEN ("crtend.o") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 static autofilter_entry_type autofilter_symbolprefixlist[] =
 {
-  { "__imp_", 6 },
+  { STRING_COMMA_LEN ("__imp_") },
   /* Do __imp_ explicitly to save time.  */
-  { "__rtti_", 7 },
+  { STRING_COMMA_LEN ("__rtti_") },
   /* Don't re-export auto-imported symbols.  */
-  { "_nm_", 4 },
-  { "__builtin_", 10 },
+  { STRING_COMMA_LEN ("_nm_") },
+  { STRING_COMMA_LEN ("__builtin_") },
   /* Don't export symbols specifying internal DLL layout.  */
-  { "_head_", 6 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("_head_") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 static autofilter_entry_type autofilter_symbolsuffixlist[] =
 {
-  { "_iname", 6 },
-  { NULL, 0 }
+  { STRING_COMMA_LEN ("_iname") },
+  { STRING_COMMA_LEN (NULL) }
 };
 
 #define U(str) (pe_details->underscored ? "_" str : str)
@@ -432,7 +432,7 @@ auto_export (bfd *abfd, def_file *d, const char *n)
     libname = lbasename (abfd->my_archive->filename);
 
   /* We should not re-export imported stuff.  */
-  if (strncmp (n, "_imp_", 5) == 0)
+  if (CONST_STRNEQ (n, "_imp_"))
     return 0;
 
   for (i = 0; i < d->num_exports; i++)
@@ -2674,7 +2674,7 @@ pe_implied_import_dll (const char *filename)
 
       /* Skip unwanted symbols, which are
         exported in buggy auto-import releases.  */
-      if (strncmp (erva + name_rva, "_nm_", 4) != 0)
+      if (! CONST_STRNEQ (erva + name_rva, "_nm_"))
        {
          /* is_data is true if the address is in the data, rdata or bss
             segment.  */
index 290b8d47a039a9be96b7ed3e1c2ad93e8d3515c1..e87e62a760f1a17614b3fa6e4154d277d314714a 100644 (file)
@@ -1,3 +1,14 @@
+2006-09-16  Nick Clifton  <nickc@redhat.com>
+           Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * arm-dis.c: Make use of new STRING_COMMA_LEN and CONST_STRNEQ
+       macros defined in bfd.h.
+       * cris-dis.c: Likewise.
+       * h8300-dis.c: Likewise.
+       * i386-dis.c: Likewise.
+       * ia64-gen.c: Likewise.
+       * mips-dis: Likewise.
+
 2006-09-04  Paul Brook  <paul@codesourcery.com>
 
        * arm-dis.c (neon_opcode): Fix suffix on VMOVN.
index 45e5da7c570e2adf1284f4bf14a7649e7b12315b..d87e1eb75569f3e83e5d1a42276ca55e85c5528e 100644 (file)
@@ -3653,7 +3653,7 @@ parse_arm_disassembler_option (char *option)
   if (option == NULL)
     return;
 
-  if (strneq (option, "reg-names-", 10))
+  if (CONST_STRNEQ (option, "reg-names-"))
     {
       int i;
 
@@ -3670,9 +3670,9 @@ parse_arm_disassembler_option (char *option)
        /* XXX - should break 'option' at following delimiter.  */
        fprintf (stderr, _("Unrecognised register name set: %s\n"), option);
     }
-  else if (strneq (option, "force-thumb", 11))
+  else if (CONST_STRNEQ (option, "force-thumb"))
     force_thumb = 1;
-  else if (strneq (option, "no-force-thumb", 14))
+  else if (CONST_STRNEQ (option, "no-force-thumb"))
     force_thumb = 0;
   else
     /* XXX - should break 'option' at following delimiter.  */
index f6c63cb280dd153d7e4206d0f5077ded9349e3f1..137bed7e6d5daed1f5603bcd13c090883924884b 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassembler code for CRIS.
-   Copyright 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Written by Hans-Peter Nilsson.
 
@@ -783,7 +783,7 @@ print_with_operands (const struct cris_opcode *opcodep,
      better way).  */
   if (opcodep->name[0] == 'j')
     {
-      if (strncmp (opcodep->name, "jsr", 3) == 0)
+      if (CONST_STRNEQ (opcodep->name, "jsr"))
        /* It's "jsr" or "jsrc".  */
        info->insn_type = dis_jsr;
       else
@@ -1360,16 +1360,16 @@ print_with_operands (const struct cris_opcode *opcodep,
      itself or in a "move.d const,rN, sub.d rN,rM"-like sequence.  */
   if (TRACE_CASE && case_offset_counter == 0)
     {
-      if (strncmp (opcodep->name, "sub", 3) == 0)
+      if (CONST_STRNEQ (opcodep->name, "sub"))
        case_offset = last_immediate;
 
       /* It could also be an "add", if there are negative case-values.  */
-      else if (strncmp (opcodep->name, "add", 3) == 0)
+      else if (CONST_STRNEQ (opcodep->name, "add"))
        /* The first case is the negated operand to the add.  */
        case_offset = -last_immediate;
 
       /* A bound insn will tell us the number of cases.  */
-      else if (strncmp (opcodep->name, "bound", 5) == 0)
+      else if (CONST_STRNEQ (opcodep->name, "bound"))
        no_of_case_offsets = last_immediate + 1;
 
       /* A jump or jsr or branch breaks the chain of insns for a
index 769c12e37d43206225e4f5af2b70d5ff18c3ee14..d8973813a737fc303a8b34d30fd714716ba2c013 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble h8300 instructions.
-   Copyright 1993, 1994, 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright 1993, 1994, 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -638,7 +638,7 @@ bfd_h8_disassemble (bfd_vma addr, disassemble_info *info, int mach)
                               regno[1]);
                      return qi->length;
                    }
-                 if (strncmp (q->name, "mova", 4) == 0)
+                 if (CONST_STRNEQ (q->name, "mova"))
                    {
                      op_type *args = q->args.nib;
 
index 18ca5decc6538722192d33289a54fef603dc3a6d..bcf30802297dbc09712d51a81b9a628cfb10b20a 100644 (file)
@@ -1,6 +1,6 @@
 /* Print i386 instructions for GDB, the GNU debugger.
    Copyright 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -2667,44 +2667,44 @@ print_insn (bfd_vma pc, disassemble_info *info)
 
   for (p = info->disassembler_options; p != NULL; )
     {
-      if (strncmp (p, "x86-64", 6) == 0)
+      if (CONST_STRNEQ (p, "x86-64"))
        {
          address_mode = mode_64bit;
          priv.orig_sizeflag = AFLAG | DFLAG;
        }
-      else if (strncmp (p, "i386", 4) == 0)
+      else if (CONST_STRNEQ (p, "i386"))
        {
          address_mode = mode_32bit;
          priv.orig_sizeflag = AFLAG | DFLAG;
        }
-      else if (strncmp (p, "i8086", 5) == 0)
+      else if (CONST_STRNEQ (p, "i8086"))
        {
          address_mode = mode_16bit;
          priv.orig_sizeflag = 0;
        }
-      else if (strncmp (p, "intel", 5) == 0)
+      else if (CONST_STRNEQ (p, "intel"))
        {
          intel_syntax = 1;
        }
-      else if (strncmp (p, "att", 3) == 0)
+      else if (CONST_STRNEQ (p, "att"))
        {
          intel_syntax = 0;
        }
-      else if (strncmp (p, "addr", 4) == 0)
+      else if (CONST_STRNEQ (p, "addr"))
        {
          if (p[4] == '1' && p[5] == '6')
            priv.orig_sizeflag &= ~AFLAG;
          else if (p[4] == '3' && p[5] == '2')
            priv.orig_sizeflag |= AFLAG;
        }
-      else if (strncmp (p, "data", 4) == 0)
+      else if (CONST_STRNEQ (p, "data"))
        {
          if (p[4] == '1' && p[5] == '6')
            priv.orig_sizeflag &= ~DFLAG;
          else if (p[4] == '3' && p[5] == '2')
            priv.orig_sizeflag |= DFLAG;
        }
-      else if (strncmp (p, "suffix", 6) == 0)
+      else if (CONST_STRNEQ (p, "suffix"))
        priv.orig_sizeflag |= SUFFIX_ALWAYS;
 
       p = strchr (p, ',');
@@ -5207,9 +5207,9 @@ PNI_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
          && (prefixes & PREFIX_ADDR)
          && olen >= (4 + 7)
          && *(p - 1) == ' '
-         && strncmp (p - 7, "addr", 4) == 0
-         && (strncmp (p - 3, "16", 2) == 0
-             || strncmp (p - 3, "32", 2) == 0))
+         && CONST_STRNEQ (p - 7, "addr")
+         && (CONST_STRNEQ (p - 3, "16")
+             || CONST_STRNEQ (p - 3, "32")))
        p -= 7;
 
       if (rm)
index 556228319a85061dada8e6ba809dd30f49dec630..b1d0225262ff682b60ae9b8823b9bb101388106f 100644 (file)
@@ -467,7 +467,7 @@ fetch_insn_class (const char *full_name, int create)
   int ind;
   int is_class = 0;
 
-  if (strncmp (full_name, "IC:", 3) == 0)
+  if (CONST_STRNEQ (full_name, "IC:"))
     {
       name = xstrdup (full_name + 3);
       is_class = 1;
@@ -749,7 +749,7 @@ parse_resource_users (ref, usersp, nusersp, notesp)
          are read.  Only create new classes if it's *not* an insn class,
          or if it's a composite class (which wouldn't necessarily be in the IC
          table).  */
-      if (strncmp (name, "IC:", 3) != 0 || xsect != NULL)
+      if (! CONST_STRNEQ (name, "IC:") || xsect != NULL)
         create = 1;
       
       iclass = fetch_insn_class (name, create);
@@ -1034,7 +1034,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
 
   if (ic->comment)
     {
-      if (!strncmp (ic->comment, "Format", 6))
+      if (CONST_STRNEQ (ic->comment, "Format"))
         {
           /* Assume that the first format seen is the most restrictive, and
              only keep a later one if it looks like it's more restrictive.  */
@@ -1050,7 +1050,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
           else
             format = ic->comment;
         }
-      else if (!strncmp (ic->comment, "Field", 5))
+      else if (CONST_STRNEQ (ic->comment, "Field"))
         {
           if (field)
             warn (_("overlapping field %s->%s\n"),
@@ -1064,7 +1064,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
      instructions.  */
   if (ic->nsubs == 0 && ic->nxsubs == 0)
     {
-      int is_mov = strncmp (idesc->name, "mov", 3) == 0;
+      int is_mov = CONST_STRNEQ (idesc->name, "mov");
       int plain_mov = strcmp (idesc->name, "mov") == 0;
       int len = strlen(ic->name);
 
@@ -1123,32 +1123,32 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
 
       if (resolved && format)
         {
-          if (strncmp (idesc->name, "dep", 3) == 0
+          if (CONST_STRNEQ (idesc->name, "dep")
                    && strstr (format, "I13") != NULL)
             resolved = idesc->operands[1] == IA64_OPND_IMM8;
-          else if (strncmp (idesc->name, "chk", 3) == 0
+          else if (CONST_STRNEQ (idesc->name, "chk")
                    && strstr (format, "M21") != NULL)
             resolved = idesc->operands[0] == IA64_OPND_F2;
-          else if (strncmp (idesc->name, "lfetch", 6) == 0)
+          else if (CONST_STRNEQ (idesc->name, "lfetch"))
             resolved = (strstr (format, "M14 M15") != NULL
                         && (idesc->operands[1] == IA64_OPND_R2
                             || idesc->operands[1] == IA64_OPND_IMM9b));
-          else if (strncmp (idesc->name, "br.call", 7) == 0
+          else if (CONST_STRNEQ (idesc->name, "br.call")
                    && strstr (format, "B5") != NULL)
             resolved = idesc->operands[1] == IA64_OPND_B2;
-          else if (strncmp (idesc->name, "br.call", 7) == 0
+          else if (CONST_STRNEQ (idesc->name, "br.call")
                    && strstr (format, "B3") != NULL)
             resolved = idesc->operands[1] == IA64_OPND_TGT25c;
-          else if (strncmp (idesc->name, "brp", 3) == 0
+          else if (CONST_STRNEQ (idesc->name, "brp")
                    && strstr (format, "B7") != NULL)
             resolved = idesc->operands[0] == IA64_OPND_B2;
           else if (strcmp (ic->name, "invala") == 0)
             resolved = strcmp (idesc->name, ic->name) == 0;
-         else if (strncmp (idesc->name, "st", 2) == 0
+         else if (CONST_STRNEQ (idesc->name, "st")
                   && (strstr (format, "M5") != NULL
                       || strstr (format, "M10") != NULL))
            resolved = idesc->flags & IA64_OPCODE_POSTINC;
-         else if (strncmp (idesc->name, "ld", 2) == 0
+         else if (CONST_STRNEQ (idesc->name, "ld")
                   && (strstr (format, "M2 M3") != NULL
                       || strstr (format, "M12") != NULL
                       || strstr (format, "M7 M8") != NULL))
@@ -1161,7 +1161,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
          plain brl matches brl.cond.  */
       if (!resolved
           && (strcmp (idesc->name, "brl") == 0
-              || strncmp (idesc->name, "brl.", 4) == 0)
+              || CONST_STRNEQ (idesc->name, "brl."))
           && strcmp (ic->name, "brl.cond") == 0)
         {
           resolved = 1;
@@ -1170,7 +1170,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
       /* Misc br variations ('.cond' is optional).  */
       if (!resolved 
           && (strcmp (idesc->name, "br") == 0
-              || strncmp (idesc->name, "br.", 3) == 0)
+              || CONST_STRNEQ (idesc->name, "br."))
           && strcmp (ic->name, "br.cond") == 0)
         {
           if (format)
@@ -1183,7 +1183,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
         }
 
       /* probe variations.  */
-      if (!resolved && strncmp (idesc->name, "probe", 5) == 0)
+      if (!resolved && CONST_STRNEQ (idesc->name, "probe"))
         {
           resolved = strcmp (ic->name, "probe") == 0 
             && !((strstr (idesc->name, "fault") != NULL) 
@@ -1217,7 +1217,7 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
             }
 
           /* Some variants of mov and mov.[im].  */
-          if (!resolved && strncmp (ic->name, "mov_", 4) == 0)
+          if (!resolved && CONST_STRNEQ (ic->name, "mov_"))
            resolved = in_iclass_mov_x (idesc, ic, format, field);
         }
 
@@ -1476,13 +1476,13 @@ lookup_specifier (const char *name)
       warn (_("Don't know how to specify # dependency %s\n"),
            name);
     }
-  else if (strncmp (name, "AR[FPSR]", 8) == 0)
+  else if (CONST_STRNEQ (name, "AR[FPSR]"))
     return IA64_RS_AR_FPSR;
-  else if (strncmp (name, "AR[", 3) == 0)
+  else if (CONST_STRNEQ (name, "AR["))
     return IA64_RS_ARX;
-  else if (strncmp (name, "CR[", 3) == 0)
+  else if (CONST_STRNEQ (name, "CR["))
     return IA64_RS_CRX;
-  else if (strncmp (name, "PSR.", 4) == 0)
+  else if (CONST_STRNEQ (name, "PSR."))
     return IA64_RS_PSR;
   else if (strcmp (name, "InService*") == 0)
     return IA64_RS_INSERVICE;
@@ -2448,7 +2448,7 @@ insert_opcode_dependencies (opc, cmp)
       int j;
 
       if (strcmp (opc->name, "cmp.eq.and") == 0
-          && strncmp (rs->name, "PR%", 3) == 0
+          && CONST_STRNEQ (rs->name, "PR%")
           && rs->mode == 1)
         no_class_found = 99;
 
@@ -2459,7 +2459,7 @@ insert_opcode_dependencies (opc, cmp)
           if (in_iclass (opc, ics[rs->regs[j]], NULL, NULL, &ic_note))
             {
               /* We can ignore ic_note 11 for non PR resources.  */
-              if (ic_note == 11 && strncmp (rs->name, "PR", 2) != 0)
+              if (ic_note == 11 && ! CONST_STRNEQ (rs->name, "PR"))
                 ic_note = 0;
 
               if (ic_note != 0 && rs->regnotes[j] != 0
@@ -2487,7 +2487,7 @@ insert_opcode_dependencies (opc, cmp)
           if (in_iclass (opc, ics[rs->chks[j]], NULL, NULL, &ic_note))
             {
               /* We can ignore ic_note 11 for non PR resources.  */
-              if (ic_note == 11 && strncmp (rs->name, "PR", 2) != 0)
+              if (ic_note == 11 && ! CONST_STRNEQ (rs->name, "PR"))
                 ic_note = 0;
 
               if (ic_note != 0 && rs->chknotes[j] != 0
index b0562ea25230caf0a76bc020e93a9d7a0ff41b3a..8af043c977aae0a701b258471e0ca9b57b3ef926 100644 (file)
@@ -575,7 +575,7 @@ parse_mips_dis_option (const char *option, unsigned int len)
   const struct mips_arch_choice *chosen_arch;
 
   /* Try to match options that are simple flags */
-  if (strncmp (option, "no-aliases", 10) == 0)
+  if (CONST_STRNEQ (option, "no-aliases"))
     {
       no_aliases = 1;
       return;