This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

get_symbol_v2 linker plugin interface


I have applied this obvious and straight-forward implementation of the
plugin get_symbols_v2 interface to mainline.  There are apparently
some issues yet to resolve in PR13329, but not in this code itself.

ld/
	PR ld/13229
	* plugin.c (tv_header_tags): Add LDPT_GET_SYMBOLS_V2.
	(set_tv_header): Handle it.  Adjust LDPT_GET_SYMBOLS.  Return void.
	(get_symbols): Add def_ironly_exp param.  Return that value for
	syms exported from shared libs.
	(get_symbols_v1, get_symbols_v2): New wrapper functions.
	* testplug.c: Update for above changes.
ld/testsuite/
	* ld-plugin/plugin-1.d, * ld-plugin/plugin-2.d, * ld-plugin/plugin-3.d,
	* ld-plugin/plugin-4.d, * ld-plugin/plugin-5.d, * ld-plugin/plugin-6.d,
	* ld-plugin/plugin-7.d, * ld-plugin/plugin-8.d, * ld-plugin/plugin-9.d,
	* ld-plugin/plugin-10.d, * ld-plugin/plugin-11.d: Update.

Index: ld/plugin.c
===================================================================
RCS file: /cvs/src/src/ld/plugin.c,v
retrieving revision 1.40
diff -u -p -r1.40 plugin.c
--- ld/plugin.c	16 Sep 2011 01:15:19 -0000	1.40
+++ ld/plugin.c	30 Sep 2011 04:00:50 -0000
@@ -116,6 +116,7 @@ static const enum ld_plugin_tag tv_heade
   LDPT_GET_INPUT_FILE,
   LDPT_RELEASE_INPUT_FILE,
   LDPT_GET_SYMBOLS,
+  LDPT_GET_SYMBOLS_V2,
   LDPT_ADD_INPUT_FILE,
   LDPT_ADD_INPUT_LIBRARY,
   LDPT_SET_EXTRA_LIBRARY_PATH
