Stop objcopy from attempting to copy thin archives.
PR 24281 * objcopy.c (copy_archive): Do not copy thin archives.
This commit is contained in:
parent
67490c6bad
commit
f5f2031511
@ -1,3 +1,8 @@
|
||||
2019-03-04 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 24281
|
||||
* objcopy.c (copy_archive): Do not copy thin archives.
|
||||
|
||||
2019-02-27 Matthew Malcomson <matthew.malcomson@arm.com>
|
||||
|
||||
* testsuite/lib/binutils-common.exp: Allow multiple "as" lines.
|
||||
|
@ -3276,6 +3276,27 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
|
||||
char *dir;
|
||||
const char *filename;
|
||||
|
||||
/* PR 24281: It is not clear what should happen when copying a thin archive.
|
||||
One part is straight forward - if the output archive is in a different
|
||||
directory from the input archive then any relative paths in the library
|
||||
should be adjusted to the new location. But if any transformation
|
||||
options are active (eg strip, rename, add, etc) then the implication is
|
||||
that these should be applied to the files pointed to by the archive.
|
||||
But since objcopy is not destructive, this means that new files must be
|
||||
created, and there is no guidance for the names of the new files. (Plus
|
||||
this conflicts with one of the goals of thin libraries - only taking up
|
||||
a minimal amount of space in the file system).
|
||||
|
||||
So for now we fail if an attempt is made to copy such libraries. */
|
||||
if (ibfd->is_thin_archive)
|
||||
{
|
||||
status = 1;
|
||||
bfd_set_error (bfd_error_invalid_operation);
|
||||
bfd_nonfatal_message (NULL, ibfd, NULL,
|
||||
_("sorry: copying thin archives is not currently supported"));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Make a temp directory to hold the contents. */
|
||||
dir = make_tempdir (bfd_get_filename (obfd));
|
||||
if (dir == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user