LoginSignup
2
4

64bitCPUへの道 (1)V850 gcc 64bit

Last updated at Posted at 2018-10-22

docker gcc

docker gcc official
https://hub.docker.com/_/gcc/

$ mkdir gcc
$ cd vgcc
$ docker pull gcc
Using default tag: latest
latest: Pulling from library/gcc
bc9ab73e5b14: Pull complete 
193a6306c92a: Pull complete 
e5c3f8c317dc: Pull complete 
a587a86c9dcb: Pull complete 
72744d0a318b: Downloading [===================>                               ]  81.34MB/213.2MB
49c09f517488: Download complete 
31779c261ff3: Downloading [==========>                                        ]  43.84MB/212.4MB
e28bce690143: Download complete 
882c09a8660a: Download complete 

$ docker run -it gcc:latest /bin/bash

root@af947f86fb70:/# ls /usr/src/gcc
ABOUT-NLS	    MAINTAINERS   config.rpath	gotools       libdecnumber  liboffloadmic    ltoptions.m4	 mpfr
COPYING		    MD5SUMS	  config.sub	include       libffi	    libquadmath      ltsugar.m4		 mpfr-3.1.4
COPYING.LIB	    Makefile.def  configure	install-sh    libgcc	    libsanitizer     ltversion.m4	 symlink-tree
COPYING.RUNTIME     Makefile.in   configure.ac	intl	      libgfortran   libssp	     lt~obsolete.m4	 ylwrap
COPYING3	    Makefile.tpl  contrib	isl	      libgo	    libstdc++-v3     maintainer-scripts  zlib
COPYING3.LIB	    NEWS	  depcomp	isl-0.18      libgomp	    libtool-ldflags  missing
ChangeLog	    README	  fixincludes	libada	      libhsail-rt   libtool.m4	     mkdep
ChangeLog.jit	    compile	  gcc		libatomic     libiberty     libvtv	     mkinstalldirs
ChangeLog.tree-ssa  config	  gmp		libbacktrace  libitm	    ltgcc.m4	     move-if-change
INSTALL		    config-ml.in  gmp-6.1.0	libcc1	      libmpx	    ltmain.sh	     mpc
LAST_UPDATED	    config.guess  gnattools	libcpp	      libobjc	    lto-plugin	     mpc-1.0.3

# cat  /usr/src/gcc/ChangeLog

2018-07-26  Release Manager
	* GCC 8.2.0 released.

gcc: 8.2.0
mpfr: 3.1.4
gmp: 6.1.0
mac: 1.0.3
binutils: 2.28
newlib: 2.4.0.20160527
gdb: 7.12.0

cat ChangeLog | grep version 
	* version.in: Set GDB version number to 7.12.0.DATE-git.

v850用クロス開発環境の構築 2011-06-29
http://syohex.hatenablog.com/entry/20110629/1309356336

GCC 4.7.1を構築する(準備編) 2012-07-05
http://syohex.hatenablog.com/entry/20120705/1341459296

GCC 4.7.1を構築する(v850編)2012-07-05
http://syohex.hatenablog.com/entry/20120705/1341459349

クロスコンパイラgccのビルド -成功編
http://blog.techlab-xe.net/archives/3271

必要となるライブラリ
GMP
MPFR
MPC
PPL
CLOOG

道具
GCC
GDB
NEWLIB

git clone https://github.com/syohex/p5-Testgen.git

ルネサス
https://gcc-renesas.com/ja/v850/v850-download-toolchains/

Building from source
https://github.com/nagadomi/otama/wiki/Building-from-source

binutilsの1回目。

...
WARNING: 'flex' is missing on your system.
         You should only need it if you modified a '.l' file.
         You may want to install the Fast Lexical Analyzer package:
         <http://flex.sourceforge.net/>
Makefile:983: recipe for target 'arlex.c' failed
make[4]: *** [arlex.c] Error 127
make[4]: Leaving directory '/usr/src/binutils/binutils-2.28/v850/binutils'
Makefile:1004: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/usr/src/binutils/binutils-2.28/v850/binutils'
Makefile:663: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/src/binutils/binutils-2.28/v850/binutils'
Makefile:3609: recipe for target 'all-binutils' failed
make[1]: *** [all-binutils] Error 2
make[1]: Leaving directory '/usr/src/binutils/binutils-2.28/v850'
Makefile:849: recipe for target 'all' failed
make: *** [all] Error 2

