binutils Newspaper
JULY 29, 2026
h8 Proposed Sentiment 9 / 10

H8: Set H8/300H as the default architecture for H8 family

Changes the default H8 architecture in binutils from H8/300 to H8/300H to match GCC's default.

This patch updates binutils’ default architecture for the H8 family from H8/300 to H8/300H. This change aligns binutils with GCC, which removed support for H8/300 and now defaults to H8/300H. The discrepancy caused approximately 30 test cases to fail due to incompatible architectures between the compiler output and the linker/assembler defaults. The change affects bfd/cpu-h8300.c, gas/config/tc-h8300.c, and ld/configure.tgt.

In the Thread 2 participants
  1. Jan Dubiec <jdx@o2.pl> proposer

    Proposes to set H8/300H as the default architecture for the H8 family in binutils to match GCC's default, resolving test case failures.

    “Binutils, in particular ld and gas, use H8/300 as the default architecture. On the other hand, support for H8/300 has been removed from gcc since July 2020 (AFAIR) and H8/300H is the default there. This situation causes that about 30 test cases fail in the following way:”
  2. Jeffrey Law <jeffrey.law@oss.qualcomm.com> reviewer

    Agrees with the change, stating that it makes sense given GCC's removal of H8/300 support.

    “I'm a lot less involved in binutils than I have been in the past, but this makes sense to me. As Jan mentions, we dropped old H8/300 support in GCC a while back and default to”

Technical Tradeoffs

  • Aligns binutils with GCC's default architecture, improving toolchain consistency.
  • Resolves test case failures caused by architecture mismatches.

In Details

This change standardizes the default toolchain architecture for the H8 family. Binutils' ld and gas previously defaulted to H8/300, while GCC has since switched to H8/300H as its default. This patch synchronizes binutils to match GCC, resolving linker/assembler incompatibilities with modern H8/300H compilation targets and unblocking a number of test suite failures.

For Context
H8/300
An older variant of the H8 microcontroller architecture.
H8/300H
An enhanced variant of the H8 microcontroller architecture, often used as a default in modern toolchains.
gcc
The GNU Compiler Collection, a widely used suite of compilers.
binutils
A collection of programming tools, including the assembler (gas) and the linker (ld), for manipulating object code.
linker (ld)
A program that takes one or more object files and combines them into a single executable file or library.
assembler (gas)
A program that translates assembly language code into machine code.
Filed Under: h8default architecturelinkerassemblergcc