2017年7月5日水曜日

Compiling from C language to WebAssembly on Centos7 1/2

WebAssemblyをブラウザで実行するにあたり、日常的に利用しているMacにLLVM等をインストールしてコンパイル環境を作るのは諸々の事 情があって実行しにくいというケースが多いのではなかろうか。
特にCmakeを利用している環境では手軽にWebAssemblyを試しづらい。
(例えばserverside-swifをビルドする際、cmake3が必要でWebAssemblyと環境を分けたいといったケースが考えられる。)
どうしても、手元のMacの環境上では実行しにくいというケースもあるだろう。

Linux上での実行方法はEmscripten SDKのページに書かれている。
ただしUbuntuベースの手順となっている。
https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html

この投稿はCentOS7上でのWebAssembly実行方法として書きまとめる。
上記ページ等には明記はされていないが、webserverであるemrun自体はVirtualBOX上で実行し、ブラウザ自体はWindowsやMac上のブラウザを利用する事ができる。

ここでは、VirtualBox上のcentos-release-7-3.1611.el7.centos.x86_64で実行した。
# rpm -qa centos-release
centos-release-7-3.1611.el7.centos.x86_64
Virtual Boxは以下のバージョンを使用した。
バージョン 5.1.22 r115126 (Qt5.6.2)

環境構築の為の作業は割と手軽なのでお薦めする。
(LLVM等rpmでインストールしたもので動作した。)
自己責任でお試しいただきたい。
なおVirtualBox上のCentOSでemsdkのビルドにあたりCPUcoreは複数あった方が早く終わる。
ただし、CPUcoreを増やすとメモリも多く必要とする。
(メモリをキャッシュとして使われる様なので、回避策はあるのかも知れない。)
メモリが少ないとリンカが途中で停止する場合がある。
具体的には以下のメッセージが表示され停止する。
fatal error: ld terminated with signal 9 [Killed]
これは、README.mdに記載がある通りメモリ不足に起因する。
git cloneでemsdkのソースを取得した際に一度目を通した方がいい。
何回かビルドたところ目安として、1Coreあたり3G程度のメモリがあった方がいいのだろうか。(必ず比例する訳でもない。)
1Coreでも2時間程度のビルド時間となる。
ハードディスクは35G程度は欲しい。

おおまかな作業としては、
https://developer.mozilla.org/ja/docs/WebAssembly/C_to_wasm
にある通り。
注意点としてはCentOS7ではepelにて提供されている、cmake3を利用する。
また、その際cmake3に対しcmakeとしてシンボリックリンクを張る。
(シンボリックリンクという回避策は快くは思わないが、emsdk内の表記をcmake3に変更する事の方がより難しいと思う。)

なおcmake2系で実行した場合、途中で以下のメッセージが表示され継続できない。
CMake Error at CMakeLists.txt:3 (cmake_minimum_required):
  CMake 3.4.3 or higher is required.  You are running version 2.8.12.2
