LoginSignup
0
0

OpenSSL(1.1.1o)をSH4向けにクロスコンパイルする

Last updated at Posted at 2022-05-29

概要

  • WSLにSH4のクロスコンパイル環境を構築
  • OpenSSLのソースコードをSH4用のバイナリにコンパイルします。

実行環境

  • Windows 10 Home 21H2
  • WSL2
  • Ubuntu 18.04.6 LTS
実行環境
$ cat  /etc/os-release
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"

SH4コンパイラのインストール

SH4のクロスコンパイラとしてgcc-sh4-linux-gnuをインストールします。
また、makeなどのツールチェインをインストールする為にbuild-essentialもインストールします。

インストール
$ sudo apt-get update
$ sudo apt-get install -y build-essential gcc-sh4-linux-gnu
動作確認
$ sh4-linux-gnu-gcc --version
sh4-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

OpenSSLのクロスコンパイル

記事の作成時点で最新のバージョン1.1.1owgetを使ってダウンロードします。

ソースコードの入手・展開
$ wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
$ tar xzf openssl-1.1.1o.tar.gz
$ cd openssl-1.1.1o/

MakeFileを作成する為の設定です。
linux-generic32--cross-compile-prefix=/usr/bin/sh4-linux-gnu-は必須オプションです。

環境に合わせてMakeFileを作成
$ ./Configure linux-generic32 no-asm no-sse2 no-ssl3 no-zlib no-bf no-camellia no-cast \
 no-cms no-comp no-dso no-idea  no-md2 no-mdc2 no-rc2 no-rc5 no-ripemd no-seed -fPIC \
 --cross-compile-prefix=/usr/bin/sh4-linux-gnu-

MakeFileが生成されたら、コンパイルを行います。
コンパイルを効率化するために、並列コンパイルの設定として-jを付与します。

コンパイル
$ make -j$(grep -c ^processor /proc/cpuinfo)
(多少時間がかかります)

コンパイルが終了したら、SH4向けのバイナリが生成されていることを確認します。

バイナリの確認
$ file apps/openssl
apps/openssl: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), dynamically linked,
interpreter /lib/ld-linux.so.2, BuildID[sha1]=(省略), for GNU/Linux 3.2.0, not stripped
$ file libssl.so.1.1
libssl.so.1.1: ELF 32-bit LSB shared object, Renesas SH, version 1 (SYSV), dynamically linked, 
BuildID[sha1]=(省略), not stripped
$ file libcrypto.so.1.1
libcrypto.so.1.1: ELF 32-bit LSB shared object, Renesas SH, version 1 (SYSV), dynamically linked,
BuildID[sha1]=(省略), with debug_info, not stripped

参考情報

SH4用クロス環境の作り方 (2015年版)
[クロスコンパイル1] openssl-1.1.1コンパイル

0
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
0
0