Browse Source

Support thin archive member for LTO.

2011-09-15  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	PR ld/13183
	* ldmain.c (add_archive_element): Support thin archive member
	for LTO.
binutils-2_22-branch
H.J. Lu 15 years ago
parent
commit
2b7e430865
  1. 6
      ld/ChangeLog
  2. 10
      ld/ldmain.c

6
ld/ChangeLog

@ -1,3 +1,9 @@
2011-09-15 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
PR ld/13183
* ldmain.c (add_archive_element): Support thin archive member
for LTO.
2011-08-26 Nick Clifton <nickc@redhat.com>
* po/es.po: Updated Spanish translation.

10
ld/ldmain.c

@ -808,12 +808,12 @@ add_archive_element (struct bfd_link_info *info,
BFD, but we still want to output the original BFD filename. */
orig_input = *input;
#ifdef ENABLE_PLUGINS
if (bfd_my_archive (abfd) != NULL
&& plugin_active_plugins_p ()
&& !no_more_claiming)
if (plugin_active_plugins_p () && !no_more_claiming)
{
/* We must offer this archive member to the plugins to claim. */
int fd = open (bfd_my_archive (abfd)->filename, O_RDONLY | O_BINARY);
const char *filename = (bfd_my_archive (abfd) != NULL
? bfd_my_archive (abfd)->filename : abfd->filename);
int fd = open (filename, O_RDONLY | O_BINARY);
if (fd >= 0)
{
struct ld_plugin_input_file file;
@ -822,7 +822,7 @@ add_archive_element (struct bfd_link_info *info,
member, not the whole file, and must exclude the header.
Fortunately for us, that is how the data is stored in the
origin field of the bfd and in the arelt_data. */
file.name = bfd_my_archive (abfd)->filename;
file.name = filename;
file.offset = abfd->origin;
file.filesize = arelt_size (abfd);
file.fd = fd;

Loading…
Cancel
Save