Cywin에서 크로스 컴파일러를 만들기위해서는 먼저 소스 패키지를 설치해야합니다. setup.exe 를 실행해서 Devel 부분의 Binutil과 gcc-core 의 소스 패키지를 선택하고 설치를 수행하면 소스가 /usr/src 폴더에 설치될 겁니다. ^^
위와 같이 실행하고나면 정상적으로 build된 경우 /usr/cross 라는 폴더가 생성되어있을 겁니다. 그 폴더에 들어가보시면 빌드 결과물을 확인할 수 있습니다. ;) 현재 x86_64 용 glib가 생성되어있지 않은 상태이므로, 공유라이브러리를 사용하지 않도록 --disable-shared와 -all-static 옵션을 줘야합니다. 주지 않을 경우 나중에 gcc 빌드할 때 문제가 발생합니다. ㅜ_ㅜ crti.o가 없다고 계속 에러가... ㅠㅠ
위 과정이 정상적으로 끝나고나면 gcc-3.4.4-3 이라는 폴더로 이름이 변경될겁니다. 그럼 해당 폴더로 이동해서 아래의 순서대로 실행합니다.
위와 같이 실행하고나면 /usr/cross에서 gcc관련 파일들을 보실 수 있습니다.
이 간단한걸 하려고 며칠을 해매었는지 모르겠군요. ㅜ_ㅜ)-b
다른 분들은 이런 걸로 고생 안하셨으면 합니다. ㅜ_ㅜ
1.Binary Utility Build
제일 먼저 해야할 일은 binutil을 빌드하는 일입니다. x86_64용 크로스컴파일러를 빌드하기 위해서는 x86_64용 ld와 as 등등 각종 링커와 어셈블러들이 필요하기 때문이지요 ;) bintul을 빌드하는 방법은 아래와 같습니다.- export PREFIX=/usr/cross
- export TARGET=x86_64-pc-linux
- ./configure --target=$TARGET --prefix=$PREFIX --enable-64-bit-bfd --disable-shared
- make configure-host
- make LDFLAGS="-all-static"
- make install
2. GCC Build
그 다음 해야할 일은 gcc를 생성하는 일입니다. cygwin에 포함된 gcc 소스에는 소스 파일과 패치파일을 포함하고 있습니다. 정상적으로 빌드하기위해서는 패치를 수행해야 하는데, 다행이도 gcc-3.4.4.sh 라는 스크립트가 있습니다. 아래의 빌드를 수행하기 전에 먼저 아래와 같이 입력해서 패치를 수행합니다.- gcc-3.4.4.sh prepare
- export PATH=$PREFIX/bin:$PATH
- ./configure --target=$TARGET --prefix=$PREFIX --disable-nls --enable-languages=c --with-newlib --without-headers --disable-shared --disable-threads
- make configure-host
- make LDFLAGS="-static" all-gcc
- make install-gcc
이 간단한걸 하려고 며칠을 해매었는지 모르겠군요. ㅜ_ㅜ)-b
다른 분들은 이런 걸로 고생 안하셨으면 합니다. ㅜ_ㅜ
'OS Kernel > MINT64 OS' 카테고리의 다른 글
[MileStone] 드디어 Interrupt 처리 부분과 IOAPIC, 그리고 APIC 설정 기능을 추가했습니다. ㅠㅠ (6) | 2008.07.21 |
---|---|
[MileStone] 취미를 넘어서 일거리(??)가 되어버린 64Bit OS 입니다. ^^;;;; (16) | 2008.07.14 |
드디어 cygwin에서 64bit 크로스 컴파일러(cross compiler)를 만드는데 성공했습니다. ㅜ_ㅜ (4) | 2008.07.09 |
전생에 무슨 죄를 지었길래 이렇게 크로스 컴파일이 안되는 것인지... ㅜ_ㅜ (3) | 2008.07.08 |
binutil은 크로스 컴파일 성공... 그러나 gcc는 실패... ㅜ_ㅜ (0) | 2008.07.07 |