x86: Use zero_undefweak in elf_x86_link_hash_entry
[deliverable/binutils-gdb.git] / bfd / nlmcode.h
index a7d3985c6a7c86af12f5283fb53f8d783f5a740e..350c83e12080397c4297121f48a54aa11c5e24dc 100644 (file)
@@ -1,6 +1,5 @@
 /* NLM (NetWare Loadable Module) executable support for BFD.
-   Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1993-2017 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, using ELF support as the
    template.
@@ -9,7 +8,7 @@
 
    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
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    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.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
-#include "bfd.h"
 #include "sysdep.h"
+#include "bfd.h"
 #include "libbfd.h"
 #include "libnlm.h"
 
@@ -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,13 +345,15 @@ 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;
              bfd_byte *p, *pend;
 
-             BFD_ASSERT (hdrLength == 0 && hdr == NULL);
+             /* See PR 21840 for a reproducer.  */
+             if (hdrLength != 0 || hdr != NULL)
+               return FALSE;
 
              pos = bfd_tell (abfd);
              if (bfd_seek (abfd, dataOffset, SEEK_SET) != 0)
@@ -364,7 +366,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);
+             LITMEMCPY (nlm_cygnus_ext_header (abfd), "CyGnUsEx");
              nlm_cygnus_ext_header (abfd)->offset = dataOffset;
              nlm_cygnus_ext_header (abfd)->length = dataLength;
 
@@ -490,7 +492,7 @@ nlm_object_p (bfd *abfd)
                  NLM_SIGNATURE_SIZE) != 0)
     goto got_wrong_format_error;
 
-  /* There's no supported way to discover the endianess of an NLM, so test for
+  /* There's no supported way to discover the endianness of an NLM, so test for
      a sane version number after doing byte swapping appropriate for this
      XVEC.  (Hack alert!)  */
   if (i_fxdhdrp->version > 0xFFFF)
@@ -645,7 +647,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Version_Header thdr;
 
-      memcpy (thdr.stamp, "VeRsIoN#", 8);
+      LITMEMCPY (thdr.stamp, "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 +674,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Copyright_Header thdr;
 
-      memcpy (thdr.stamp, "CoPyRiGhT=", 10);
+      LITMEMCPY (thdr.stamp, "CoPyRiGhT=");
       amt = sizeof (thdr.stamp);
       if (bfd_bwrite ((void *) thdr.stamp, amt, abfd) != amt)
        return FALSE;
@@ -694,7 +696,7 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Extended_Header thdr;
 
-      memcpy (thdr.stamp, "MeSsAgEs", 8);
+      LITMEMCPY (thdr.stamp, "MeSsAgEs");
       put_word (abfd,
                (bfd_vma) nlm_extended_header (abfd)->languageID,
                (bfd_byte *) thdr.languageID);
@@ -797,7 +799,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);
+      LITMEMCPY (thdr.stamp, "CuStHeAd");
       hdrLength = (2 * NLM_TARGET_LONG_SIZE + (ds ? 8 : 0)
                   + nlm_custom_header (abfd)->hdrLength);
       put_word (abfd, hdrLength, thdr.length);
@@ -831,14 +833,14 @@ nlm_swap_auxiliary_headers_out (bfd *abfd)
     {
       Nlm_External_Custom_Header thdr;
 
-      memcpy (thdr.stamp, "CuStHeAd", 8);
+      LITMEMCPY (thdr.stamp, "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);
+      LITMEMCPY (thdr.dataStamp, "CyGnUsEx");
       amt = sizeof (thdr);
       if (bfd_bwrite ((void *) &thdr, amt, abfd) != amt)
        return FALSE;
This page took 0.029734 seconds and 4 git commands to generate.