@@ -489,16 +490,19 @@ is_visible_from_outside (struct ld_plugi
 
 /* Get the symbol resolution info for a plugin-claimed input file.  */
 static enum ld_plugin_status
-get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms)
+get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
+	     int def_ironly_exp)
 {
   const bfd *abfd = handle;
   int n;
+
   ASSERT (called_plugin);
   for (n = 0; n < nsyms; n++)
     {
       struct bfd_link_hash_entry *blhe;
-      bfd_boolean ironly;
       asection *owner_sec;
+      int res;
+
       if (syms[n].def != LDPK_UNDEF)
 	blhe = bfd_link_hash_lookup (link_info.hash, syms[n].name,
 				     FALSE, FALSE, TRUE);
@@ -507,7 +511,7 @@ get_symbols (const void *handle, int nsy
 					     syms[n].name, FALSE, FALSE, TRUE);
       if (!blhe)
 	{
-	  syms[n].resolution = LDPR_UNKNOWN;
+	  res = LDPR_UNKNOWN;
 	  goto report_symbol;
 	}
 
@@ -515,7 +519,7 @@ get_symbols (const void *handle, int nsy
       if (blhe->type == bfd_link_hash_undefined
 	  || blhe->type == bfd_link_hash_undefweak)
 	{
-	  syms[n].resolution = LDPR_UNDEF;
+	  res = LDPR_UNDEF;
 	  goto report_symbol;
 	}
       if (blhe->type != bfd_link_hash_defined
@@ -534,12 +538,6 @@ get_symbols (const void *handle, int nsy
 		   ? blhe->u.c.p->section
 		   : blhe->u.def.section);
 
-      /* We need to know if the sym is referenced from non-IR files.  Or
-	 even potentially-referenced, perhaps in a future final link if
-	 this is a partial one, perhaps dynamically at load-time if the
-	 symbol is externally visible.  */
-      ironly = !(blhe->non_ir_ref
-		 || is_visible_from_outside (&syms[n], owner_sec, blhe));
 
       /* If it was originally undefined or common, then it has been
 	 resolved; determine how.  */
@@ -548,49 +546,67 @@ get_symbols (const void *handle, int nsy
 	  || syms[n].def == LDPK_COMMON)
 	{
 	  if (owner_sec->owner == link_info.output_bfd)
-	    syms[n].resolution = LDPR_RESOLVED_EXEC;
+	    res = LDPR_RESOLVED_EXEC;
 	  else if (owner_sec->owner == abfd)
-	    syms[n].resolution = (ironly
-				  ? LDPR_PREVAILING_DEF_IRONLY
-				  : LDPR_PREVAILING_DEF);
+	    res = LDPR_PREVAILING_DEF_IRONLY;
 	  else if (is_ir_dummy_bfd (owner_sec->owner))
-	    syms[n].resolution = LDPR_RESOLVED_IR;
+	    res = LDPR_RESOLVED_IR;
 	  else if (owner_sec->owner != NULL
 		   && (owner_sec->owner->flags & DYNAMIC) != 0)
-	    syms[n].resolution =  LDPR_RESOLVED_DYN;
+	    res = LDPR_RESOLVED_DYN;
 	  else
-	    syms[n].resolution = LDPR_RESOLVED_EXEC;
-	  goto report_symbol;
+	    res = LDPR_RESOLVED_EXEC;
 	}
 
       /* Was originally def, or weakdef.  Does it prevail?  If the
 	 owner is the original dummy bfd that supplied it, then this
 	 is the definition that has prevailed.  */
-      if (owner_sec->owner == link_info.output_bfd)
-	syms[n].resolution = LDPR_PREEMPTED_REG;
+      else if (owner_sec->owner == link_info.output_bfd)
+	res = LDPR_PREEMPTED_REG;
       else if (owner_sec->owner == abfd)
-	{
-	  syms[n].resolution = (ironly
-				? LDPR_PREVAILING_DEF_IRONLY
-				: LDPR_PREVAILING_DEF);
-	  goto report_symbol;
-	}
+	res = LDPR_PREVAILING_DEF_IRONLY;
 
       /* Was originally def, weakdef, or common, but has been pre-empted.  */
-      syms[n].resolution = (is_ir_dummy_bfd (owner_sec->owner)
-			    ? LDPR_PREEMPTED_IR
-			    : LDPR_PREEMPTED_REG);
+      else if (is_ir_dummy_bfd (owner_sec->owner))
+	res = LDPR_PREEMPTED_IR;
+      else
+	res = LDPR_PREEMPTED_REG;
+
+      if (res == LDPR_PREVAILING_DEF_IRONLY)
+	{
+	  /* We need to know if the sym is referenced from non-IR files.  Or
+	     even potentially-referenced, perhaps in a future final link if
+	     this is a partial one, perhaps dynamically at load-time if the
+	     symbol is externally visible.  */
+	  if (blhe->non_ir_ref)
+	    res = LDPR_PREVAILING_DEF;
+	  else if (is_visible_from_outside (&syms[n], owner_sec, blhe))
+	    res = def_ironly_exp;
+	}
 
     report_symbol:
+      syms[n].resolution = res;
       if (report_plugin_symbols)
 	einfo (_("%P: %B: symbol `%s' "
 		 "definition: %d, visibility: %d, resolution: %d\n"),
 	       abfd, syms[n].name,
-	       syms[n].def, syms[n].visibility, syms[n].resolution);
+	       syms[n].def, syms[n].visibility, res);
     }
   return LDPS_OK;
 }
 
+static enum ld_plugin_status
+get_symbols_v1 (const void *handle, int nsyms, struct ld_plugin_symbol *syms)
+{
+  return get_symbols (handle, nsyms, syms, LDPR_PREVAILING_DEF);
+}
+
+static enum ld_plugin_status
+get_symbols_v2 (const void *handle, int nsyms, struct ld_plugin_symbol *syms)
+{
+  return get_symbols (handle, nsyms, syms, LDPR_PREVAILING_DEF_IRONLY_EXP);
+}
+
 /* Add a new (real) input file generated by a plugin.  */
 static enum ld_plugin_status
 add_input_file (const char *pathname)
@@ -658,7 +674,7 @@ message (int level, const char *format, 
 }
 
 /* Helper to size leading part of tv array and set it up. */
-static size_t
+static void
 set_tv_header (struct ld_plugin_tv *tv)
 {
   size_t i;
@@ -667,9 +683,6 @@ set_tv_header (struct ld_plugin_tv *tv)
   static const unsigned int major = (unsigned)(BFD_VERSION / 100000000UL);
   static const unsigned int minor = (unsigned)(BFD_VERSION / 1000000UL) % 100;
 
-  if (!tv)
-    return tv_header_size;
-
   for (i = 0; i < tv_header_size; i++)
     {
       tv[i].tv_tag = tv_header_tags[i];
@@ -712,7 +725,10 @@ set_tv_header (struct ld_plugin_tv *tv)
 	  TVU(release_input_file) = release_input_file;
 	  break;
 	case LDPT_GET_SYMBOLS:
-	  TVU(get_symbols) = get_symbols;
+	  TVU(get_symbols) = get_symbols_v1;
+	  break;
+	case LDPT_GET_SYMBOLS_V2:
+	  TVU(get_symbols) = get_symbols_v2;
 	  break;
 	case LDPT_ADD_INPUT_FILE:
 	  TVU(add_input_file) = add_input_file;
@@ -730,7 +746,6 @@ set_tv_header (struct ld_plugin_tv *tv)
 	}
 #undef TVU
     }
-  return tv_header_size;
 }
 
 /* Append the per-plugin args list and trailing LDPT_NULL to tv.  */
