cpu 아키텍처가 바뀌면 명령어 집합이나 기계어, 어셈블리어까지 다 달라서 당연히 다 바꿔줘야 하고요..
gcc는 리눅스/유닉스 쪽에서 사용하는 컴파일러 중의 일종이고 맥의 gcc에서 llvm으로 트랜지션은 집단 간의 이해관계 이야기니 패스하고
컴파일러가 넓은 의미로는 a언어에서 b언어로 통으로 바꿔주는 프로그램이란 뜻인데, 보통은 좁은 의미는 대충 작성한 프로그램을 뺄거 빼고 넣을거 넣은 다음에 기계에서 돌아갈 수 있는 형태로 바꿔 주는 프로그램임
근데 cpu 아키텍처가 바뀌면 당연히 x86-64 아키텍처에 맞게 프로그램을 만들어 주는 컴파일러도 당연히 새 아키텍처 버전으로 바꿔야지..
- dc official App
이런거는 콘솔겜기 세대간호환이 왜바로 않되는지 설명하는게 더와닿더라 ㅋㅋㅋ
플4-5나 엑박같은 경우야 되겠지만은 - dc App
3-4간 바로않됐을꺼 3가 파워pc계열이
GCC는 기본적으로 다양한 아키텍쳐를 지원하게 되어있어. 코드 자체가 하드웨어의 로우레벨에 접근해야 한다던가 자료형식 호환 같은 문제가 있는게 아닌 간단한 코드들은 그냥 컴파일만 옵션에 다른 아키텍쳐로 지정해서 빌드라면 됨.
그니까 그 아키텍처 지정도 새거 나오면 일일히 지원하게 해줘야 한다고 - dc App
간단한것들은 그냥 각종 확장명령들이라던가 성능 좀 포기하고 굴리면 그대로 못쓸건 없어. X86->ARM으로 건너가는걸 기준으로 하면 원본이 수십년전 90년대 gcc 버전을 쓰는게 아니면 ARMv7 정도 지원하는 버전만 되어도 그냥 그대로 쓰면 됨.
본문에 아키텍처가 다르면 명령어 셋이 다르다고 쓰여 있는데요 - dc App
당연히 새로 빌드하는걸 이야기하는거고 컴파일러까지 다 바꿀 필요는 없고 그냥 같은 버전의 컴파일러로 빌드해도 된다는건데 무슨소릴 하는거야
본문에 cpu 아키텍처 바뀌는 이야기 하는데 컴파일러가 gcc면 이거저거 지원하니 안 바꿔도 된다는 헛소리를 하길래 어처구니가 없어서 쓴 글임. 컴파일러가 x86-64 아키텍처를 타깃으로 기계어 코드를 생성하는데 아키텍처 바뀌어도 상관이 없다니 뭔 소리임 - dc App
cs 잘 아농 - dc App