2002-01-16 H.J. Lu (hjl@gnu.org)
[deliverable/binutils-gdb.git] / bfd / coff-stgo32.c
index 45e7d62795af989755942c8793ebfcfd0e34fed3..5d867ea40b923e7fb7552934278fcd34126e215c 100644 (file)
@@ -1,5 +1,5 @@
-/* BFD back-end for Intel 386 COFF files (go32 variant with a stub).
-   Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
+/* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub).
+   Copyright 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    Written by Robert Hoehne.
 
    This file is part of BFD, the Binary File Descriptor library.
    Written by Robert Hoehne.
 
    This file is part of BFD, the Binary File Descriptor library.
 #define COFF_GO32_EXE
 #define COFF_LONG_SECTION_NAMES
 #define COFF_SUPPORT_GNU_LINKONCE
 #define COFF_GO32_EXE
 #define COFF_LONG_SECTION_NAMES
 #define COFF_SUPPORT_GNU_LINKONCE
+#define COFF_LONG_FILENAMES
 
 #define COFF_SECTION_ALIGNMENT_ENTRIES \
 { COFF_SECTION_NAME_EXACT_MATCH (".data"), \
   COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
 { COFF_SECTION_NAME_EXACT_MATCH (".text"), \
   COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
 
 #define COFF_SECTION_ALIGNMENT_ENTRIES \
 { COFF_SECTION_NAME_EXACT_MATCH (".data"), \
   COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
 { COFF_SECTION_NAME_EXACT_MATCH (".text"), \
   COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
-{ COFF_SECTION_NAME_EXACT_MATCH (".bss"), \
-  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
+  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi"), \
+  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
 
 #include "bfd.h"
 
 
 #include "bfd.h"
 
@@ -111,7 +114,7 @@ static boolean
 
 /* This macro is used, because I cannot assume the endianess of the
    host system */
 
 /* This macro is used, because I cannot assume the endianess of the
    host system */
-#define _H(index) (bfd_h_get_16(abfd, (bfd_byte *)(header+index*2)))
+#define _H(index) (H_GET_16 (abfd, (header+index*2)))
 
 /* These bytes are a 2048-byte DOS executable, which loads the COFF
    image into memory and then runs it. It is called 'stub' */
 
 /* These bytes are a 2048-byte DOS executable, which loads the COFF
    image into memory and then runs it. It is called 'stub' */
@@ -146,7 +149,7 @@ adjust_filehdr_in_post  (abfd, src, dst)
   ADJUST_VAL (filehdr_dst->f_symptr, STUBSIZE);
 
   /* Save now the stub to be used later */
   ADJUST_VAL (filehdr_dst->f_symptr, STUBSIZE);
 
   /* Save now the stub to be used later */
-  bfd_coff_go32stub (abfd) = (PTR) bfd_alloc (abfd, STUBSIZE);
+  bfd_coff_go32stub (abfd) = (PTR) bfd_alloc (abfd, (bfd_size_type) STUBSIZE);
 
   /* Since this function returns no status, I do not set here
      any bfd_error_...
 
   /* Since this function returns no status, I do not set here
      any bfd_error_...
@@ -309,7 +312,8 @@ create_go32_stub (abfd)
       int f;
       unsigned char header[10];
       char magic[8];
       int f;
       unsigned char header[10];
       char magic[8];
-      unsigned long coff_start, exe_start;
+      unsigned long coff_start;
+      long exe_start;
 
       /* Check at first the environment variable $(GO32STUB) */
       stub = getenv ("GO32STUB");
 
       /* Check at first the environment variable $(GO32STUB) */
       stub = getenv ("GO32STUB");
@@ -351,7 +355,7 @@ create_go32_stub (abfd)
          goto stub_end;
        }
       exe_start = _H (4) * 16;
          goto stub_end;
        }
       exe_start = _H (4) * 16;
-      if ((unsigned long) lseek (f, exe_start, SEEK_SET) != exe_start)
+      if ((long) lseek (f, exe_start, SEEK_SET) != exe_start)
        {
          close (f);
          goto stub_end;
        {
          close (f);
          goto stub_end;
@@ -367,7 +371,8 @@ create_go32_stub (abfd)
          goto stub_end;
        }
       /* Now we found a correct stub (hopefully) */
          goto stub_end;
        }
       /* Now we found a correct stub (hopefully) */
-      bfd_coff_go32stub (abfd) = (PTR) bfd_alloc (abfd, coff_start);
+      bfd_coff_go32stub (abfd)
+       = (PTR) bfd_alloc (abfd, (bfd_size_type) coff_start);
       if (bfd_coff_go32stub (abfd) == NULL)
        {
          close (f);
       if (bfd_coff_go32stub (abfd) == NULL)
        {
          close (f);
@@ -387,7 +392,8 @@ stub_end:
      stub */
   if (bfd_coff_go32stub (abfd) == NULL)
     {
      stub */
   if (bfd_coff_go32stub (abfd) == NULL)
     {
-      bfd_coff_go32stub (abfd) = (PTR) bfd_alloc (abfd, STUBSIZE);
+      bfd_coff_go32stub (abfd)
+       = (PTR) bfd_alloc (abfd, (bfd_size_type) STUBSIZE);
       if (bfd_coff_go32stub (abfd) == NULL)
        {
          return;
       if (bfd_coff_go32stub (abfd) == NULL)
        {
          return;
This page took 0.024575 seconds and 4 git commands to generate.