Changeset 763
- Timestamp:
- Sep 30, 2003, 8:19:21 PM (22 years ago)
- Location:
- trunk/src/emx/src/emxomf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/src/emxomf/emxomf.c
-
Property cvs2svn:cvs-rev
changed from
1.27
to1.28
r762 r763 1098 1098 À 1099 1099 1100 Symbol indices are assigned sequentially. 1101 1102 Note. $hll$ is a hack for making debug info for global externals, 1103 we need the extdef for the 2nd entry of the fake alias. */ 1100 Symbol indices are assigned sequentially. */ 1104 1101 1105 1102 static void write_extdef (void) … … 1287 1284 1288 1285 1289 /* Write ALIAS records into the output file for all indirect references. 1290 Note. The $hll$ aliases are debug info hacks and must be skipped! */ 1286 /* Write ALIAS records into the output file for all indirect references. */ 1291 1287 1292 1288 static void write_alias (void) … … 1296 1292 1297 1293 for (i = 0; i < sym_count - 1; ++i) 1298 if (sym_ptr[i].n_type == (N_INDR|N_EXT) && sym_ptr[i+1].n_type == N_EXT 1299 && !strstr(str_ptr + sym_ptr[i].n_un.n_strx, "$hll$")) 1294 if (sym_ptr[i].n_type == (N_INDR|N_EXT) && sym_ptr[i+1].n_type == N_EXT) 1300 1295 { 1301 1296 init_rec (ALIAS); … … 2893 2888 name = "LNKOH410"; 2894 2889 else if (!type || !stricmp (type, "VAC365")) 2895 name = hll_version == 4 ? "CPPLH436" : "CPPLH636"; 2890 name = NULL /* hll_version == 4 ? "CPPLH436" : "CPPLH636" 2891 - this linker figures it out by it self. */; 2896 2892 /* no DLL for link386! */ 2897 2893 } -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/emxomf/stabshll.c
-
Property cvs2svn:cvs-rev
changed from
1.23
to1.24
r762 r763 3338 3338 case 'G': 3339 3339 /* Static storage, global scope */ 3340 #if 1 /* birds ugly hacking of 'G' allow this code path.*/3340 #if 1 /* birds ugly hacking of 'G' allow this code path. (See dbxout.c.) */ 3341 3341 if (where == -1) 3342 { 3343 /* I really hope this works!*/3342 { /* If I got it right, dbxout.c uses N_FUN for globals in the 3343 text section. */ 3344 3344 where = symbol->n_type == N_FUN ? N_TEXT : N_DATA; 3345 3345 } 3346 3346 if (symbol->n_value == -12357) 3347 { /* Special hack for external and communials variables. 3348 We expect the previous two symbols to be an alias for the 3349 undefined symbol. The first of them will then have the name 3350 of this record with an $hll$.* suffix. */ 3347 { /* Special hack for external and communal variables. 3348 We expect the previous symbol to be an 0xfe or an 3349 (N_UNDF|N_EXT) entry for the symbol we're processing. */ 3351 3350 ++parse_ptr; 3352 3351 ti = hll_type (); 3353 3352 3354 if ( *index >= 2 3355 && symbol[-2].n_type == (N_INDR | N_EXT) 3356 && symbol[-1].n_type == N_EXT 3357 && strstr(str_ptr + symbol[-2].n_un.n_strx, "$hll$")) 3353 if ( *index >= 1 3354 && (symbol[-1].n_type == N_EXT || symbol[-1].n_type == 0xfe)) 3358 3355 { 3359 3356 const struct nlist *sym2; 3360 int fext = !strstr(str_ptr + symbol[-2].n_un.n_strx, "$hll$comm$");3361 3357 3362 3358 #if defined (HLL_DEBUG) 3363 3359 printf (" type=%#x\n", ti); 3364 3360 #endif 3365 sym2 = find_symbol_ex (symbol[-1].n_un.n_strx + str_ptr, *index - 1, fext);3361 sym2 = find_symbol_ex (symbol[-1].n_un.n_strx + str_ptr, *index - 1, 1); 3366 3362 if (sym2) 3367 3363 { … … 3373 3369 } 3374 3370 } 3375 warning ("Cannot find address of external variable %s", name);3371 warning ("Cannot find address of communal/external variable %s", name); 3376 3372 return; 3377 3373 } 3378 3374 /* fall thru */ 3379 3375 3380 #else 3376 #else /* old code */ 3381 3377 { 3382 3378 char *psz; … … 3404 3400 break; 3405 3401 } 3406 #endif 3402 #endif /* new / old 'G' handling. */ 3407 3403 3408 3404 case 'S': -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.