Codes/C

GCC의 구조

ch4n3 2017. 7. 6. 16:21

GCC의 구조


1. GCC의 역사

- Ultra sparc machine

 - 처음에는 크로스컴파일용이 아니였음.

2. GCC의 구조

일반 커파일러 구조

 Lexical Analyzer - Toenizer - Parse - Linker

  - Linker : obj 파일들을 연결함
  - obj : 변수로 선언했던 부분이 아직 변수로 남아 있음
    Linking 이 끝나야 메모리 값이 변수값에 대칭됨

4 stage

 1 stage : pure C compiler -> 변수이름이 주소로 나옴 ( 주소가 나오는 실행형식이 없는 a.out 포멧 실행 파일, 동적 할당 라이브러리 사용 불가 )
 2 stage : pure C Compiler + Standard I/O (Kernel 헤더정보 : 실행형식, 메모리 번지수, 스레드 등... 커널에서 지정한 표준을 이용해서 컴파일)
 3 stage : Static C Compiler + glibc ( Standard C Library )
 4 stage : Final Stage + Link available ( 동적할당 가능 )

// 하드웨어에 내장되어 있는 악성코드를 찾으려면 크로스 컴파일에 빠삭해야된다는 멘토님의 말씀,,,