This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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]

Patch, sim: fix m68hc11 and iq2000 testsuites using dejagnu baseboard files


(I'll send a heads-up to the dejagnu list but I won't CC them
on this message as that list is subscriber-only, says
http://www.gnu.org/software/dejagnu/.)

All of a sudden (thanks to Mike) m68hc11 and iq2000 sims both
have test-suites, with a very welcome hello-world test.  But,
for people expecting that to work with the corresponding
supposedly-intended dejagnu baseboard, those tests fail linking.

For iq2000, iq2000-sim.exp has:
 # Special linker script needed to run C programs.
 set_board_info ldscript "-Tsim.ld"

but there's no sim.ld installed with today's binutils
which is all we require for running the sim testsuite.
(I see it's in libgloss.)

For m68hc11, there's a confusingly inconsistent comment and
setting:
 # No linker script needed.
 set_board_info ldscript "-Wl,--script,sim-valid.x"

I'm not sure where the .x suffix comes from; libgloss would
install a sim-valid.ld.  You might wonder how that gcc-specific
"-Wl,"-syntax is supposed to work with a plain linker call.  The
(IMHO) ugly truth is that default_link target.exp would strip a
"-Wl,"-prefix, but it doesn't take care to *also* replace ","
with " ", so I don't think that has ever worked with plain
linker calls; those that end up in default_link calls.

Locally eliminating ldscript probably seems ugly.  There's
precedent; see sim/testsuite/sim/mips/basic.exp.  An alternative
would be to automatically disabling it in the first call to
run_sim_test, but that seemed just too smart.

I'm going to install the following in a day or two, unless
someone has a better alternative (excluding "stop using the
broken {iq2000,m68hc11}-sim.exp" as I don't want the sim
testsuite to *require* different parameters to the other tools).

sim/testsuite/sim/m68hc11:
	* allinsn.exp: Disable baseboard ldscript variable.

sim/testsuite/sim/iq2000:
	* allinsn.exp: Disable baseboard ldscript variable.

diff --git a/sim/testsuite/sim/iq2000/allinsn.exp b/sim/testsuite/sim/iq2000/allinsn.exp
index 38eee9b..414b0f8 100644
--- a/sim/testsuite/sim/iq2000/allinsn.exp
+++ b/sim/testsuite/sim/iq2000/allinsn.exp
@@ -4,6 +4,14 @@ if [istarget iq2000-*] {
     # all machines
     set all_machs "iq2000"
 
+    # For people using the dejagnu iq2000-sim.exp baseboard, it
+    # (as of dejagnu post-1.5 2015-04-06 41070790) sets a ldscript
+    # variable requiring a script "sim.ld" which does not exist in a
+    # plain binutils installation of iq2000-elf; it's in libgloss.  So,
+    # as gross as it is, we locally unset the linker script specified by
+    # the target board.
+    unset_currtarget_info ldscript
+
     foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.s]] {
 	# If we're only testing specific files and this isn't one of them,
 	# skip it.
diff --git a/sim/testsuite/sim/m68hc11/allinsn.exp b/sim/testsuite/sim/m68hc11/allinsn.exp
index db0cbd5..88bbc34 100644
--- a/sim/testsuite/sim/m68hc11/allinsn.exp
+++ b/sim/testsuite/sim/m68hc11/allinsn.exp
@@ -4,6 +4,17 @@ if [istarget m68hc11-*] {
     # all machines
     set all_machs "m68hc11"
 
+    # For people using the dejagnu m68hc11-sim.exp baseboard, it
+    # (as of dejagnu post-1.5 2015-04-06 41070790) sets a ldscript
+    # variable requiring a script "sim-valid.x" which does not exist in a
+    # plain binutils installation of m68hc11-elf (there's a sim-valid.ld
+    # installed with libgloss), also, with a syntax which doesn't work
+    # for default_link (would require replacing "," with " " in addition
+    # to stripping the "-Wl,"-prefix).  So, as gross as it is, we keep
+    # it simple and just unset the linker script specified by the target
+    # board.
+    unset_currtarget_info ldscript
+
     foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.s]] {
 	# If we're only testing specific files and this isn't one of them,
 	# skip it.

brgds, H-P


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