また、cmake3に対しcmakeというシンボリックリンクを張らない場合は以下のfailとなり中断してしまう。
Running CMake: ['cmake', '-G', 'Unix Makefiles', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DPYTHON_EXECUTABLE=/usr/bin/python', '-DLLVM_TARGETS_TO_BUILD=X86;JSBackend', '-DLLVM_INCLUDE_EXAMPLES=OFF', '-DCLANG_INCLUDE_EXAMPLES=OFF', '-DLLVM_INCLUDE_TESTS=OFF', '-DCLANG_INCLUDE_TESTS=OFF', '-DLLVM_ENABLE_ASSERTIONS=ON', '/usr/local/src/emsdk/clang/fastcomp/src']
Installation failed!
selinuxは事前に無効とした。
ファイル、/etc/selinux/configのSELINUXの箇所は
SELINUX=disabled
とした。
VirtualBox再起動後
getenforce
で確認する。
# getenforce 
Disabled

実際の環境構築手順としては以下の様になる。

# yum --disablerepo=\* --enablerepo=base install -y git
# yum --disablerepo=\* --enablerepo=base install -y gcc
# yum --disablerepo=\* --enablerepo=base install -y gcc-c++
# yum install -y epel-release
# yum --disablerepo=\* --enablerepo=base,epel install -y cmake3
# ln -s /usr/bin/cmake3 /usr/bin/cmake
# cd /usr/local/src
# git clone https://github.com/juj/emsdk.git
# cd emsdk
# ./emsdk install sdk-incoming-64bit binaryen-master-64bit 
# ./emsdk activate sdk-incoming-64bit binaryen-master-64bit 
サンプルなので/usr/local/src以下にソースを展開したが、当然他のディレクトリで良い。
最後に環境構築変数を設定するシェルを実行する。
# source ./emsdk_env.sh
ここまでの手順でコンパイル環境は整う。
次の投稿にてサンプルにある、hello worldを動かしてみる。

念の為、yumにてrpmをインストールした際のインストールログも記載しておく。 今後の動作しない場合等の参考となればと思う。

git
 
# yum --disablerepo=\* --enablerepo=base install -y git

Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp.jaist.ac.jp
No package 2 available.
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-6.el7_2.1 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-6.el7_2.1 for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl >= 5.008 for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: rsync for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(warnings) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(vars) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(strict) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(lib) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::stat) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Temp) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Spec) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Path) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Find) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Copy) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(File::Basename) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(Exporter) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: /usr/bin/perl for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Processing Dependency: libgnome-keyring.so.0()(64bit) for package: git-1.8.3.1-6.el7_2.1.x86_64
--> Running transaction check
---> Package libgnome-keyring.x86_64 0:3.8.0-3.el7 will be installed
---> Package perl.x86_64 4:5.16.3-291.el7 will be installed
--> Processing Dependency: perl-libs = 4:5.16.3-291.el7 for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl-libs for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-291.el7.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 4:perl-5.16.3-291.el7.x86_64
---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-2.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-2.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-2.el7.noarch
---> Package perl-Git.noarch 0:1.8.3.1-6.el7_2.1 will be installed
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed
---> Package rsync.x86_64 0:3.0.9-17.el7 will be installed
--> Running transaction check
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-4.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-libs.x86_64 4:5.16.3-291.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-291.el7 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-291.el7 will be installed
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                     Arch        Version                Repository
                                                                           Size
================================================================================
Installing:
 git                         x86_64      1.8.3.1-6.el7_2.1      base      4.4 M
Installing for dependencies:
 libgnome-keyring            x86_64      3.8.0-3.el7            base      109 k
 perl                        x86_64      4:5.16.3-291.el7       base      8.0 M
 perl-Carp                   noarch      1.26-244.el7           base       19 k
 perl-Encode                 x86_64      2.51-7.el7             base      1.5 M
 perl-Error                  noarch      1:0.17020-2.el7        base       32 k
 perl-Exporter               noarch      5.68-3.el7             base       28 k
 perl-File-Path              noarch      2.09-2.el7             base       26 k
 perl-File-Temp              noarch      0.23.01-3.el7          base       56 k
 perl-Filter                 x86_64      1.49-3.el7             base       76 k
 perl-Getopt-Long            noarch      2.40-2.el7             base       56 k
 perl-Git                    noarch      1.8.3.1-6.el7_2.1      base       53 k
 perl-HTTP-Tiny              noarch      0.033-3.el7            base       38 k
 perl-PathTools              x86_64      3.40-5.el7             base       82 k
 perl-Pod-Escapes            noarch      1:1.04-291.el7         base       51 k
 perl-Pod-Perldoc            noarch      3.20-4.el7             base       87 k
 perl-Pod-Simple             noarch      1:3.28-4.el7           base      216 k
 perl-Pod-Usage              noarch      1.63-3.el7             base       27 k
 perl-Scalar-List-Utils      x86_64      1.27-248.el7           base       36 k
 perl-Socket                 x86_64      2.010-4.el7            base       49 k
 perl-Storable               x86_64      2.45-3.el7             base       77 k
 perl-TermReadKey            x86_64      2.30-20.el7            base       31 k
 perl-Text-ParseWords        noarch      3.29-4.el7             base       14 k
 perl-Time-HiRes             x86_64      4:1.9725-3.el7         base       45 k
 perl-Time-Local             noarch      1.2300-2.el7           base       24 k
 perl-constant               noarch      1.27-2.el7             base       19 k
 perl-libs                   x86_64      4:5.16.3-291.el7       base      688 k
 perl-macros                 x86_64      4:5.16.3-291.el7       base       43 k
 perl-parent                 noarch      1:0.225-244.el7        base       12 k
 perl-podlators              noarch      2.5.1-3.el7            base      112 k
 perl-threads                x86_64      1.87-4.el7             base       49 k
 perl-threads-shared         x86_64      1.43-6.el7             base       39 k
 rsync                       x86_64      3.0.9-17.el7           base      360 k

Transaction Summary
================================================================================
Install  1 Package (+32 Dependent packages)

