(&link_info, member, "-whole-archive")))
(&link_info, member, "--whole-archive")))
load_symbols (entry, place)     lang_input_statement_type *entry;     lang_statement_list_type *place;{  char **matching;  if (entry->loaded)    return;  ldfile_open_file (entry);  if (! bfd_check_format (entry->the_bfd, bfd_archive)      && ! bfd_check_format_matches (entry->the_bfd, bfd_object, &matching))    {      bfd_error_type err;      lang_statement_list_type *hold;      err = bfd_get_error ();      if (err == bfd_error_file_ambiguously_recognized)	{	  char **p;	  einfo ("%B: file not recognized: %E\n", entry->the_bfd);	  einfo ("%B: matching formats:", entry->the_bfd);	  for (p = matching; *p != NULL; p++)	    einfo (" %s", *p);	  einfo ("%F\n");	}      else if (err != bfd_error_file_not_recognized	       || place == NULL)	einfo ("%F%B: file not recognized: %E\n", entry->the_bfd);      /* Try to interpret the file as a linker script.  */      bfd_close (entry->the_bfd);      entry->the_bfd = NULL;      ldfile_open_command_file (entry->filename);      hold = stat_ptr;      stat_ptr = place;      ldfile_assumed_script = true;      parser_input = input_script;      yyparse ();      ldfile_assumed_script = false;      stat_ptr = hold;      return;    }  /* We don't call ldlang_add_file for an archive.  Instead, the     add_symbols entry point will call ldlang_add_file, via the     add_archive_element callback, for each element of the archive     which is used.  */  switch (bfd_get_format (entry->the_bfd))    {    default:      break;    case bfd_object:      ldlang_add_file (entry);      if (trace_files || trace_file_tries)	info_msg ("%I\n", entry);      break;    case bfd_archive:      if (whole_archive)	{	  bfd *member = bfd_openr_next_archived_file (entry->the_bfd,						      (bfd *) NULL);	  while (member != NULL)	    {	      if (! bfd_check_format (member, bfd_object))		einfo ("%F%B: object %B in archive is not object\n",		       entry->the_bfd, member);	      if (! ((*link_info.callbacks->add_archive_element)		     (&link_info, member, "-whole-archive")))		abort ();	      if (! bfd_link_add_symbols (member, &link_info))		einfo ("%F%B: could not read symbols: %E\n", member);	      member = bfd_openr_next_archived_file (entry->the_bfd,						     member);	    }	  entry->loaded = true;	  return;	}    }  if (! bfd_link_add_symbols (entry->the_bfd, &link_info))    einfo ("%F%B: could not read symbols: %E\n", entry->the_bfd);  entry->loaded = true;}