Index: ld/testplug.c
===================================================================
RCS file: /cvs/src/src/ld/testplug.c,v
retrieving revision 1.4
diff -u -p -r1.4 testplug.c
--- ld/testplug.c	1 Mar 2011 22:55:35 -0000	1.4
+++ ld/testplug.c	30 Sep 2011 04:00:50 -0000
@@ -83,6 +83,7 @@ static const tag_name_t tag_names[] =
   ADDENTRY(LDPT_REGISTER_CLEANUP_HOOK),
   ADDENTRY(LDPT_ADD_SYMBOLS),
   ADDENTRY(LDPT_GET_SYMBOLS),
+  ADDENTRY(LDPT_GET_SYMBOLS_V2),
   ADDENTRY(LDPT_ADD_INPUT_FILE),
   ADDENTRY(LDPT_MESSAGE),
   ADDENTRY(LDPT_GET_INPUT_FILE),
@@ -99,6 +100,7 @@ static ld_plugin_register_all_symbols_re
 static ld_plugin_register_cleanup tv_register_cleanup = 0;
 static ld_plugin_add_symbols tv_add_symbols = 0;
 static ld_plugin_get_symbols tv_get_symbols = 0;
+static ld_plugin_get_symbols tv_get_symbols_v2 = 0;
 static ld_plugin_add_input_file tv_add_input_file = 0;
 static ld_plugin_message tv_message = 0;
 static ld_plugin_get_input_file tv_get_input_file = 0;
@@ -361,6 +363,7 @@ dump_tv_tag (size_t n, struct ld_plugin_
       case LDPT_REGISTER_CLEANUP_HOOK:
       case LDPT_ADD_SYMBOLS:
       case LDPT_GET_SYMBOLS:
+      case LDPT_GET_SYMBOLS_V2:
       case LDPT_ADD_INPUT_FILE:
       case LDPT_MESSAGE:
       case LDPT_GET_INPUT_FILE:
@@ -418,6 +421,9 @@ parse_tv_tag (struct ld_plugin_tv *tv)
       case LDPT_GET_SYMBOLS:
 	SETVAR(tv_get_symbols);
 	break;
+      case LDPT_GET_SYMBOLS_V2:
+	tv_get_symbols_v2 = tv->tv_u.tv_get_symbols;
+	break;
       case LDPT_ADD_INPUT_FILE:
 	SETVAR(tv_add_input_file);
 	break;
@@ -562,6 +568,7 @@ onall_symbols_read (void)
       "LDPR_RESOLVED_IR",
       "LDPR_RESOLVED_EXEC",
       "LDPR_RESOLVED_DYN",
+      "LDPR_PREVAILING_DEF_IRONLY_EXP",
     };
   claim_file_t *claimfile = dumpresolutions ? claimfiles_list : NULL;
   add_file_t *addfile = addfiles_list;
