2012-04-17 Tristan Gingold <gingold@adacore.com>

* vms-lib.c (_bfd_vms_lib_get_module): Append .obj extension to
	member of an object archive.<
This commit is contained in:
Tristan Gingold 2012-04-17 10:51:07 +00:00
parent d22260241b
commit da03bf4d5b
2 changed files with 25 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-04-17 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_get_module): Append .obj extension to
member of an object archive.<
2012-04-17 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (MAX_EKEYLEN): Define.

View File

@ -1296,6 +1296,7 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
struct lib_tdata *tdata = bfd_libdata (abfd);
bfd *res;
file_ptr file_off;
char *name;
/* Sanity check. */
if (modidx >= tdata->nbr_modules)
@ -1357,7 +1358,25 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
res->origin = file_off + tdata->mhd_size;
}
res->filename = tdata->modules[modidx].name;
/* Set filename. */
name = tdata->modules[modidx].name;
switch (tdata->type)
{
case LBR__C_TYP_IOBJ:
case LBR__C_TYP_EOBJ:
/* For object archives, append .obj to mimic standard behaviour. */
{
size_t namelen = strlen (name);
char *name1 = bfd_alloc (res, namelen + 4 + 1);
memcpy (name1, name, namelen);
strcpy (name1 + namelen, ".obj");
name = name1;
}
break;
default:
break;
}
res->filename = name;
tdata->cache[modidx] = res;