Total download size: 16 M
Installed size: 60 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/perl-Carp-1.26-244.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for perl-Carp-1.26-244.el7.noarch.rpm is not installed
--------------------------------------------------------------------------------
Total                                              1.1 MB/s |  16 MB  00:15     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) "
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-3.1611.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:perl-parent-0.225-244.el7.noarch                          1/33 
  Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                           2/33 
  Installing : perl-podlators-2.5.1-3.el7.noarch                           3/33 
  Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                          4/33 
  Installing : 1:perl-Pod-Escapes-1.04-291.el7.noarch                      5/33 
  Installing : perl-Encode-2.51-7.el7.x86_64                               6/33 
  Installing : perl-Text-ParseWords-3.29-4.el7.noarch                      7/33 
  Installing : perl-Pod-Usage-1.63-3.el7.noarch                            8/33 
  Installing : perl-Storable-2.45-3.el7.x86_64                             9/33 
  Installing : perl-Exporter-5.68-3.el7.noarch                            10/33 
  Installing : perl-constant-1.27-2.el7.noarch                            11/33 
  Installing : perl-Time-Local-1.2300-2.el7.noarch                        12/33 
  Installing : perl-Socket-2.010-4.el7.x86_64                             13/33 
  Installing : perl-Carp-1.26-244.el7.noarch                              14/33 
  Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      15/33 
  Installing : perl-PathTools-3.40-5.el7.x86_64                           16/33 
  Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 17/33 
  Installing : 4:perl-libs-5.16.3-291.el7.x86_64                          18/33 
  Installing : 4:perl-macros-5.16.3-291.el7.x86_64                        19/33 
  Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                        20/33 
  Installing : perl-File-Temp-0.23.01-3.el7.noarch                        21/33 
  Installing : perl-File-Path-2.09-2.el7.noarch                           22/33 
  Installing : perl-threads-shared-1.43-6.el7.x86_64                      23/33 
  Installing : perl-threads-1.87-4.el7.x86_64                             24/33 
  Installing : perl-Filter-1.49-3.el7.x86_64                              25/33 
  Installing : perl-Getopt-Long-2.40-2.el7.noarch                         26/33 
  Installing : 4:perl-5.16.3-291.el7.x86_64                               27/33 
  Installing : 1:perl-Error-0.17020-2.el7.noarch                          28/33 
  Installing : perl-TermReadKey-2.30-20.el7.x86_64                        29/33 
  Installing : rsync-3.0.9-17.el7.x86_64                                  30/33 
  Installing : libgnome-keyring-3.8.0-3.el7.x86_64                        31/33 
  Installing : perl-Git-1.8.3.1-6.el7_2.1.noarch                          32/33 
  Installing : git-1.8.3.1-6.el7_2.1.x86_64                               33/33 
  Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                           1/33 
  Verifying  : perl-threads-shared-1.43-6.el7.x86_64                       2/33 
  Verifying  : perl-Storable-2.45-3.el7.x86_64                             3/33 
  Verifying  : perl-Exporter-5.68-3.el7.noarch                             4/33 
  Verifying  : perl-constant-1.27-2.el7.noarch                             5/33 
  Verifying  : perl-PathTools-3.40-5.el7.x86_64                            6/33 
  Verifying  : 1:perl-Pod-Escapes-1.04-291.el7.noarch                      7/33 
  Verifying  : 1:perl-parent-0.225-244.el7.noarch                          8/33 
  Verifying  : perl-TermReadKey-2.30-20.el7.x86_64                         9/33 
  Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                        10/33 
  Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                        11/33 
  Verifying  : perl-Time-Local-1.2300-2.el7.noarch                        12/33 
  Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                         13/33 
  Verifying  : perl-Git-1.8.3.1-6.el7_2.1.noarch                          14/33 
  Verifying  : perl-Socket-2.010-4.el7.x86_64                             15/33 
  Verifying  : perl-Carp-1.26-244.el7.noarch                              16/33 
  Verifying  : 1:perl-Error-0.17020-2.el7.noarch                          17/33 
  Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      18/33 
  Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 19/33 
  Verifying  : 4:perl-libs-5.16.3-291.el7.x86_64                          20/33 
  Verifying  : 4:perl-macros-5.16.3-291.el7.x86_64                        21/33 
  Verifying  : libgnome-keyring-3.8.0-3.el7.x86_64                        22/33 
  Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                           23/33 
  Verifying  : perl-Encode-2.51-7.el7.x86_64                              24/33 
  Verifying  : perl-podlators-2.5.1-3.el7.noarch                          25/33 
  Verifying  : perl-Getopt-Long-2.40-2.el7.noarch                         26/33 
  Verifying  : perl-File-Path-2.09-2.el7.noarch                           27/33 
  Verifying  : 4:perl-5.16.3-291.el7.x86_64                               28/33 
  Verifying  : perl-threads-1.87-4.el7.x86_64                             29/33 
  Verifying  : perl-Filter-1.49-3.el7.x86_64                              30/33 
  Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                     31/33 
  Verifying  : git-1.8.3.1-6.el7_2.1.x86_64                               32/33 
  Verifying  : rsync-3.0.9-17.el7.x86_64                                  33/33 

