Mercurial > hg-old > index.cgi
comparison lwlink/trunk/src/readfiles.c @ 120:36ce328df3c3
resolve incomplete references done
author | lost |
---|---|
date | Wed, 21 Jan 2009 06:14:08 +0000 |
parents | 8bc00221ae89 |
children | 4ac96c697ef0 |
comparison
equal
deleted
inserted
replaced
119:8bc00221ae89 | 120:36ce328df3c3 |
---|---|
182 se = lw_malloc(sizeof(symtab_t)); | 182 se = lw_malloc(sizeof(symtab_t)); |
183 se -> next = s -> localsyms; | 183 se -> next = s -> localsyms; |
184 s -> localsyms = se; | 184 s -> localsyms = se; |
185 se -> sym = fp; | 185 se -> sym = fp; |
186 se -> offset = val; | 186 se -> offset = val; |
187 se -> realval = val; | |
188 } | 187 } |
189 | 188 |
190 // now parse the exported symbol table | 189 // now parse the exported symbol table |
191 while (CURBYTE()) | 190 while (CURBYTE()) |
192 { | 191 { |
203 se = lw_malloc(sizeof(symtab_t)); | 202 se = lw_malloc(sizeof(symtab_t)); |
204 se -> next = s -> exportedsyms; | 203 se -> next = s -> exportedsyms; |
205 s -> localsyms = se; | 204 s -> localsyms = se; |
206 se -> sym = fp; | 205 se -> sym = fp; |
207 se -> offset = val; | 206 se -> offset = val; |
208 se -> realval = val; | |
209 } | 207 } |
210 | 208 |
211 // now parse the incomplete references and make a list of | 209 // now parse the incomplete references and make a list of |
212 // external references that need resolution | 210 // external references that need resolution |
213 while (CURBYTE()) | 211 while (CURBYTE()) |
258 break; | 256 break; |
259 | 257 |
260 case 0x05: | 258 case 0x05: |
261 // section base reference (NULL internal reference is | 259 // section base reference (NULL internal reference is |
262 // the section base address | 260 // the section base address |
263 term = lw_expr_term_create_sym(NULL, 0); | 261 term = lw_expr_term_create_sym(NULL, 1); |
264 break; | 262 break; |
265 | 263 |
266 default: | 264 default: |
267 fprintf(stderr, "%s (%s): bad relocation expression\n", fn -> filename, s -> name); | 265 fprintf(stderr, "%s (%s): bad relocation expression\n", fn -> filename, s -> name); |
268 exit(1); | 266 exit(1); |