This is the mail archive of the binutils-cvs@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]

[binutils-gdb] Add a testcase for PR ld/17973


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f58926a652e71cc4809758c693ff005d9fdc46e1

commit f58926a652e71cc4809758c693ff005d9fdc46e1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Feb 14 05:45:08 2015 -0800

    Add a testcase for PR ld/17973
    
    ld/
    
    	PR ld/17973
    	* testplug2.c (allsymbolsread_silent): New.
    	(set_register_hook): Handle allsymbolsreadsilent.
    	(onall_symbols_read): Skip a message if allsymbolsread_silent is
    	TRUE.
    
    ld/testsuite/
    
    	PR ld/17973
    	* ld-plugin/plugin.exp (regassilent): New.
    	Compile tmpdir/dummy.s and ld-plugin/pr17973.s.
    	(plugin_tests): Add a test for PR ld/17973.
    	* ld-plugin/pr17973.d: New file.
    	* ld-plugin/pr17973.s: Likewise.

Diff:
---
 ld/ChangeLog                      | 8 ++++++++
 ld/testplug2.c                    | 9 ++++++++-
 ld/testsuite/ChangeLog            | 9 +++++++++
 ld/testsuite/ld-plugin/plugin.exp | 8 +++++++-
 ld/testsuite/ld-plugin/pr17973.d  | 4 ++++
 ld/testsuite/ld-plugin/pr17973.s  | 3 +++
 6 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4803ec3..43cf4e8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,11 @@
+2015-02-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/17973
+	* testplug2.c (allsymbolsread_silent): New.
+	(set_register_hook): Handle allsymbolsreadsilent.
+	(onall_symbols_read): Skip a message if allsymbolsread_silent is
+	TRUE.
+
 2015-02-14  Alan Modra  <amodra@gmail.com>
 
 	PR ld/17973
diff --git a/ld/testplug2.c b/ld/testplug2.c
index 10f0efb..9b93dd8 100644
--- a/ld/testplug2.c
+++ b/ld/testplug2.c
@@ -125,6 +125,7 @@ static bfd_boolean register_claimfile_hook = TRUE;
 static bfd_boolean register_allsymbolsread_hook = FALSE;
 static bfd_boolean register_cleanup_hook = FALSE;
 static bfd_boolean dumpresolutions = FALSE;
+static bfd_boolean allsymbolsread_silent = FALSE;
 
 /* The master list of all claimable/claimed files.  */
 static claim_file_t *claimfiles_list = NULL;
@@ -307,6 +308,11 @@ set_register_hook (const char *whichhook, bfd_boolean yesno)
     register_claimfile_hook = yesno;
   else if (!strcmp ("allsymbolsread", whichhook))
     register_allsymbolsread_hook = yesno;
+  else if (!strcmp ("allsymbolsreadsilent", whichhook))
+    {
+      register_allsymbolsread_hook = yesno;
+      allsymbolsread_silent = TRUE;
+    }
   else if (!strcmp ("cleanup", whichhook))
     register_cleanup_hook = yesno;
   else
@@ -573,7 +579,8 @@ onall_symbols_read (void)
   char buffer[30];
   int fd;
   char *filename;
-  TV_MESSAGE (LDPL_INFO, "hook called: all symbols read.");
+  if (! allsymbolsread_silent)
+    TV_MESSAGE (LDPL_INFO, "hook called: all symbols read.");
   for ( ; claimfile; claimfile = claimfile->next)
     {
       enum ld_plugin_status rv;
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index af5b544..42ed492 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/17973
+	* ld-plugin/plugin.exp (regassilent): New.
+	Compile tmpdir/dummy.s and ld-plugin/pr17973.s.
+	(plugin_tests): Add a test for PR ld/17973.
+	* ld-plugin/pr17973.d: New file.
+	* ld-plugin/pr17973.s: Likewise.
+
 2015-02-12  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* ld-i386/i386.exp: Replace elf_i386 with elf_i386_nacl for nacl.
diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp
index 35b7bbe..b6007eb 100644
--- a/ld/testsuite/ld-plugin/plugin.exp
+++ b/ld/testsuite/ld-plugin/plugin.exp
@@ -66,6 +66,7 @@ verbose "Full plugin3 path $plugin3_path" 2
 
 set regclm "-plugin-opt registerclaimfile"
 set regas "-plugin-opt registerallsymbolsread"
+set regassilent "-plugin-opt registerallsymbolsreadsilent"
 set regcln "-plugin-opt registercleanup"
 
 if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] || [istarget m9s12x*-*-*] } {
@@ -85,7 +86,9 @@ set plugin_nm_output ""
 if { $can_compile && \
 	(![ld_compile "$CC $CFLAGS" $srcdir/$subdir/main.c tmpdir/main.o] \
 	|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/func.c tmpdir/func.o] \
-	|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/text.c tmpdir/text.o]) } {
+	|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/text.c tmpdir/text.o] \
+	|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/dummy.s tmpdir/dummy.o] \
+	|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/pr17973.s tmpdir/pr17973.o]) } {
     # Defer fail until we have list of tests set.
     set failed_compile 1
 }
@@ -174,6 +177,9 @@ set plugin_tests [list \
     $testobjfiles $libs" "" "" "" {{ld plugin-28.d}} "main.x" ] \
     [list "plugin warning" "-plugin $plugin2_path -plugin-opt warning \
     $testobjfiles $libs" "" "" "" {{ld plugin-29.d}} "main.x" ] \
+    [list "PR ld/17973" "-plugin $plugin2_path -shared $regassilent \
+			-plugin-opt add:tmpdir/pr17973.o \
+    tmpdir/dummy.o" "" "" "" {{readelf -sW pr17973.d}} "main.x" ] \
 ]
 
 set plugin_lib_tests [list \
diff --git a/ld/testsuite/ld-plugin/pr17973.d b/ld/testsuite/ld-plugin/pr17973.d
new file mode 100644
index 0000000..85c849a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr17973.d
@@ -0,0 +1,4 @@
+#failif
+#...
+.*0+ +FILE +LOCAL +DEFAULT +ABS tmpdir/pr17973.o
+#...
diff --git a/ld/testsuite/ld-plugin/pr17973.s b/ld/testsuite/ld-plugin/pr17973.s
new file mode 100644
index 0000000..77c5c8a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr17973.s
@@ -0,0 +1,3 @@
+	.data
+foo:
+	.dc.a bar


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