2015년 11월 25일 수요일

gcc compiler 를 설치하기 위한 여정..

 서버가 아직도 우분투 10.10 인 관계로 gcc ,g++ 컴파일러가 4.4 버전이다. ABySS 어셈블러도 신버전이 나온 김에 재설치를 하기 위하여 gcc, g++ 컴파일러를 4.9.3 버전으로 업데이트를 해보려고 한다.
 그런데, 이 서버는 예전에 좀비 서버가 된 적이 있어서 학교 전산팀에서 외부로 나가는 트래픽을 막아놓았다. 게다가 나에겐 비록 root 계정이 있기는 하지만 하는 김에 root 계정 없이 설치를 해보고자 했더니 아주 험난한 과정이 기다리고 있었다. 하지만 한번 해보고자 한다.

gcc 컴파일러 설치를 위해서는 선행해서 필요한 것들이 기다리고 있다.
GNU M4 (http://ftp.gnu.org/gnu/m4/)
autoconfigure (ftp://ftp.gnu.org/gnu/autoconf/)
automake (ftp://ftp.gnu.org/gnu/automake/)

꼭 순서대로 설치해야 된다.

본래대로라면 default 설치 위치가 /usr 로 설정되어 있지만 나는 root 계정이 아닌 관계로 개인 디렉토리에 설치할 거다.

각 압축 파일을 풀어서 새로 생성된 디렉토리로 들어간 다음
1. ./configure --prefix=/.../My_path
2. make
3. make install

순서대로 하면 /.../My_path/bin 디렉토리가 생겨 있고 여기에 컴파일된 파일이 생성되어 있을 것이다. 저 디렉토리를 $PATH 에 걸어놓으면 나머지는 순조롭게 설치가 된다.

그리고 gcc 홈페이지 (https://gcc.gnu.org/) 에 가보면 여러가지 필요한 것들이 나열 되어 있다. 그 중에서..
1. GNU Multiple Precision Library (GMP https://gmplib.org/)
2. MPFR Library (http://www.mpfr.org/  http://www.mpfr.org/mpfr-current/#download),
3. MPC Library (http://www.multiprecision.org/  http://www.multiprecision.org/index.php?prog=mpc&page=download)
4. ISL Library (ftp://gcc.gnu.org/pub/gcc/infrastructure/) version 0.15, 0.14, 0.13, or 0.12.2

왠만한 것들은 우분투에도 있지만 저 4가지는 없거나 $PATH 에 안 잡혀 있다. 그래서 일단 저 4가지를 설치해보자.

먼저 GMP 압축 파일을 받아서 압축을 해제하고 디렉토리로 들어간다.
1. ./configure --prefix=/.../My-path/usr/local
2. make
3. make check
4. make install

두번째로 MPFR 을 설치하자.
마찬가지로 압축 파일을 받아 압축 해제 후 디렉토리로 들어가서..
1. ./configure --prefix=/../My_path/usr/local --with-gmp=/.../My_path/usr/local
2. make
3. make install

 세번째 MPC 설치하자.
1. ./configure --prefix=/.../My_path/usr/local --with-gmp=/.../My_path/usr/local --with-mpfr=/.../My_path/usr/local
2. make
3. make install

 네번째 ISL 을 설치하자.
1. ./configure --prefix=/.../My_path/usr/local --with-gmp-prefix=/.../My_path/usr/local
2. make
3. make install

** gcc 설치하다가 알았는데 ISL 0.15 버전은 gcc 4.9.3 버전에서 지원하지 않는 것 같다. 0.14 버전으로 재설치했다.


마지막으로 대망의 gcc... 이것을 위해 여기까지 왔다.. ㅜ_ㅜ

** gcc 를 설치하기 전 LD_LIBRARY_PATH 라는 환경변수에 isl 등을 설치했던 lib 디렉토리를 추가해줘야 한다.
export LD_LIBRARY_PATH=/.../My_path/usr/local/lib/:$LD_LIBRARY_PATH:

1. gcc 압축 파일을 받아 압축을 해제하고 해당 디렉토리에 들어간 다음
./configure --prefix=/.../My_path/usr/local/gcc-4.9.3/ --enable-stage1-languages=all --with-mpc=/.../My_path/usr/local/ --with-mpfr=/.../My_path/usr/local/ --with-gmp=/.../My_path/usr/local/ --with-isl-include=/.../My_path/usr/local/include/ --with-isl-lib=/.../My_path/usr/local/lib/ --disable-multilib

본래 --with-isl=PATH 옵션이 있어서 해봤는데 계속 되는 에러로 --with-isl-include, --with-isl-lib 두 옵션으로 바꿔버렸더니 됐다. 또한 현재 시스템엔 32 bit 와 64 bit 중에 64 bit 시스템 밖에 없으므로 --enable-multilib 와 --disable-multilib 둘 중에 하나 고르라는 에러가 떠서 64 bit 만 쓸 것이므로 --disable-multilib 옵션을 골랐다.

2. make
3. make install

댓글 없음:

댓글 쓰기