@@ -570,12 +577,12 @@ onall_symbols_read (void)
     {
       enum ld_plugin_status rv;
       int n;
-      if (claimfile->n_syms_used && !tv_get_symbols)
+      if (claimfile->n_syms_used && !tv_get_symbols_v2)
 	return LDPS_ERR;
       else if (!claimfile->n_syms_used)
         continue;
-      rv = tv_get_symbols (claimfile->file.handle, claimfile->n_syms_used,
-				claimfile->symbols);
+      rv = tv_get_symbols_v2 (claimfile->file.handle, claimfile->n_syms_used,
+			      claimfile->symbols);
       if (rv != LDPS_OK)
 	return rv;
       for (n = 0; n < claimfile->n_syms_used; n++)
Index: ld/testsuite/ld-plugin/plugin-1.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-1.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-1.d
--- ld/testsuite/ld-plugin/plugin-1.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-1.d	30 Sep 2011 04:00:53 -0000
@@ -1,18 +1,19 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_NULL value        0x0 \(0\)
 #...
Index: ld/testsuite/ld-plugin/plugin-10.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-10.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-10.d
--- ld/testsuite/ld-plugin/plugin-10.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-10.d	30 Sep 2011 04:00:53 -0000
@@ -1,28 +1,29 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_OPTION 'sym:_?func::0:0:0'
-tv\[20\]: LDPT_OPTION 'sym:_?func2::0:0:0'
-tv\[21\]: LDPT_OPTION 'dumpresolutions'
-tv\[22\]: LDPT_OPTION 'add:tmpdir/func.o'
-tv\[23\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_OPTION 'sym:_?func::0:0:0'
+.*: LDPT_OPTION 'sym:_?func2::0:0:0'
+.*: LDPT_OPTION 'dumpresolutions'
+.*: LDPT_OPTION 'add:tmpdir/func.o'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
Index: ld/testsuite/ld-plugin/plugin-11.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-11.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-11.d
--- ld/testsuite/ld-plugin/plugin-11.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-11.d	30 Sep 2011 04:00:53 -0000
@@ -1,31 +1,32 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_OPTION 'sym:_?func::0:0:0'
-tv\[20\]: LDPT_OPTION 'sym:_?func2::0:0:0'
-tv\[21\]: LDPT_OPTION 'dumpresolutions'
-tv\[22\]: LDPT_OPTION 'add:tmpdir/func.o'
-tv\[23\]: LDPT_OPTION 'claim:tmpdir/libtext.a'
-tv\[24\]: LDPT_OPTION 'sym:_?text::0:0:0'
-tv\[25\]: LDPT_OPTION 'add:tmpdir/text.o'
-tv\[26\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_OPTION 'sym:_?func::0:0:0'
+.*: LDPT_OPTION 'sym:_?func2::0:0:0'
+.*: LDPT_OPTION 'dumpresolutions'
+.*: LDPT_OPTION 'add:tmpdir/func.o'
+.*: LDPT_OPTION 'claim:tmpdir/libtext.a'
+.*: LDPT_OPTION 'sym:_?text::0:0:0'
+.*: LDPT_OPTION 'add:tmpdir/text.o'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
Index: ld/testsuite/ld-plugin/plugin-2.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-2.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-2.d
--- ld/testsuite/ld-plugin/plugin-2.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-2.d	30 Sep 2011 04:00:53 -0000
@@ -1,21 +1,22 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'failonload'
-tv\[16\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'failonload'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 .*ld.*:.*ldtestplug.*: error loading plugin
 #...
Index: ld/testsuite/ld-plugin/plugin-3.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-3.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-3.d
--- ld/testsuite/ld-plugin/plugin-3.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-3.d	30 Sep 2011 04:00:53 -0000
@@ -1,22 +1,23 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[16\]: LDPT_OPTION 'failallsymbolsread'
-tv\[17\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'failallsymbolsread'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 .*ld.*:.*ldtestplug.*: plugin reported error after all symbols read
 #...
Index: ld/testsuite/ld-plugin/plugin-4.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-4.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-4.d
--- ld/testsuite/ld-plugin/plugin-4.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-4.d	30 Sep 2011 04:00:53 -0000
@@ -1,22 +1,23 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'failcleanup'
-tv\[16\]: LDPT_OPTION 'registercleanup'
-tv\[17\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'failcleanup'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: cleanup.
 .*ld.*:.*ldtestplug.*: error in plugin cleanup \(ignored\)
Index: ld/testsuite/ld-plugin/plugin-5.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-5.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-5.d
--- ld/testsuite/ld-plugin/plugin-5.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-5.d	30 Sep 2011 04:00:53 -0000
@@ -1,23 +1,24 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.*
 hook called: claim_file tmpdir/func.o \[@0/.*
Index: ld/testsuite/ld-plugin/plugin-6.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-6.d,v
retrieving revision 1.2
diff -u -p -r1.2 plugin-6.d
--- ld/testsuite/ld-plugin/plugin-6.d	6 Nov 2010 10:47:32 -0000	1.2
+++ ld/testsuite/ld-plugin/plugin-6.d	30 Sep 2011 04:00:53 -0000
@@ -1,24 +1,25 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
Index: ld/testsuite/ld-plugin/plugin-7.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-7.d,v
retrieving revision 1.4
diff -u -p -r1.4 plugin-7.d
--- ld/testsuite/ld-plugin/plugin-7.d	7 May 2011 14:29:09 -0000	1.4
+++ ld/testsuite/ld-plugin/plugin-7.d	30 Sep 2011 04:00:53 -0000
@@ -1,25 +1,26 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_OPTION 'sym:_?func::0:0:0'
-tv\[20\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_OPTION 'sym:_?func::0:0:0'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
Index: ld/testsuite/ld-plugin/plugin-8.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-8.d,v
retrieving revision 1.4
diff -u -p -r1.4 plugin-8.d
--- ld/testsuite/ld-plugin/plugin-8.d	7 May 2011 14:29:09 -0000	1.4
+++ ld/testsuite/ld-plugin/plugin-8.d	30 Sep 2011 04:00:53 -0000
@@ -1,27 +1,28 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_OPTION 'sym:_?func::0:0:0'
-tv\[20\]: LDPT_OPTION 'sym:_?func2::0:0:0'
-tv\[21\]: LDPT_OPTION 'dumpresolutions'
-tv\[22\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_OPTION 'sym:_?func::0:0:0'
+.*: LDPT_OPTION 'sym:_?func2::0:0:0'
+.*: LDPT_OPTION 'dumpresolutions'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
Index: ld/testsuite/ld-plugin/plugin-9.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-plugin/plugin-9.d,v
retrieving revision 1.1
diff -u -p -r1.1 plugin-9.d
--- ld/testsuite/ld-plugin/plugin-9.d	14 Oct 2010 01:31:33 -0000	1.1
+++ ld/testsuite/ld-plugin/plugin-9.d	30 Sep 2011 04:00:53 -0000
@@ -1,28 +1,29 @@
 Hello from testplugin.
-tv\[0\]: LDPT_MESSAGE func@0x.*
-tv\[1\]: LDPT_API_VERSION value        0x1 \(1\)
-tv\[2\]: LDPT_GNU_LD_VERSION value       0x.*
-tv\[3\]: LDPT_LINKER_OUTPUT value        0x1 \(1\)
-tv\[4\]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
-tv\[5\]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
-tv\[6\]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
-tv\[7\]: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
-tv\[8\]: LDPT_ADD_SYMBOLS func@0x.*
-tv\[9\]: LDPT_GET_INPUT_FILE func@0x.*
-tv\[10\]: LDPT_RELEASE_INPUT_FILE func@0x.*
-tv\[11\]: LDPT_GET_SYMBOLS func@0x.*
-tv\[12\]: LDPT_ADD_INPUT_FILE func@0x.*
-tv\[13\]: LDPT_ADD_INPUT_LIBRARY func@0x.*
-tv\[14\]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
-tv\[15\]: LDPT_OPTION 'registerclaimfile'
-tv\[16\]: LDPT_OPTION 'registerallsymbolsread'
-tv\[17\]: LDPT_OPTION 'registercleanup'
-tv\[18\]: LDPT_OPTION 'claim:tmpdir/func.o'
-tv\[19\]: LDPT_OPTION 'sym:_?func::0:0:0'
-tv\[20\]: LDPT_OPTION 'sym:_?func2::0:0:0'
-tv\[21\]: LDPT_OPTION 'dumpresolutions'
-tv\[22\]: LDPT_OPTION 'add:tmpdir/func.o'
-tv\[23\]: LDPT_NULL value        0x0 \(0\)
+.*: LDPT_MESSAGE func@0x.*
+.*: LDPT_API_VERSION value        0x1 \(1\)
+.*: LDPT_GNU_LD_VERSION value       0x.*
+.*: LDPT_LINKER_OUTPUT value        0x1 \(1\)
+.*: LDPT_OUTPUT_NAME 'tmpdir/main.x'
+.*: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x.*
+.*: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x.*
+.*: LDPT_REGISTER_CLEANUP_HOOK func@0x.*
+.*: LDPT_ADD_SYMBOLS func@0x.*
+.*: LDPT_GET_INPUT_FILE func@0x.*
+.*: LDPT_RELEASE_INPUT_FILE func@0x.*
+.*: LDPT_GET_SYMBOLS func@0x.*
+.*: LDPT_GET_SYMBOLS_V2 func@0x.*
+.*: LDPT_ADD_INPUT_FILE func@0x.*
+.*: LDPT_ADD_INPUT_LIBRARY func@0x.*
+.*: LDPT_SET_EXTRA_LIBRARY_PATH func@0x.*
+.*: LDPT_OPTION 'registerclaimfile'
+.*: LDPT_OPTION 'registerallsymbolsread'
+.*: LDPT_OPTION 'registercleanup'
+.*: LDPT_OPTION 'claim:tmpdir/func.o'
+.*: LDPT_OPTION 'sym:_?func::0:0:0'
+.*: LDPT_OPTION 'sym:_?func2::0:0:0'
+.*: LDPT_OPTION 'dumpresolutions'
+.*: LDPT_OPTION 'add:tmpdir/func.o'
+.*: LDPT_NULL value        0x0 \(0\)
 #...
 hook called: claim_file tmpdir/main.o \[@0/.* not claimed
 hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]