aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Bachmeyer <jcb@gnu.org>2025-12-02 20:36:01 -0600
committerJacob Bachmeyer <jcb@gnu.org>2025-12-02 20:36:01 -0600
commit4ba510d2e585793cb722b72de0bc57dfb1145a61 (patch)
tree97d0264c9fe4eb3f1db8116a4fa6a7919af54c53
parentcc801fa28efb5787c4895c0570d6610e71344d93 (diff)
downloaddejagnu-master.zip
dejagnu-master.tar.gz
dejagnu-master.tar.bz2
Adjust H8 support to accommodate changes in GCCHEADmaster
-rw-r--r--ChangeLog3
-rw-r--r--baseboards/h8300-sim.exp7
-rw-r--r--baseboards/h8300.exp18
3 files changed, 13 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index b64b905..235125f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,8 @@
* baseboards/h8300.exp: Restore from Git history per a request
from Jan Dubiec. Apply updates "missed" while the file did not
exist: collect copyright years, tidy regsub(n) usage, and remove
- unconditional use of [find_gcc].
+ unconditional use of [find_gcc]. Apply minor patches suggested by
+ Jan Dubiec to accommodate GCC changes made in the meantime.
* baseboards/h8300-sim.exp: Likewise.
diff --git a/baseboards/h8300-sim.exp b/baseboards/h8300-sim.exp
index 8138cb9..a28fb92 100644
--- a/baseboards/h8300-sim.exp
+++ b/baseboards/h8300-sim.exp
@@ -16,7 +16,7 @@
# along with DejaGnu. If not, see <http://www.gnu.org/licenses/>.
# This is a list of toolchains that are supported on this board.
-set_board_info target_install {h8300-hms}
+set_board_info target_install {h8300-elf}
# Load the tool-specific configuration for this board, as well as the
# generic configuration. This will define any routines needed by the
@@ -26,7 +26,7 @@ load_generic_config "sim"
# basic-sim.exp is a basic description for the standard Cygnus simulator.
load_base_board_description "basic-sim"
-# The name of the simulator is "h8300" (as in h8300-hms-run).
+# The name of the simulator is "h8300" (as in h8300-elf-run).
setup_sim h8300
# No multilib options are used by default.
@@ -50,8 +50,5 @@ set_board_info gdb,noresults 1
set_board_info gcc,stack_size 4096
set_board_info gcc,text_size 60000
-# There's no long long support on this target
-set_board_info no_long_long 1
-
# sizeof int != sizeof long.
set_board_info gdb,short_int 1
diff --git a/baseboards/h8300.exp b/baseboards/h8300.exp
index dae8fee..2d52706 100644
--- a/baseboards/h8300.exp
+++ b/baseboards/h8300.exp
@@ -18,7 +18,7 @@
# Load the tool-specific configuration for this board, as well as the
# generic configuration. This will define any routines needed by the
# tool to communicate with the board.
-load_generic_config "h8300"
+load_generic_config "gdb-comm"
# Don't use anything by default.
process_multilib_options ""
@@ -48,15 +48,15 @@ set_board_info gcc,stack_size 4096
# The board can get wedged in amusing and interesting ways.
set_board_info unreliable 1
-# There's no long long support on this target
-set_board_info no_long_long 1
-
# sizeof int != sizeof long.
set_board_info gdb,short_int 1
-# Pick the right linker script if -mh/-ms is specified.
+# Select the right linker script if -mh/-ms is specified. If neither
+# option is provided, use the script for the H8/300H in advanced mode.
+# By default, GCC generates code for this architecture, as support for
+# the original H8/300 was removed in May 2020.
-set linker_script "h8300.ld"
+set linker_script "h8300helf.x"
foreach x $board_variant_list {
regsub {^[ \t]*} $x "" x
@@ -64,10 +64,10 @@ foreach x $board_variant_list {
switch -- $x {
"h" -
- "-mh" { set linker_script "h8300h.ld" }
+ "-mh" { set linker_script "h8300helf.x" }
"s" -
- "-ms" { set linker_script "h8300s.ld" }
+ "-ms" { set linker_script "h8300self.x" }
}
}
@@ -76,6 +76,6 @@ foreach x $board_variant_list {
# This one's dependent on the multilib options in use, sadly. And we
# *need* a linker script. Really. Otherwise the code gets linked at
# the wrong address and it won't run on the board.
-set_board_info ldscript "-T${prefix_dir}/h8300-hms/${linker_script}"
+set_board_info ldscript "-T${prefix_dir}/h8300-elf/lib/ldscripts/${linker_script}"
unset linker_script