[GOLD] debug_msg test

Cary Coutant ccoutant@google.com
Tue Apr 16 22:29:00 GMT 2013


>>> First, I think it would be simpler to set DEFAULT_TARGET in
>>> configure.ac and AC_SUBST it in configure.ac.  After the
>>> AM_CONDITIONAL lines setting DEFAULT_TARGET_ARM and friends:
>>>     DEFAULT_TARGET=${targ_obj}
>>>     AC_SUBST(DEFAULT_TARGET)
>>>
>>> Then after you run autoreconf DEFAULT_TARGET will be set in
>>> testsuite/Makefile.am.
>>>
>>> To get it into the environment, add this to testsuite/Makefile.am:
>>>
>>> .EXPORT_ALL_VARIABLES:

Here's an updated patch. I've verified that it *does* run the check
for undef_int on x86_64, and that it actually does see the right value
for $DEFAULT_TARGET. Alan, can you double-check this on PPC?

-cary


gold/
    * configure.ac: Export DEFAULT_TARGET.
    * configure: Regenerate.
    * Makefile.in: Regenerate.
    * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES.
    * testsuite/Makefile.in: Regenerate.
    * testsuite/debug_msg.sh: Delete duplicate tests.
    Don't check undef_int error message match for powerpc where the
    source file and line number aren't available.
-------------- next part --------------
commit e2e1a6d9838775740c547eb4d66ad2f8a7f75c4c
Author: Cary Coutant <ccoutant@google.com>
Date:   Tue Apr 16 15:24:16 2013 -0700

    Don't run unsupported check in debug_msg.sh on ppc.
    
    gold/
    	* configure.ac: Export DEFAULT_TARGET.
    	* configure: Regenerate.
    	* Makefile.in: Regenerate.
    	* testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES.
    	* testsuite/Makefile.in: Regenerate.
    	* testsuite/debug_msg.sh: Delete duplicate tests.
    	Don't check undef_int error message match for powerpc where the
    	source file and line number aren't available.

diff --git a/gold/configure.ac b/gold/configure.ac
index b03c09d..e3e10b3 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -206,6 +206,8 @@ for targ in $target $canon_targets; do
 	AM_CONDITIONAL(DEFAULT_TARGET_SPARC, test "$targ_obj" = "sparc")
 	AM_CONDITIONAL(DEFAULT_TARGET_X86_64, test "$targ_obj" = "x86_64")
 	AM_CONDITIONAL(DEFAULT_TARGET_TILEGX, test "$targ_obj" = "tilegx")
+	DEFAULT_TARGET=${targ_obj}
+	AC_SUBST(DEFAULT_TARGET)
       fi
     fi
   fi
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index 4d02925..b05b1cf 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -53,26 +53,6 @@ TEST_AR = $(top_builddir)/../binutils/ar
 TEST_NM = $(top_builddir)/../binutils/nm-new
 TEST_AS = $(top_builddir)/../gas/as-new
 
-# Make the default target available to scripts as $DEFAULT_TARGET.
-if DEFAULT_TARGET_ARM
-export DEFAULT_TARGET = arm
-endif
-if DEFAULT_TARGET_I386
-export DEFAULT_TARGET = i386
-endif
-if DEFAULT_TARGET_POWERPC
-export DEFAULT_TARGET = powerpc
-endif
-if DEFAULT_TARGET_SPARC
-export DEFAULT_TARGET = sparc
-endif
-if DEFAULT_TARGET_X86_64
-export DEFAULT_TARGET = x86_64
-endif
-if DEFAULT_TARGET_TILEGX
-export DEFAULT_TARGET = tilegx
-endif
-
 if PLUGINS
 LIBDL = -ldl
 endif
@@ -91,7 +71,10 @@ endif
 # the right choice for files 'make' builds that people rebuild.
 MOSTLYCLEANFILES = *.so *.syms *.stdout
 
-
+# Export make variables to the shell scripts so that they can see
+# (for example) DEFAULT_TARGET.
+.EXPORT_ALL_VARIABLES:
+ 
 # We will add to these later, for each individual test.  Note
 # that we add each test under check_SCRIPTS or check_PROGRAMS;
 # the TESTS variable is automatically populated from these.
diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh
index c0d03b3..8c10d31 100755
--- a/gold/testsuite/debug_msg.sh
+++ b/gold/testsuite/debug_msg.sh
@@ -66,10 +66,10 @@ check debug_msg.err ".*/debug_msg.cc:50: error: undefined reference to 'undef_fn
 check debug_msg.err ".*/debug_msg.cc:55: error: undefined reference to 'undef_fn2()'"
 check debug_msg.err ".*/debug_msg.cc:43: error: undefined reference to 'undef_fn1()'"
 check debug_msg.err ".*/debug_msg.cc:44: error: undefined reference to 'undef_fn2()'"
-check debug_msg.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
-check debug_msg.err ".*/debug_msg.cc:43: error: undefined reference to 'undef_fn1()'"
-check debug_msg.err ".*/debug_msg.cc:44: error: undefined reference to 'undef_fn2()'"
-check debug_msg.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
+if test "$DEFAULT_TARGET" != "powerpc"
+then
+  check debug_msg.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
+fi
 
 # Check we detected the ODR (One Definition Rule) violation.
 check debug_msg.err ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):"
@@ -100,10 +100,10 @@ then
   check debug_msg_cdebug.err ".*/debug_msg.cc:55: error: undefined reference to 'undef_fn2()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:43: error: undefined reference to 'undef_fn1()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:44: error: undefined reference to 'undef_fn2()'"
-  check debug_msg_cdebug.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
-  check debug_msg_cdebug.err ".*/debug_msg.cc:43: error: undefined reference to 'undef_fn1()'"
-  check debug_msg_cdebug.err ".*/debug_msg.cc:44: error: undefined reference to 'undef_fn2()'"
-  check debug_msg_cdebug.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
+  if test "$DEFAULT_TARGET" != "powerpc"
+  then
+    check debug_msg_cdebug.err ".*/debug_msg.cc:.*: error: undefined reference to 'undef_int'"
+  fi
   check debug_msg_cdebug.err ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):"
   check debug_msg_cdebug.err "odr_violation1.cc:6"
   check debug_msg_cdebug.err "odr_violation2.cc:12"


More information about the Binutils mailing list