Installed:
  git.x86_64 0:1.8.3.1-6.el7_2.1                                                

Dependency Installed:
  libgnome-keyring.x86_64 0:3.8.0-3.el7                                         
  perl.x86_64 4:5.16.3-291.el7                                                  
  perl-Carp.noarch 0:1.26-244.el7                                               
  perl-Encode.x86_64 0:2.51-7.el7                                               
  perl-Error.noarch 1:0.17020-2.el7                                             
  perl-Exporter.noarch 0:5.68-3.el7                                             
  perl-File-Path.noarch 0:2.09-2.el7                                            
  perl-File-Temp.noarch 0:0.23.01-3.el7                                         
  perl-Filter.x86_64 0:1.49-3.el7                                               
  perl-Getopt-Long.noarch 0:2.40-2.el7                                          
  perl-Git.noarch 0:1.8.3.1-6.el7_2.1                                           
  perl-HTTP-Tiny.noarch 0:0.033-3.el7                                           
  perl-PathTools.x86_64 0:3.40-5.el7                                            
  perl-Pod-Escapes.noarch 1:1.04-291.el7                                        
  perl-Pod-Perldoc.noarch 0:3.20-4.el7                                          
  perl-Pod-Simple.noarch 1:3.28-4.el7                                           
  perl-Pod-Usage.noarch 0:1.63-3.el7                                            
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                                  
  perl-Socket.x86_64 0:2.010-4.el7                                              
  perl-Storable.x86_64 0:2.45-3.el7                                             
  perl-TermReadKey.x86_64 0:2.30-20.el7                                         
  perl-Text-ParseWords.noarch 0:3.29-4.el7                                      
  perl-Time-HiRes.x86_64 4:1.9725-3.el7                                         
  perl-Time-Local.noarch 0:1.2300-2.el7                                         
  perl-constant.noarch 0:1.27-2.el7                                             
  perl-libs.x86_64 4:5.16.3-291.el7                                             
  perl-macros.x86_64 4:5.16.3-291.el7                                           
  perl-parent.noarch 1:0.225-244.el7                                            
  perl-podlators.noarch 0:2.5.1-3.el7                                           
  perl-threads.x86_64 0:1.87-4.el7                                              
  perl-threads-shared.x86_64 0:1.43-6.el7                                       
  rsync.x86_64 0:3.0.9-17.el7                                                   

Complete!
gcc
 
# yum --disablerepo=\* --enablerepo=base install -y gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
No package 2 available.
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.8.5-11.el7 will be installed
--> Processing Dependency: cpp = 4.8.5-11.el7 for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-11.el7.x86_64
--> Running transaction check
---> Package cpp.x86_64 0:4.8.5-11.el7 will be installed
---> Package glibc-devel.x86_64 0:2.17-157.el7 will be installed
--> Processing Dependency: glibc-headers = 2.17-157.el7 for package: glibc-devel-2.17-157.el7.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-157.el7.x86_64
---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed
---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.17-157.el7 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-157.el7.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.17-157.el7.x86_64
--> Running transaction check
---> Package kernel-headers.x86_64 0:3.10.0-514.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch          Version                  Repository   Size
================================================================================
Installing:
 gcc                   x86_64        4.8.5-11.el7             base         16 M
Installing for dependencies:
 cpp                   x86_64        4.8.5-11.el7             base        5.9 M
 glibc-devel           x86_64        2.17-157.el7             base        1.1 M
 glibc-headers         x86_64        2.17-157.el7             base        668 k
 kernel-headers        x86_64        3.10.0-514.el7           base        4.8 M
 libmpc                x86_64        1.0.1-3.el7              base         51 k
 mpfr                  x86_64        3.1.1-4.el7              base        203 k

Transaction Summary
================================================================================
Install  1 Package (+6 Dependent packages)

