LoginSignup
2
0

More than 3 years have passed since last update.

DebianでH8用のGCCをビルドする(2020年版)

Last updated at Posted at 2020-10-26

結論

以下の組み合わせでH8/300H用のツールチェインがビルド可能。(11/4 追記:ただしnewlibの動作を実機マイコンで確認していない。GCCはH8/3664Fでの動作を確認済み)

  • Debian 10.6
  • binutils-2.30
  • gcc-8.4.0
  • newlib-2.5.0

はじめに

Debian/UbuntuにはH8/300H用のパッケージ(gcc-h8300-hms 3.4.6,binutils-h8300-hms 2.16.1)が用意されているものの,既にバージョンが古くnewlibもない。
また,各所で紹介されている情報も古くなりつつあるため,最低限のアップデート情報を紹介する。

準備

以下のパッケージをインストールする。

apt install build-essential libgmp-dev libmpfr-dev libmpc-dev bison flex texinfo
apt install porg

porgは野良ビルドを管理するためのツール。野良ビルド管理 porg のメモ。などを参照のこと。

手順

構築手順およびconfigureオプションは以下の通り。(スクリプトとして実行できる)

#!/bin/sh

# get and extract archives
wget http://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.bz2
wget https://mirror.jre655.com/GNU/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz
wget ftp://sourceware.org/pub/newlib/newlib-2.5.0.tar.gz

tar xfv binutils-2.30.tar.bz2 
tar xfv gcc-8.4.0.tar.xz
tar xfv newlib-2.5.0.tar.gz 


# prepair directories
mkdir h8300-elf
mkdir h8300-elf/binutils
mkdir h8300-elf/gcc_stage1
mkdir h8300-elf/newlib
mkdir h8300-elf/gcc


# build binutils
cd h8300-elf/binutils
../../binutils-2.30/configure --prefix=/usr/local --target=h8300-elf --disable-nls --disable-initfini-array --enable-lto 
make -j4 
sudo porg -lp binutils-h8300-elf "make install"
cd ../..
porgball -x binutils-h8300-elf


# build gcc stage1
cd h8300-elf/gcc_stage1
../../gcc-8.4.0/configure --prefix=/usr/local --target=h8300-elf --disable-nls --disable-initfini-array --enable-lto --disable-decimal-float --disable-fixed-point --disable-libatomic --disable-libgomp --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-threads --disable-tls --enable-languages=c  --with
-newlib
make -j4 all-gcc
sudo porg -lp gcc-h8300-elf-stage1 "make install"
cd ../..


# build newlib
cd h8300-elf/newlib
../../newlib-2.5.0/configure --prefix=/usr/local --target=h8300-elf
make -j4
sudo porg -r gcc-h8300-elf-stage1
sudo porg -lp newlib-h8300-elf "make install"
cd ../..
porgball -x newlib-h8300-elf


# build gcc agein
cd h8300-elf/gcc
../../gcc-8.4.0/configure --prefix=/usr/local --target=h8300-elf --disable-nls --disable-initfini-array --enable-lto --disable-decimal-float --disable-fixed-point --disable-libatomic --disable-libgomp --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-threads --disable-tls --enable-languages=c,c++  --with-newlib --disable-shared  --disable-libstdc__-v3 
make -j4 
sudo porg -lp gcc-h8300-elf "make install"
cd ../..
porgball -x gcc-h8300-elf

newlibなしでC++を作ろうとすると失敗するので,GCCの構築を2回やっています。

Windowsなら

GNU Toolchain for Hitachi H8/300 series for Windowsにあるバイナリを使わせてもらうのがよいと思います。

参考文献

  1. ひかえん2の日記 2017-01-01 DebianでH8用(h8300-hms)のGCCをビルドする, http://hikaen2.hatenablog.com/entry/20170101/1483251025 ,2020-10-26 閲覧
  2. ひかえん2の日記 2013-11-12 Debian GNU/Linux の gcc-h8300-hms について, http://hikaen2.hatenablog.com/entry/20131112/1384249433 ,2020-10-26 閲覧
  3. なんとなく活動記録。 2019/7/20 各種マイコン用gccのバージョン・ビルド法等まとめ, http://blueeyes.sakura.ne.jp/2019/07/20/2459/ ,2020-10-26 閲覧
  4. saito's memo newlibベースのgccツールチェインの作成, https://memo.saitodev.com/home/arm/arm_gcc_newlib/ ,2020-10-26 閲覧
  5. 未処理の例外が発生しました 2019/04/20 GNU Toolchain for Hitachi H8/300 series for Windows, http://exception.blog.shinobi.jp/iot/gnu%20toolchain%20for%20hitachi ,2020-10-26 閲覧
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0