gentoo i486-gcc와 i686-gcc의 차이점에 대해서 궁금합니다
글쓴이: antslee602 / 작성시간: 월, 2009/01/12 - 4:55오후
gentoo x86 2008.0 stage3으로 설치를 했는데,
기본 stage3 tarball에 포함된 gcc와 패키지들이 모두 i486-gcc로 컴파일되어있더라구요.
여기저기 뒤져서 make.conf를 수정해서 i686-gcc로 gcc를 업데이트하고
깔려있던 패키지들도 모두 emerge -e world를 통해 i686-gcc로 재컴파일했는데.
이게 또 시간이 무시무시하게 듭니다
- gentoo의 컴파일속도 공포...
고백하자면,
i486-gcc와 i686-gcc의 정확한 차이도 모르고 - 물론 성능상의 이점이 있을꺼라고 생각하지만 - 무작정 컴파일 돌린거죠.
정확한 차이를 알고 싶어요.
Forums:
gcc option에 -march
gcc option에 -march option이 있는데 이 option에 setting하는 값이
i486, i686일겁니다.
이것은 CPU Type을 compiler에게 알려 주어
compiler가 해당 CPU에 맞는 최적화된 machine code를
generate하게 해줍니다.
i486에는 없지만 상위 CPU에 있는 instruction중
대표적인 것이 SIMD (Single Instruction Multiple Data)같은 것일 텐데요.
x86은 하위 호환성을 지원하므로
i686 계열 CPU에서 i486 instruction을 수행할 수 있지만,
비싼 돈 주고 산 기계를 제 값만큼 못 쓰는 것 같습니다.
보유하신 CPU의 type을 잘 알아 보신 후
해당 CPU type에 맞게 compile해서 사용하시는 것이 좋을 듯 합니다.
stage3-i686-2008.0.tar.bz2
stage3-i686-2008.0.tar.bz2
이걸로 받았으면 되는건뎅..
프비 매니아~
답변 감사드립니다.
okdongil님/
답변 감사드립니다.
shanme2님/
헉..그..그런게 있엇군요.
음.. 근데 생각해봐도
i686-gcc라고 해도 CFLAGS옵션인 march가 안 먹혀 잇으니까..
어짜피 다시 emerge -e gcc, emerge -e world 해야 하는 것 아닌가?
는 생각이 드네요...
댓글 달기