Build gcc-7.1.0 gcc-7.1.0ビルド
I'll keep gcc to the latest version. gccを最新版にしておこう。By the way, the current gcc version of debian jessie is 4.9.2.
ちなみに、debian jessie の現在のgccのバージョンは4.9.2 である。
gmp-6.1.2 mpfr-3.1.5 mpc-1.0.3 は更新されていない
gmp-6.1.2, mpfr-3.1.5, and mpc-1.0.3 are not updated, use the last build as it is.ので前回Buildしたのをそのまま使う。
Build gcc-7.1.0 gcc-7.1.0ビルド
root@jesse:~# apt-get update root@jesse:~# apt-get upgrade root@jesse:~# uname -a Linux jesse 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux root@jesse:~# gcc --version gcc (Debian 4.9.2-10) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. root@jesse:~# wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.1.0/gcc-7.1.0.tar.bz2 root@jesse:~# tar xf gcc-7.1.0.tar.bz2 root@jesse:~# cd gcc-7.1.0 root@jesse:~/gcc-7.1.0# mkdir build root@jesse:~/gcc-7.1.0# cd build root@jesse:~/gcc-7.1.0/build# ../configure --prefix=/usr/local/gcc-7.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3 --disable-multilib --enable-languages=c,c++ root@jesse:~/gcc-7.1.0/build# make -j 8 root@jesse:~/gcc-7.1.0/build# make check root@jesse:~/gcc-7.1.0/build# make install root@jesse:~/gcc-7.1.0/build# make clean root@jesse:~/gcc-7.1.0/build# cd ../..
Version check and symbolic link create
バージョン確認とシンボリックリンク作成
root@jesse:~# /usr/local/gCC-7.1.0/bin/gCC --version gcc (GCC) 7.1.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. root@jesse:~# ln -s /usr/local/gcc-7.1.0/bin/gcc /usr/local/bin/gcc-7.1.0 root@jesse:~# gcc-7.1.0 --version gcc-7.1.0 (GCC) 7.1.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.*Annotation: /bin/gc c --> /bin/gcc(Half size).
Somehow, an error occurs in PHP.
*注: /bin/gc c --> /bin/gcc(半角).
何故か、PHPでエラーが起こる。
Operation check 動作確認
root@jesse:~# cat hello.c
#include    <stdio.h>
int main (int argc,  char *argv[]) {
printf("Hello gcc-%d.%d.%d\n", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
}
root@jesse:~# gcc-7.1.0 -ohello hello.c
root@jesse:~# ./hello
Hello gcc-7.1.0
Gargle with one million digits of pi.
百万桁の円周率でうがい
hiroaki@jesse:~/suzuki$ cat makefile
CC=gcc-7.1.0
OPT= -static -O3 -m64 -mtune=amdfam10 -fopenmp -g
GMP505=gmp-5.0.5
GMP505_INC=-I/usr/local/$(GMP505)/include
GMP505_LIB=/usr/local/$(GMP505)/lib/libgmp.a
GMP510=gmp-5.1.0
GMP510_INC=-I/usr/local/$(GMP510)/include
GMP510_LIB=/usr/local/$(GMP510)/lib/libgmp.a
GMP512=gmp-5.1.2
GMP512_INC=-I/usr/local/$(GMP512)/include
GMP512_LIB=/usr/local/$(GMP512)/lib/libgmp.a
GMP513=gmp-5.1.3
GMP513_INC=-I/usr/local/$(GMP513)/include
GMP513_LIB=/usr/local/$(GMP513)/lib/libgmp.a
GMP600=gmp-6.0.0
GMP600_INC=-I/usr/local/$(GMP600)/include
GMP600_LIB=/usr/local/$(GMP600)/lib/libgmp.a
GMP610=gmp-6.1.0
GMP610_INC=-I/usr/local/$(GMP610)/include
GMP610_LIB=/usr/local/$(GMP610)/lib/libgmp.a
GMP611=gmp-6.1.1
GMP611_INC=-I/usr/local/$(GMP611)/include
GMP611_LIB=/usr/local/$(GMP611)/lib/libgmp.a
GMP612=gmp-6.1.2
GMP612_INC=-I/usr/local/$(GMP612)/include
GMP612_LIB=/usr/local/$(GMP612)/lib/libgmp.a
SRC= pi.c 
EXE= pi
.PHONY: clean
all: $(EXE)
pi: $(SRC)
        $(CC) $(OPT) $(GMP611_INC) $(SRC) -o $(EXE) $(GMP611_LIB)
pi505: $(SRC)
        $(CC) $(OPT) $(GMP505_INC) $(SRC) -o $(EXE)505 $(GMP505_LIB)
pi510: $(SRC)
        $(CC) $(OPT) $(GMP510_INC) $(SRC) -o $(EXE)510 $(GMP510_LIB)
pi512: $(SRC)
        $(CC) $(OPT) $(GMP512_INC) $(SRC) -o $(EXE)512 $(GMP512_LIB)
pi513: $(SRC)
        $(CC) $(OPT) $(GMP513_INC) $(SRC) -o $(EXE)513 $(GMP513_LIB)
pi600: $(SRC)
        $(CC) $(OPT) $(GMP600_INC) $(SRC) -o $(EXE)600 $(GMP600_LIB)
pi610: $(SRC)
        $(CC) $(OPT) $(GMP610_INC) $(SRC) -o $(EXE)610 $(GMP610_LIB)
pi611: $(SRC)
        $(CC) $(OPT) $(GMP611_INC) $(SRC) -o $(EXE)611 $(GMP611_LIB)
pi612: $(SRC)
        $(CC) $(OPT) $(GMP612_INC) $(SRC) -o $(EXE)612 $(GMP612_LIB)
clean:
        rm -f pi
        rm -f pi505
        rm -f pi510
        rm -f pi512
        rm -f pi513
        rm -f pi600
        rm -f pi610
        rm -f pi611
        rm -f pi612
hiroaki@jesse:~/suzuki$ make pi505
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-5.0.5/include pi.c  -o pi505 /usr/local/gmp-5.0.5/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi510
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-5.1.0/include pi.c  -o pi510 /usr/local/gmp-5.1.0/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi512
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-5.1.2/include pi.c  -o pi512 /usr/local/gmp-5.1.2/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi513
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-5.1.3/include pi.c  -o pi513 /usr/local/gmp-5.1.3/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi600
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-6.0.0/include pi.c  -o pi600 /usr/local/gmp-6.0.0/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi610
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-6.1.0/include pi.c  -o pi610 /usr/local/gmp-6.1.0/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi611
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-6.1.1/include pi.c  -o pi611 /usr/local/gmp-6.1.1/lib/libgmp.a
hiroaki@jesse:~/suzuki$ make pi612
gcc-7.1.0 -static -O3 -m64 -mtune=amdfam10 -fopenmp -g -I/usr/local/gmp-6.1.2/include pi.c  -o pi612 /usr/local/gmp-6.1.2/lib/libgmp.a
hiroaki@jesse:~/suzuki$ time ./pi505 >/dev/null
with gcc-7.1.0, gmp-5.0.5
real0m1.701s
user0m1.608s
sys0m0.092s
hiroaki@jesse:~/suzuki$ time ./pi510 >/dev/null
with gcc-7.1.0, gmp-5.1.0
real0m1.631s
user0m1.540s
sys0m0.088s
hiroaki@jesse:~/suzuki$ time ./pi512 >/dev/null
with gcc-7.1.0, gmp-5.1.2
real0m1.628s
user0m1.552s
sys0m0.072s
hiroaki@jesse:~/suzuki$ time ./pi513 >/dev/null
with gcc-7.1.0, gmp-5.1.3
real0m1.589s
user0m1.520s
sys0m0.068s
hiroaki@jesse:~/suzuki$ time ./pi600 >/dev/null
with gcc-7.1.0, gmp-6.0.0
real0m1.510s
user0m1.448s
sys0m0.060s
hiroaki@jesse:~/suzuki$ time ./pi610 >/dev/null
with gcc-7.1.0, gmp-6.1.0
real0m1.314s
user0m1.264s
sys0m0.048s
hiroaki@jesse:~/suzuki$ time ./pi611 >/dev/null
with gcc-7.1.0, gmp-6.1.1
real0m1.345s
user0m1.264s
sys0m0.076s
hiroaki@jesse:~/suzuki$ time ./pi612 >/dev/null
with gcc-7.1.0, gmp-6.1.2
real0m1.308s
user0m1.244s
sys0m0.060s
hiroaki@jesse:~/suzuki$ 
Wow!  It became a little faster? That's within the range of error.おっ! ちょびっと速くなった? 誤差の範囲内だな。
ThemeSwitch
  
 - Basic
 
Created in 0.0305 sec.
 
 















   
Comments