/* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
EVAX (openVMS/Alpha) files.
- Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Free Software Foundation, Inc.
HDR record handling functions
EMH record handling functions
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-#include <ctype.h>
-
#include "bfd.h"
+#include "bfdver.h"
#include "sysdep.h"
#include "bfdlink.h"
+#include "safe-ctype.h"
#include "libbfd.h"
#include "vms.h"
-/*---------------------------------------------------------------------------*/
+#ifdef HAVE_ALLOCA_H
+#include <alloca.h>
+#endif
+static unsigned char *get_vms_time_string PARAMS ((void));
+
+
+/*---------------------------------------------------------------------------*/
/* Read & process emh record
return 0 on success, -1 on error */
return 0;
}
-
/*-----------------------------------------------------------------------------*/
/* Output routines. */
-
-/* Manufacure a VMS like time on a unix based system.
+/* Manufacture a VMS like time on a unix based system.
stolen from obj-vms.c */
static unsigned char *
return tbuf;
}
-
/* write object header for bfd abfd */
int
int had_case = 0;
int had_file = 0;
-
#if VMS_DEBUG
vms_debug (2, "vms_write_hdr (%p)\n", abfd);
#endif
fptr = fout;
while (*fptr != 0)
{
- if (islower (*fptr))
- *fptr = toupper (*fptr);
+ *fptr = TOUPPER (*fptr);
fptr++;
if ((*fptr == ';')
|| ((fptr - fout) > 31))
else
_bfd_vms_output_counted (abfd, "NONAME");
- _bfd_vms_output_counted (abfd, BFD_VERSION);
+ _bfd_vms_output_counted (abfd, BFD_VERSION_STRING);
_bfd_vms_output_dump (abfd, get_vms_time_string (), 17);
_bfd_vms_output_fill (abfd, 0, 17);
_bfd_vms_output_flush (abfd);
continue;
}
- _bfd_vms_output_dump (abfd, (unsigned char *)symbol->name, strlen (symbol->name));
+ _bfd_vms_output_dump (abfd, (unsigned char *) symbol->name,
+ (int) strlen (symbol->name));
if (had_case)
break;
had_file = 1;
vms_rec = PRIV(vms_rec);
- if ((objtype == OBJ_S_C_EOM)
+ if ((objtype == OBJ_S_C_EOM)
|| (objtype == OBJ_S_C_EOMW))
{
}
bfd_set_error (bfd_error_bad_value);
return -1;
}
- PRIV(eom_data).eom_has_transfer = false;
+ PRIV(eom_data).eom_has_transfer = FALSE;
if (PRIV(rec_size) > 10)
{
- PRIV(eom_data).eom_has_transfer = true;
+ PRIV(eom_data).eom_has_transfer = TRUE;
PRIV(eom_data).eom_b_tfrflg = *(vms_rec + 9);
PRIV(eom_data).eom_l_psindx = bfd_getl32 (vms_rec + 12);
PRIV(eom_data).eom_l_tfradr = bfd_getl32 (vms_rec + 16);
return 0;
}
-
/* Write eom record for bfd abfd */
int
#endif
_bfd_vms_output_begin (abfd, objtype, -1);
- _bfd_vms_output_long (abfd, (unsigned long)(PRIV(vms_linkage_index) >> 1));
+ _bfd_vms_output_long (abfd, (unsigned long) (PRIV(vms_linkage_index) >> 1));
_bfd_vms_output_byte (abfd, 0); /* completion code */
_bfd_vms_output_byte (abfd, 0); /* fill byte */
return -1;
}
_bfd_vms_output_short (abfd, 0);
- _bfd_vms_output_long (abfd, (unsigned long)(section->index));
+ _bfd_vms_output_long (abfd, (unsigned long) (section->index));
_bfd_vms_output_long (abfd,
(unsigned long) bfd_get_start_address (abfd));
_bfd_vms_output_long (abfd, 0);