mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
2010-04-01 Tristan Gingold <gingold@adacore.com>
* vms.h: Include time.h. Add prototypes for vms_get_module_name, vms_time_to_time_t and vms_rawtime_to_time_t. * vms.c (vms_alpha_vec): Add archives support. * vms-misc.c: Include safe-ctype.h (vms_get_module_name): New function. (vms_time_to_time_t, vms_rawtime_to_time_t): Ditto. * vms-hdr.c (_bfd_vms_write_hdr): Put module name creation to the vms_get_module_name function. Use this function. * targets.c: Declare vms_lib_txt_vec. Add it to _bfd_target_vector. * libbfd-in.h: Add prototype for _bfd_append_relative_path. Add prototypes for vms-lib.c * libbfd.h: Regenerate. * configure.in (TDEFINES): Add an entry for vms_lib_txt_vec. Add vms-lib.lo to vms_alpha_vec. * config.bfd (targ_cpu): Add targ_selvecs for alpha*-*-*vms*. * configure: Regenerate. * bfd.c: Add selective_search field. * bfd-in2.h: Regenerate. * archive.c (append_relative_path): Rename to _bfd_append_relative_path and make it public. (_bfd_get_elt_at_filepos): Adjust for above renaming. * Makefile.am (BFD32_BACKENDS): Add vms-lib.lo (BFD32_BACKENDS_CFILES): Add vms-lib.c * Makefile.in: Regenerate.
This commit is contained in:
@@ -237,43 +237,9 @@ _bfd_vms_write_hdr (bfd *abfd, int objtype)
|
||||
/* Create module name from filename. */
|
||||
if (bfd_get_filename (abfd) != 0)
|
||||
{
|
||||
/* Strip path and suffix information. */
|
||||
char *fname, *fout, *fptr;
|
||||
|
||||
fptr = bfd_get_filename (abfd);
|
||||
fname = strdup (fptr);
|
||||
|
||||
/* Strip VMS path. */
|
||||
fout = strrchr (fname, ']');
|
||||
if (fout == NULL)
|
||||
fout = strchr (fname, ':');
|
||||
if (fout != NULL)
|
||||
fout++;
|
||||
else
|
||||
fout = fname;
|
||||
|
||||
/* Strip UNIX path. */
|
||||
fptr = strrchr (fout, '/');
|
||||
if (fptr != NULL)
|
||||
fout = fptr + 1;
|
||||
|
||||
/* Strip suffix. */
|
||||
fptr = strrchr (fout, '.');
|
||||
if (fptr != 0)
|
||||
*fptr = 0;
|
||||
|
||||
/* Convert to upper case and truncate at 31 characters.
|
||||
(VMS object file format restricts module name length to 31). */
|
||||
fptr = fout;
|
||||
while (*fptr != 0)
|
||||
{
|
||||
*fptr = TOUPPER (*fptr);
|
||||
fptr++;
|
||||
if (*fptr == ';' || (fptr - fout) >= 31)
|
||||
*fptr = 0;
|
||||
}
|
||||
_bfd_vms_output_counted (abfd, fout);
|
||||
free (fname);
|
||||
char *module = vms_get_module_name (bfd_get_filename (abfd), TRUE);
|
||||
_bfd_vms_output_counted (abfd, module);
|
||||
free (module);
|
||||
}
|
||||
else
|
||||
_bfd_vms_output_counted (abfd, "NONAME");
|
||||
|
||||
Reference in New Issue
Block a user