flexが要るらしい。

# apt install -y flex  mpc gperf autogen libpng-dev libjpeg-dev libgif-dev  
# apt install -y# apt-get install -y libssl-dev libyaml-dev libsqlite3-dev libleveldb-dev libgmp3-dev libmpfr-dev
# apt install -y binutils-source newlib-source gdb-source
root@a06d58840d37:~# apt-get install -y binutils-source newlib-source gdb-source
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following additional packages will be installed:
  libauthen-sasl-perl libencode-locale-perl libfile-listing-perl libfont-afm-perl libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl
  libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libio-html-perl libio-socket-ssl-perl liblwp-mediatypes-perl
  liblwp-protocol-https-perl libmailtools-perl libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libtext-unidecode-perl libtimedate-perl liburi-perl libwww-perl
  libwww-robotrules-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl perl-openssl-defaults
  tex-common texinfo
Suggested packages:
  libdigest-hmac-perl libgssapi-perl libdata-dump-perl libcrypt-ssleay-perl libauthen-ntlm-perl debhelper texlive-base texlive-latex-base texlive-generic-recommended
  texinfo-doc-nonfree texlive-fonts-recommended
The following NEW packages will be installed:
  binutils-source gdb-source libauthen-sasl-perl libencode-locale-perl libfile-listing-perl libfont-afm-perl libhtml-form-perl libhtml-format-perl libhtml-parser-perl
  libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libio-html-perl
  libio-socket-ssl-perl liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libtext-unidecode-perl
  libtimedate-perl liburi-perl libwww-perl libwww-robotrules-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-expat-perl
  libxml-sax-perl newlib-source perl-openssl-defaults tex-common texinfo
