본문 바로가기
System programming

Linker 문제2

by sarberos 2022. 4. 6.

다음과 같이 모듈이 주어졌을때 

임의의 symbolx에 대해 REF(x.i)→DEF(x.k)로 나타낼 수 있다.

임의의 symbol x에 대해서 어떤 모듈에서 정의된 것을 사용하는가?

Problem A.

//Module1
int main()
{}
//Module 2
int main;
int p2(){
}

정답:

REF(main.1)→DEF(main.1)

REF(main.2)→DEF(main.1)

 

풀이:

main() -> strong symbol

변수 main -> weak symbol

strong과 weak가 있을때 string을 선택

 

 

ProblemB

//Module1
int main()
{}
//Module 2
int main = 1;
int p2(){
}

정답 : Error

 

풀이: strong symbol이 2개 이상이므로 error

 

main() = strong symbol

변수 main = strong symbol

 

ProblemC

//Module1
int x;
int main()
{}
//Module 2
double x = 1.0;
int p2(){
}

 

 

정답 : 

REF(x.1)→DEF(x.2)

REF(x.2)→DEF(x.2)

 

풀이:

int x  -> weak

double x  -> strong

'System programming' 카테고리의 다른 글

Linking 6 - Library interpositioning  (0) 2022.04.07
Linker 문제1  (0) 2022.04.06
Linker2  (0) 2022.04.05
Linking1  (0) 2022.04.04
시스템프로그래밍1 - Overview  (0) 2022.04.04

댓글