WebKit 작업중에 오류가 발생해서 알아보니
gcc 4.4.1에 버그가 있는 것 같다.

현재까지 우분투 9.10 의 기본 gcc 버전은 4.4.1이다.
그래서 직접 gcc 4.5를 설치해보기로 했다.

gcc 4.5 릴리즈 노트 : http://gcc.gnu.org/gcc-4.5/
gcc SVN 관련 문서 : http://gcc.gnu.org/svn.html

1. gcc 4.5 다운로드
먼저 gcc 4.5를 뜻하는 브랜치를 확인해야하겠기에 아래 명령을 수행한다.
svn ls svn://gcc.gnu.org/svn/gcc/branches

명령의 결과로 무수히 많은 브랜치가 올라가는데 gcc 4.5 브랜치는
gcc-4_5-branch

SVN으로 받았으나 configure에서 에러가 발생했는데 메시지 공부하고 있기도 그렇고 해서 그냥 릴리즈 를 받기로 했다.(이제와서 생각해보니 별 차이는 없었을 것 같다.)
경로 : ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.5.0/
파일 : ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.5.0/gcc-4.5.0.tar.gz

2전에 gawk가 있어야 한다.
apt-get install gawk

2. GMP 설치
gcc를 그냥 configure를 수행하면 아래와 같은 에러 메시지를 보게 된다.
 checking for the correct version of mpfr.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ 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와 MPFR의 설치법이 나온다.

GMP 를 다운로드한다.
경로 : http://ftp.gnu.org/pub/gnu/gmp/
내가 받은 파일 : http://ftp.gnu.org/pub/gnu/gmp/gmp-5.0.1.tar.gz

압축을 해제하고 설치한다.
해당 폴더로 이동후
./configure --enable-cxx ( 이후 ppl 라이브러리가 이 인자를 요구했음 )
make install
하면 /usr/local 밑에 설치된다.

3. MPFR 설치
설명 : The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.

MPFR을 다운로드한다.
경로 : http://www.mpfr.org/mpfr-current/
내가 받은 파일 : http://mpfr.loria.fr/mpfr-current/mpfr-3.0.0.tar.gz

압축을 해제하고 설치한다.
해당 폴더로 이동후
./configure
make install
하면 /usr/local 밑에 설치된다.(위에 적은 말 Ctrl+C / Ctrl +V)

4. MPC 설치
MPC를 설치한다.
경로 : http://www.multiprecision.org/
내가 받은 파일 : http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz

압축을 해제하고 설치한다.
해당 폴더로 이동후
./configure
make install
하면 /usr/local 밑에 설치된다.(위에 적은 말 Ctrl+C / Ctrl +V)

**. PPL 빌드(시도했으나 실패. 그리고 설치에 영향을 주지 않았음)
./configure --with-libgmp-prefix=/usr/local --with-libgmpxx-prefix=/usr/loca

5. gcc 빌드
./configure
make (쫄아서 make install 안하고 일단 make)
make install

6. 테스트
export PATH=/usr/local/bin:$PATH
gcc --version
아래와 같은 결과가 나오는 것을 확인할 수 있었다.

gcc (GCC) 4.5.0
Copyright (C) 2010 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.

허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.
신고

'프로그래밍 언어 > C/C++' 카테고리의 다른 글

C로 수행시간 체크하기  (0) 2010.09.30
__builtin_expect 키워드  (0) 2010.09.10
gcc 업그레이드 (4.5.0)  (0) 2010.07.21
Header안에 static 변수  (0) 2010.02.21
디버깅하는 법 - 툴 - ltrace  (0) 2010.02.18
unresolved symbol 에 관하여  (0) 2010.01.27
Posted by 소혼
컴퓨터를 리부팅하고 커피 한잔을 찾아 왔는데
컴퓨터가 켜지질 않는다 -_-;

마우스 커서가 혼자서 돌고 있는 ... 정확하게 말하면, 반복하고 있었다.

해당하는 문제의 근본적인 원인은 찾지 못했으나,
아래와 같은 오류가 있는 것을 콘솔창에서 확인했다.

apt-get도 안되고 깝깝한 상황이었는데
undefined symbol이 나온 것을 확인하고, zlib을 grep으로 뒤져보니, /lib밑에 있는 zlib에 gzopen64가 없었다. ( grep -r gzopen65 /lib )

관련 파일의 링크 정보를 확인해보면 링크가 어디로 걸려있는지 확인 가능하다. /usr/lib 과 비교해본다.

그래서 간단히 해당 파일을 지우고 리부팅
일단 켜지긴 했지만 성능이 느려서 다시 설치하긴 했지만...혹 이런 식으로 라이브러리가 꼬였을때 체크해볼 필요가 있을 것 같다.

[symbol lookup error: /usr/lib/libxml2.so.2: undefined symbol: gzopen64 ]
https://bugs.launchpad.net/ubuntu/+source/libxml2/+bug/151045

ps> /usr/lib을 잘못 건드리면 위험하다. 개발환경을 설정할 때 주의할 필요가 있을 것 같다.
usr/lib을 실수로 지웠다면 일단 주위 사람들 것을 가져다 /usr/lib을 링크 걸어두고
apt-get등을 이용해 복구할 수 있었다.


신고
Posted by 소혼

리눅스와 MS windows의 텍스트는 new line을 표현하는 방법이 달라서
windows에서 저장된 소스를 리눅스로 가져오면 ^M이 붙는 경우가 있어 이를 제거하는 것 때문에 몇가지 솔루션을 찾아보았다.

1. vi에서 고치기
vi에서 파일을 열어서 고치는 법은 문자 치환을 이용한다.
:1,$s/^M//g
^M을 입력하는 방법은 Ctrl + Shift + V 누르고 M 을 누르면 된다.

2. 여러 파일 고치기
펄이 설치되어 있어야 한다.
find . -name "*" | xargs perl -i -pe '/\r//g'

3. dos2unix 사용하기
별도의 툴이다 이걸로도 된다는데 귀찮아서 그냥 설치 안해봤다 ㅋㅋ

신고
Posted by 소혼
TAG 리눅스

빌드 스크립트를 만들어 패키지 업데이트 하고, 소스 컴파일을 하도록 하다보니, 왕왕 삽질하는 경우가 있었는데, 남이 만든 스크립트를 갖다 쓰다 왕창 삽질을 하고 말았다.

 

[문제]apt-get update시 아래 에러 메시지 발생(키가 다르지만 비슷)

W: GPG error: http://archive.ubuntu.com hoary Release: The following signatures
were invalid: BADSIG 40976EAF437D05B5 Ub
untu Archive Automatic Signing Key

삽질 1>

시냅틱 매니저를 띄워서 리로드를 해봐도 403 Unauthentication (맞나?)와 함께 갱신이 안됨

(서버를 변경해보면서 해봐도 안됨, http_proxy 체크해봄)

 

삽질 2>

GPG 키에 문제가 있나 싶어 gpg key를 새로 받아봄

(기존에 있는 것은 지워도 봄 - 지우면 NO_PUBKEY 에러가 발생)

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F

gpg --armor --export 010908312D230C5F| apt-key add -

키서버는 우분투에 있는걸 해도 관계 없을듯.

 

해결책>

https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/24061

apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update

그냥 패키지가 꼬였던 듯 -_-;

 

이거 땜에 반나절 그냥 날려 버렸네 ㅠㅠ 아우~

신고
Posted by 소혼
이전버튼 1 이전버튼

티스토리 툴바