0 upgraded, 39 newly installed, 0 to remove and 1 not upgraded.
Need to get 56.3 MB of archives.
After this operation, 70.1 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 libtext-unidecode-perl all 1.30-1 [103 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 libxml-namespacesupport-perl all 1.11-1 [14.8 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 libxml-sax-base-perl all 1.07-1 [23.1 kB]
Get:4 http://deb.debian.org/debian stretch/main amd64 libxml-sax-perl all 0.99+dfsg-2 [68.3 kB]
Get:5 http://deb.debian.org/debian stretch/main amd64 libxml-libxml-perl amd64 2.0128+dfsg-1+deb9u1 [338 kB]
Get:6 http://deb.debian.org/debian stretch/main amd64 tex-common all 6.06 [566 kB]
Get:7 http://deb.debian.org/debian stretch/main amd64 texinfo amd64 6.3.0.dfsg.1-1+b2 [1295 kB]
Get:8 http://deb.debian.org/debian stretch/main amd64 binutils-source all 2.28-5 [19.4 MB]
Get:9 http://deb.debian.org/debian stretch/main amd64 gdb-source all 7.12-6 [27.3 MB]                                                                                             
Get:10 http://deb.debian.org/debian stretch/main amd64 libauthen-sasl-perl all 2.1600-1 [50.8 kB]                                                                                 
Get:11 http://deb.debian.org/debian stretch/main amd64 libencode-locale-perl all 1.05-1 [13.7 kB]                                                                                 
Get:12 http://deb.debian.org/debian stretch/main amd64 libtimedate-perl all 2.3000-2 [42.2 kB]                                                                                    
Get:13 http://deb.debian.org/debian stretch/main amd64 libhttp-date-perl all 6.02-1 [10.7 kB]                                                                                     
Get:14 http://deb.debian.org/debian stretch/main amd64 libfile-listing-perl all 6.04-1 [10.3 kB]                                                                                  
Get:15 http://deb.debian.org/debian stretch/main amd64 libfont-afm-perl all 1.20-2 [13.6 kB]                                                                                      
Get:16 http://deb.debian.org/debian stretch/main amd64 libhtml-tagset-perl all 3.20-3 [12.7 kB]                                                                                   
Get:17 http://deb.debian.org/debian stretch/main amd64 liburi-perl all 1.71-1 [88.6 kB]                                                                                           
Get:18 http://deb.debian.org/debian stretch/main amd64 libhtml-parser-perl amd64 3.72-3 [104 kB]                                                                                  
Get:19 http://deb.debian.org/debian stretch/main amd64 libio-html-perl all 1.001-1 [17.6 kB]                                                                                      
Get:20 http://deb.debian.org/debian stretch/main amd64 liblwp-mediatypes-perl all 6.02-1 [22.1 kB]                                                                                
Get:21 http://deb.debian.org/debian stretch/main amd64 libhttp-message-perl all 6.11-1 [75.9 kB]                                                                                  
Get:22 http://deb.debian.org/debian stretch/main amd64 libhtml-form-perl all 6.03-1 [23.9 kB]                                                                                     
Get:23 http://deb.debian.org/debian stretch/main amd64 libhtml-tree-perl all 5.03-2 [210 kB]                                                                                      
Get:24 http://deb.debian.org/debian stretch/main amd64 libhtml-format-perl all 2.12-1 [43.5 kB]                                                                                   
Get:25 http://deb.debian.org/debian stretch/main amd64 libhttp-cookies-perl all 6.01-1 [17.4 kB]                                                                                  
Get:26 http://deb.debian.org/debian stretch/main amd64 libhttp-daemon-perl all 6.01-1 [17.3 kB]                                                                                   
Get:27 http://deb.debian.org/debian stretch/main amd64 libhttp-negotiate-perl all 6.00-2 [13.6 kB]                                                                                
Get:28 http://deb.debian.org/debian stretch/main amd64 perl-openssl-defaults amd64 3 [6782 B]                                                                                     
Get:29 http://deb.debian.org/debian stretch/main amd64 libnet-ssleay-perl amd64 1.80-1 [285 kB]                                                                                   
Get:30 http://deb.debian.org/debian stretch/main amd64 libio-socket-ssl-perl all 2.044-1 [195 kB]                                                                                 
Get:31 http://deb.debian.org/debian stretch/main amd64 libnet-http-perl all 6.12-1 [23.8 kB]                                                                                      
Get:32 http://deb.debian.org/debian stretch/main amd64 libwww-robotrules-perl all 6.01-1 [14.3 kB]                                                                                
Get:33 http://deb.debian.org/debian stretch/main amd64 libwww-perl all 6.15-1 [195 kB]                                                                                            
Get:34 http://deb.debian.org/debian stretch/main amd64 liblwp-protocol-https-perl all 6.06-2 [9582 B]                                                                             
Get:35 http://deb.debian.org/debian stretch/main amd64 libnet-smtp-ssl-perl all 1.04-1 [6184 B]                                                                                   
Get:36 http://deb.debian.org/debian stretch/main amd64 libmailtools-perl all 2.18-1 [88.5 kB]                                                                                     
Get:37 http://deb.debian.org/debian stretch/main amd64 libxml-parser-perl amd64 2.44-2+b1 [212 kB]                                                                                
Get:38 http://deb.debian.org/debian stretch/main amd64 libxml-sax-expat-perl all 0.40-2 [12.9 kB]                                                                                 
Get:39 http://deb.debian.org/debian stretch/main amd64 newlib-source all 2.4.0.20160527-2 [5310 kB]                                                                               
Fetched 56.3 MB in 24s (2341 kB/s)                                                                                                                                                
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libtext-unidecode-perl.
(Reading database ... 29653 files and directories currently installed.)
Preparing to unpack .../00-libtext-unidecode-perl_1.30-1_all.deb ...
Unpacking libtext-unidecode-perl (1.30-1) ...
Selecting previously unselected package libxml-namespacesupport-perl.
Preparing to unpack .../01-libxml-namespacesupport-perl_1.11-1_all.deb ...
Unpacking libxml-namespacesupport-perl (1.11-1) ...
Selecting previously unselected package libxml-sax-base-perl.
Preparing to unpack .../02-libxml-sax-base-perl_1.07-1_all.deb ...
Unpacking libxml-sax-base-perl (1.07-1) ...
Selecting previously unselected package libxml-sax-perl.
Preparing to unpack .../03-libxml-sax-perl_0.99+dfsg-2_all.deb ...
Unpacking libxml-sax-perl (0.99+dfsg-2) ...
Selecting previously unselected package libxml-libxml-perl.
Preparing to unpack .../04-libxml-libxml-perl_2.0128+dfsg-1+deb9u1_amd64.deb ...
Unpacking libxml-libxml-perl (2.0128+dfsg-1+deb9u1) ...
Selecting previously unselected package tex-common.
Preparing to unpack .../05-tex-common_6.06_all.deb ...
Unpacking tex-common (6.06) ...
Selecting previously unselected package texinfo.
Preparing to unpack .../06-texinfo_6.3.0.dfsg.1-1+b2_amd64.deb ...
Unpacking texinfo (6.3.0.dfsg.1-1+b2) ...
Selecting previously unselected package binutils-source.
Preparing to unpack .../07-binutils-source_2.28-5_all.deb ...
Unpacking binutils-source (2.28-5) ...
Selecting previously unselected package gdb-source.
Preparing to unpack .../08-gdb-source_7.12-6_all.deb ...
Unpacking gdb-source (7.12-6) ...
Selecting previously unselected package libauthen-sasl-perl.
Preparing to unpack .../09-libauthen-sasl-perl_2.1600-1_all.deb ...
Unpacking libauthen-sasl-perl (2.1600-1) ...
Selecting previously unselected package libencode-locale-perl.
Preparing to unpack .../10-libencode-locale-perl_1.05-1_all.deb ...
Unpacking libencode-locale-perl (1.05-1) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../11-libtimedate-perl_2.3000-2_all.deb ...
Unpacking libtimedate-perl (2.3000-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../12-libhttp-date-perl_6.02-1_all.deb ...
Unpacking libhttp-date-perl (6.02-1) ...
Selecting previously unselected package libfile-listing-perl.
Preparing to unpack .../13-libfile-listing-perl_6.04-1_all.deb ...
Unpacking libfile-listing-perl (6.04-1) ...
Selecting previously unselected package libfont-afm-perl.
Preparing to unpack .../14-libfont-afm-perl_1.20-2_all.deb ...
Unpacking libfont-afm-perl (1.20-2) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../15-libhtml-tagset-perl_3.20-3_all.deb ...
Unpacking libhtml-tagset-perl (3.20-3) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../16-liburi-perl_1.71-1_all.deb ...
Unpacking liburi-perl (1.71-1) ...
Selecting previously unselected package libhtml-parser-perl.
Preparing to unpack .../17-libhtml-parser-perl_3.72-3_amd64.deb ...
Unpacking libhtml-parser-perl (3.72-3) ...
Selecting previously unselected package libio-html-perl.
Preparing to unpack .../18-libio-html-perl_1.001-1_all.deb ...
Unpacking libio-html-perl (1.001-1) ...
Selecting previously unselected package liblwp-mediatypes-perl.
Preparing to unpack .../19-liblwp-mediatypes-perl_6.02-1_all.deb ...
Unpacking liblwp-mediatypes-perl (6.02-1) ...
Selecting previously unselected package libhttp-message-perl.
Preparing to unpack .../20-libhttp-message-perl_6.11-1_all.deb ...
Unpacking libhttp-message-perl (6.11-1) ...
Selecting previously unselected package libhtml-form-perl.
Preparing to unpack .../21-libhtml-form-perl_6.03-1_all.deb ...
Unpacking libhtml-form-perl (6.03-1) ...
Selecting previously unselected package libhtml-tree-perl.
Preparing to unpack .../22-libhtml-tree-perl_5.03-2_all.deb ...
Unpacking libhtml-tree-perl (5.03-2) ...
Selecting previously unselected package libhtml-format-perl.
Preparing to unpack .../23-libhtml-format-perl_2.12-1_all.deb ...
Unpacking libhtml-format-perl (2.12-1) ...
Selecting previously unselected package libhttp-cookies-perl.
Preparing to unpack .../24-libhttp-cookies-perl_6.01-1_all.deb ...
Unpacking libhttp-cookies-perl (6.01-1) ...
Selecting previously unselected package libhttp-daemon-perl.
Preparing to unpack .../25-libhttp-daemon-perl_6.01-1_all.deb ...
Unpacking libhttp-daemon-perl (6.01-1) ...
Selecting previously unselected package libhttp-negotiate-perl.
Preparing to unpack .../26-libhttp-negotiate-perl_6.00-2_all.deb ...
Unpacking libhttp-negotiate-perl (6.00-2) ...
Selecting previously unselected package perl-openssl-defaults:amd64.
Preparing to unpack .../27-perl-openssl-defaults_3_amd64.deb ...
Unpacking perl-openssl-defaults:amd64 (3) ...
Selecting previously unselected package libnet-ssleay-perl.
Preparing to unpack .../28-libnet-ssleay-perl_1.80-1_amd64.deb ...
Unpacking libnet-ssleay-perl (1.80-1) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../29-libio-socket-ssl-perl_2.044-1_all.deb ...
Unpacking libio-socket-ssl-perl (2.044-1) ...
Selecting previously unselected package libnet-http-perl.
Preparing to unpack .../30-libnet-http-perl_6.12-1_all.deb ...
Unpacking libnet-http-perl (6.12-1) ...
Selecting previously unselected package libwww-robotrules-perl.
Preparing to unpack .../31-libwww-robotrules-perl_6.01-1_all.deb ...
Unpacking libwww-robotrules-perl (6.01-1) ...
Selecting previously unselected package libwww-perl.
Preparing to unpack .../32-libwww-perl_6.15-1_all.deb ...
Unpacking libwww-perl (6.15-1) ...
Selecting previously unselected package liblwp-protocol-https-perl.
Preparing to unpack .../33-liblwp-protocol-https-perl_6.06-2_all.deb ...
Unpacking liblwp-protocol-https-perl (6.06-2) ...
Selecting previously unselected package libnet-smtp-ssl-perl.
Preparing to unpack .../34-libnet-smtp-ssl-perl_1.04-1_all.deb ...
Unpacking libnet-smtp-ssl-perl (1.04-1) ...
Selecting previously unselected package libmailtools-perl.
Preparing to unpack .../35-libmailtools-perl_2.18-1_all.deb ...
Unpacking libmailtools-perl (2.18-1) ...
Selecting previously unselected package libxml-parser-perl.
Preparing to unpack .../36-libxml-parser-perl_2.44-2+b1_amd64.deb ...
Unpacking libxml-parser-perl (2.44-2+b1) ...
Selecting previously unselected package libxml-sax-expat-perl.
Preparing to unpack .../37-libxml-sax-expat-perl_0.40-2_all.deb ...
Unpacking libxml-sax-expat-perl (0.40-2) ...
Selecting previously unselected package newlib-source.
Preparing to unpack .../38-newlib-source_2.4.0.20160527-2_all.deb ...
Unpacking newlib-source (2.4.0.20160527-2) ...
Setting up libhtml-tagset-perl (3.20-3) ...
Setting up libfont-afm-perl (1.20-2) ...
Setting up tex-common (6.06) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
update-language: texlive-base not installed and configured, doing nothing!
Setting up libxml-namespacesupport-perl (1.11-1) ...
Setting up libencode-locale-perl (1.05-1) ...
Setting up libtimedate-perl (2.3000-2) ...
Setting up perl-openssl-defaults:amd64 (3) ...
Setting up libio-html-perl (1.001-1) ...
Setting up libtext-unidecode-perl (1.30-1) ...
Setting up libxml-sax-base-perl (1.07-1) ...
Setting up liblwp-mediatypes-perl (6.02-1) ...
Setting up liburi-perl (1.71-1) ...
Setting up libhtml-parser-perl (3.72-3) ...
Setting up newlib-source (2.4.0.20160527-2) ...
Setting up libnet-http-perl (6.12-1) ...
Setting up libwww-robotrules-perl (6.01-1) ...
Setting up gdb-source (7.12-6) ...
Setting up libauthen-sasl-perl (2.1600-1) ...
Setting up libxml-sax-perl (0.99+dfsg-2) ...
update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::PurePerl with priority 10...
update-perl-sax-parsers: Updating overall Perl SAX parser modules info file...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline

Creating config file /etc/perl/XML/SAX/ParserDetails.ini with new version
Setting up libhttp-date-perl (6.02-1) ...
Setting up libnet-ssleay-perl (1.80-1) ...
Setting up libio-socket-ssl-perl (2.044-1) ...
Setting up libhtml-tree-perl (5.03-2) ...
Setting up libfile-listing-perl (6.04-1) ...
Setting up libhttp-message-perl (6.11-1) ...
Setting up libxml-libxml-perl (2.0128+dfsg-1+deb9u1) ...
update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX::Parser with priority 50...
update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX with priority 50...
update-perl-sax-parsers: Updating overall Perl SAX parser modules info file...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version
Setting up libhttp-negotiate-perl (6.00-2) ...
Setting up libnet-smtp-ssl-perl (1.04-1) ...
Setting up libhtml-format-perl (2.12-1) ...
Setting up libhttp-cookies-perl (6.01-1) ...
Setting up libhttp-daemon-perl (6.01-1) ...
Setting up libhtml-form-perl (6.03-1) ...
Setting up texinfo (6.3.0.dfsg.1-1+b2) ...
Setting up libmailtools-perl (2.18-1) ...
Setting up binutils-source (2.28-5) ...
Setting up liblwp-protocol-https-perl (6.06-2) ...
Setting up libwww-perl (6.15-1) ...
Setting up libxml-parser-perl (2.44-2+b1) ...
Setting up libxml-sax-expat-perl (0.40-2) ...
update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::Expat with priority 50...
update-perl-sax-parsers: Updating overall Perl SAX parser modules info file...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version

解凍

tar jxf gdb.tar.bz2 

cd ../binutils
tar Jxfv binutils-2.28.tar.xz

cd ../newlib
tar  Jxfv newlib-2.4.0.20160527.tar.xz 

binutils

root@fc4077c03665:/usr/src/binutils/binutils-2.28/build_v850#  ../configure --target=v850-linux-elf --prefix=/usr/local/v850 --disable-nls

root@fc4077c03665:/usr/src/binutils/binutils-2.28/build_v850#  make

root@fc4077c03665:/usr/src/binutils/binutils-2.28/build_v850#  make install

configure, make, make install log
https://bit.ly/2CMBJIU

gmp

#./configure --enable-cxx --prefix=/usr/local/
# make
# make check
# make install

gmp log(no error)
https://bit.ly/2Psz5Pj

mpfr

# ./configure --with-gmp=/usr/local  --prefix=/usr/local/
# make
# make check

mpfr log(1 Fail, 1 Skip)
https://bit.ly/2CSblgH
make installはまだしていない。

gcc

root@978fe57a45cc:/usr/src# ls
binutils  gcc  gdb  gdb.tar.bz2  newlib
root@978fe57a45cc:/usr/src# cd gcc
root@978fe57a45cc:/usr/src/gcc# ls
ABOUT-NLS	    INSTALL	  compile	depcomp      intl	   libffi	libobjc		 ltgcc.m4	     mkdep	     zlib
COPYING		    LAST_UPDATED  config	fixincludes  isl	   libgcc	liboffloadmic	 ltmain.sh	     mkinstalldirs
COPYING.LIB	    MAINTAINERS   config-ml.in	gcc	     isl-0.18	   libgfortran	libquadmath	 lto-plugin	     move-if-change
COPYING.RUNTIME     MD5SUMS	  config.guess	gmp	     libada	   libgo	libsanitizer	 ltoptions.m4	     mpc
COPYING3	    Makefile.def  config.rpath	gmp-6.1.0    libatomic	   libgomp	libssp		 ltsugar.m4	     mpc-1.0.3
COPYING3.LIB	    Makefile.in   config.sub	gnattools    libbacktrace  libhsail-rt	libstdc++-v3	 ltversion.m4	     mpfr
ChangeLog	    Makefile.tpl  configure	gotools      libcc1	   libiberty	libtool-ldflags  lt~obsolete.m4      mpfr-3.1.4
ChangeLog.jit	    NEWS	  configure.ac	include      libcpp	   libitm	libtool.m4	 maintainer-scripts  symlink-tree
ChangeLog.tree-ssa  README	  contrib	install-sh   libdecnumber  libmpx	libvtv		 missing	     ylwrap
root@978fe57a45cc:/usr/src/gcc# ln -sf ../newlib-2.4.0.20160527/newlib .
root@978fe57a45cc:/usr/src/gcc# ln -sf ../newlib-2.4.0.20160527/libgloss .
root@978fe57a45cc:/usr/src/gcc# mkdir -p build_v850 && cd build_v850
root@978fe57a45cc:/usr/src/gcc/build_v850# ../configure --target=v850-linux-elf --prefix=/home/syohei/local/v850 --disable-nls --enable-languages=c --with-gmp=/home/syohei/local --with-mpfr=/home/syohei/local --with-mpc=/home/syohei/local     --with-ppl=/home/syohei/local --with-cloog=/home/syohei/local --with-newlib --with-headers=../newlib/libc/include --enable-lto --enable-cloog-backend=isl
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... v850-linux-elf
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... mawk
checking for libatomic support... no
checking for libitm support... no
checking for libsanitizer support... no
checking for libvtv support... no
checking for libmpx support... no
checking for libhsail-rt support... no
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info.  If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files.  They may be located in separate packages.

gmp

root@978fe57a45cc:/usr/src/gmp-6.1.0#  CPPFLAGS=-fexceptions ../gcc/configure --prefix=/tmp/gcc --enable-cxx
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... mawk
checking for libatomic support... ../gcc/configure: line 3177: ../gcc/libatomic/configure.tgt: No such file or directory
yes
checking for libitm support... ../gcc/configure: line 3215: ../gcc/libitm/configure.tgt: No such file or directory
yes
checking for libsanitizer support... ../gcc/configure: line 3234: ../gcc/libsanitizer/configure.tgt: No such file or directory
yes
checking for libvtv support... yes
checking for libmpx support... ../gcc/configure: line 3273: ../gcc/libmpx/configure.tgt: No such file or directory
yes
checking for libhsail-rt support... ../gcc/configure: line 3292: ../gcc/libhsail-rt/configure.tgt: No such file or directory
yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
configure: WARNING: using in-tree isl, disabling version check
The following languages will be built: c,c++,fortran,lto,objc
*** This configuration is not supported in the following subdirectories:
     gnattools
    (Any other directories should still work fine.)
checking for default BUILD_CONFIG... bootstrap-debug
checking for --enable-vtable-verify... no
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/local/lib/gcc/x86_64-linux-gnu/8.2.0/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/local/lib/gcc/x86_64-linux-gnu/8.2.0/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
configure: error: I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.
root@978fe57a45cc:/usr/src/gmp-6.1.0# 

makefile

最低限のクロスコンパイラの作り方
https://qiita.com/7shi/items/2d44e040bae930d11088

クロスコンパイラ 2011-05-13
http://d.hatena.ne.jp/n7shi/20110513

参考として自動化したスクリプト
https://gist.github.com/7shi/d9556be0474220916649

クロスコンパイラを一気に作る
https://gist.github.com/7shi/1048037

gcc-4.6.1の対応アーキテクチャ 2011-07-22
http://d.hatena.ne.jp/n7shi/20110722/1311322802

クロスコンパイラ大集合 2011-06-27
http://d.hatena.ne.jp/n7shi/20110627

作業途中の保存

$ docker ps
CONTAINER ID        IMAGE                      COMMAND             CREATED              STATUS              PORTS                                                                                                                                                                                                    NAMES
978fe57a45cc        kaizenjapan/gcc            "/bin/bash"         About a minute ago   Up About a minute                                                                                                                                                                                                            dreamy_rosalind

$ docker commit 978fe57a45cc  kaizenjapan/gcc

$ docker push kaizenjapan/gcc

2回目

$ mkdir v850
$ cd v850
$ docker run -it gcc /bin/bash

docker

# apt-get update

gcc: 8.2.0
mpfr: 3.1.4
gmp: 6.1.0
mac: 1.0.3
binutils: 2.28-5
newlib: 2.4.0.20160527-2
gdb: 7.12.0

参考文献

GNU GCCのビルド(ソースから)
https://qiita.com/silverskyvicto/items/9cd51bc9aa035eb301bb

GCC をソースからビルドする修行してみた
https://qiita.com/t_uda/items/080ae8adf924f83d2133

gccをソースからビルド/インストールする
https://qiita.com/liveralmask/items/6ed4a98ebb3bf6b7f707

gcc 7.2.0 をソースからビルドする
https://qiita.com/tetsu_koba/items/efd62c24406a89addba9

gcc 7.3.0をソースからコンパイル&インストール
https://qiita.com/shun_tak/items/48f0541c299b0170563e

最新のGCC8.1をビルドしてインストールする
https://qiita.com/reishoku/items/5b9d6d696d7f6ad29359

64bit Linuxで32bit ELFをコンパイル
https://qiita.com/mas9612/items/d680a5b4307bafd2d3a0

How to install GCC piece by piece with GMP, MPFR, MPC, ELF, without shared libraries?
https://stackoverflow.com/questions/9450394/how-to-install-gcc-piece-by-piece-with-gmp-mpfr-mpc-elf-without-shared-libra

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

小川清最終講義、小川清最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.10 初稿 20181022
ver. 0.11 push 20181023
ver. 0.12 V850/RH850の両方を検討 20181024
ver. 0.13 作業の見直し(review)整理 20181029
ver. 0.14 mpfrエラー記録 20181030

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

2
4
3

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
4