Total download size: 29 M
Installed size: 60 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                              719 kB/s |  29 MB  00:41     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mpfr-3.1.1-4.el7.x86_64                                      1/7 
  Installing : libmpc-1.0.1-3.el7.x86_64                                    2/7 
  Installing : cpp-4.8.5-11.el7.x86_64                                      3/7 
  Installing : kernel-headers-3.10.0-514.el7.x86_64                         4/7 
  Installing : glibc-headers-2.17-157.el7.x86_64                            5/7 
  Installing : glibc-devel-2.17-157.el7.x86_64                              6/7 
  Installing : gcc-4.8.5-11.el7.x86_64                                      7/7 
  Verifying  : glibc-devel-2.17-157.el7.x86_64                              1/7 
  Verifying  : kernel-headers-3.10.0-514.el7.x86_64                         2/7 
  Verifying  : mpfr-3.1.1-4.el7.x86_64                                      3/7 
  Verifying  : cpp-4.8.5-11.el7.x86_64                                      4/7 
  Verifying  : gcc-4.8.5-11.el7.x86_64                                      5/7 
  Verifying  : glibc-headers-2.17-157.el7.x86_64                            6/7 
  Verifying  : libmpc-1.0.1-3.el7.x86_64                                    7/7 

Installed:
  gcc.x86_64 0:4.8.5-11.el7                                                     

Dependency Installed:
  cpp.x86_64 0:4.8.5-11.el7             glibc-devel.x86_64 0:2.17-157.el7       
  glibc-headers.x86_64 0:2.17-157.el7   kernel-headers.x86_64 0:3.10.0-514.el7  
  libmpc.x86_64 0:1.0.1-3.el7           mpfr.x86_64 0:3.1.1-4.el7               

Complete!
gcc-c++
 
# yum --disablerepo=\* --enablerepo=base install -y gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
No package 2 available.
Resolving Dependencies
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.8.5-11.el7 will be installed
--> Processing Dependency: libstdc++-devel = 4.8.5-11.el7 for package: gcc-c++-4.8.5-11.el7.x86_64
--> Running transaction check
---> Package libstdc++-devel.x86_64 0:4.8.5-11.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch           Version              Repository    Size
================================================================================
Installing:
 gcc-c++                 x86_64         4.8.5-11.el7         base         7.2 M
Installing for dependencies:
 libstdc++-devel         x86_64         4.8.5-11.el7         base         1.5 M

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 8.7 M
Installed size: 25 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                              2.0 MB/s | 8.7 MB  00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libstdc++-devel-4.8.5-11.el7.x86_64                          1/2
  Installing : gcc-c++-4.8.5-11.el7.x86_64                                  2/2
  Verifying  : gcc-c++-4.8.5-11.el7.x86_64                                  1/2
  Verifying  : libstdc++-devel-4.8.5-11.el7.x86_64                          2/2

Installed:
  gcc-c++.x86_64 0:4.8.5-11.el7

Dependency Installed:
  libstdc++-devel.x86_64 0:4.8.5-11.el7

Complete!
epel-release
 

cmake3
 
# yum --disablerepo=\* --enablerepo=base,epel install -y cmake3
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
No package 2 available.
Resolving Dependencies
--> Running transaction check
---> Package cmake.x86_64 0:2.8.12.2-2.el7 will be installed
--> Processing Dependency: libarchive.so.13()(64bit) for package: cmake-2.8.12.2-2.el7.x86_64
--> Running transaction check
---> Package libarchive.x86_64 0:3.1.2-10.el7_2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch           Version                   Repository    Size
================================================================================
Installing:
 cmake              x86_64         2.8.12.2-2.el7            base         7.1 M
Installing for dependencies:
 libarchive         x86_64         3.1.2-10.el7_2            base         318 k

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 7.4 M
Installed size: 27 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                              2.4 MB/s | 7.4 MB  00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libarchive-3.1.2-10.el7_2.x86_64                             1/2 
  Installing : cmake-2.8.12.2-2.el7.x86_64                                  2/2 
  Verifying  : cmake-2.8.12.2-2.el7.x86_64                                  1/2 
  Verifying  : libarchive-3.1.2-10.el7_2.x86_64                             2/2 

Installed:
  cmake.x86_64 0:2.8.12.2-2.el7                                                 

Dependency Installed:
  libarchive.x86_64 0:3.1.2-10.el7_2                                            

Complete!
参考
http://webassembly.org/getting-started/developers-guide/

0 件のコメント: