From e1c683bfd895c85fd91f8ea3734b4a7eba311e9f Mon Sep 17 00:00:00 2001 From: Cosmin Popa Date: Sun, 17 Mar 2024 17:09:01 +0200 Subject: [PATCH 1/3] chap-02: Fix wrong symbol name in explanation Signed-off-by: Cosmin Popa --- curs/chap-02-construire-programe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/curs/chap-02-construire-programe/README.md b/curs/chap-02-construire-programe/README.md index 0853a1c9..b0b39e21 100644 --- a/curs/chap-02-construire-programe/README.md +++ b/curs/chap-02-construire-programe/README.md @@ -379,7 +379,7 @@ La offseturile `0x04`, `0x0c`, `0x18` se găsesc referințe la simbolul `num_ite Necunoscându-se adresa simbolului `num_items` referințele sunt acum marcate cu `0x00000000`. Similar, la offsetul `0x21` se găsește referința la simbolul `increment`. -La fel, necunoscându-se adresa simbolului `num_items`, referința este marcată cu un placeholder. +La fel, necunoscându-se adresa simbolului `increment`, referința este marcată cu un placeholder. După ce stabilește adresele, linkerul va parcurge secțiunea de relocare `.rel.text` și va face înlocuirea referințelor cu adresele efective ale simbolurilor. Acest lucru se observă în fișierul executabil: From 0bacea222fc589a9411b53e9f41d5daf34e46d34 Mon Sep 17 00:00:00 2001 From: Cosmin Popa Date: Sun, 17 Mar 2024 17:10:10 +0200 Subject: [PATCH 2/3] chap-02: Fix typo in README Signed-off-by: Cosmin Popa --- curs/chap-02-construire-programe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/curs/chap-02-construire-programe/README.md b/curs/chap-02-construire-programe/README.md index b0b39e21..62f2b2f6 100644 --- a/curs/chap-02-construire-programe/README.md +++ b/curs/chap-02-construire-programe/README.md @@ -413,7 +413,7 @@ Un fișier obiect, obținut în urma compilării unui fișier cod sursă, conți Simbolurile nedefinite sunt simboluri **declarate** și **folosite** în fișierul cod sursă inițial. După cum le spune și numele, nu sunt, însă, definite, adică nu se aloca memorie pentru ele (și deci, în viitor, adrese). -În limbajul C, declarăm funcții prin precizarea antetului lor, fără definirea unui definirea unui corp de funcție: +În limbajul C, declarăm funcții prin precizarea antetului lor, fără definirea unui corp de funcție: ``` /* Declare function f. */ int f(void); From b3f95866b26c0949e374b5cc6169d65eae6df2a5 Mon Sep 17 00:00:00 2001 From: Cosmin Popa Date: Sun, 17 Mar 2024 17:18:52 +0200 Subject: [PATCH 3/3] chap-02: Fix small typo in README Signed-off-by: Cosmin Popa --- curs/chap-02-construire-programe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/curs/chap-02-construire-programe/README.md b/curs/chap-02-construire-programe/README.md index 62f2b2f6..22a45675 100644 --- a/curs/chap-02-construire-programe/README.md +++ b/curs/chap-02-construire-programe/README.md @@ -433,7 +433,7 @@ printf("num_items: %u\n", num_items); ``` Definirea unui simbol poate avea loc în alt modul. -Adică un alt modul poate defini o funcție (o funcție care să aibă corp) și o variabilă, rezultând în alocarea de memorie pentru aceste simoboluri: cod pentru funcție și date pentru variabilă. +Adică un alt modul poate defini o funcție (o funcție care să aibă corp) și o variabilă, rezultând în alocarea de memorie pentru aceste simboluri: cod pentru funcție și date pentru variabilă. Este rolul linkerului de a parcurge fișierele obiect și de a extrage simbolurile nedefinite. Pentru fiecare referință de simbol nedefinit, linkerul va căuta fișierul obiect unde simbolul este definit. Apoi va realiza conexiunea între cele două.