- Timestamp:
 - Aug 7, 2003, 9:46:41 PM (22 years ago)
 - File:
 - 
      
- 1 edited
 
- 
          
  trunk/src/emx/src/emxomf/weakld.c (modified) (4 diffs, 1 prop)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
trunk/src/emx/src/emxomf/weakld.c
- 
Property       cvs2svn:cvs-rev
 changed from       
1.18to1.19 
r543 r544 353 353 /** string pool for miscellaneous string. */ 354 354 struct strpool * pStrMisc; 355 356 /** @group ILINK Crash Workaround 357 * @{ */ 358 /** Maximum number of externals in a object module. */ 359 unsigned cMaxObjExts; 360 361 /** Maximum number of externals in a library module. */ 362 unsigned cMaxLibExts; 363 /** @} */ 355 364 }; 356 365 typedef struct wld WLD; … … 2411 2420 papExts[i]->fFlags &= ~WLDSF_UNCERTAIN; 2412 2421 2422 /* Max extdefs values. */ 2423 if (fLibSearch) 2424 { 2425 if (pWld->cMaxLibExts < cExts) 2426 pWld->cMaxLibExts = cExts; 2427 } 2428 else 2429 { 2430 if (pWld->cMaxObjExts < cExts) 2431 pWld->cMaxObjExts = cExts; 2432 } 2433 2413 2434 return 0; 2414 2435 … … 3540 3561 if (!rc) 3541 3562 { 3563 /* Check if we need to fake a lot's of externals for working around an ILINK bug. */ 3564 if (pWld->cMaxObjExts < pWld->cMaxLibExts && !(pWld->fFlags & WLDC_LINKER_LINK386)) 3565 { 3566 int i; 3567 if (!param.cAliases) 3568 { 3569 rc = wldObjStart(pWld, phFile, "extdefshack.obj"); 3570 param.cAliases++; 3571 } 3572 3573 /* issue a shitload of extdefs. */ 3574 omf.hdr.chType = EXTDEF; 3575 omf.ach[0] = strlen("WEAK$ZERO"); 3576 memcmp(&omf.ach[1], "WEAK$ZERO", omf.ach[0]); 3577 omf.ach[omf.ach[0] + 2] = 0; 3578 omf.hdr.cb = omf.ach[0] + 3; 3579 for (i = 0; i < pWld->cMaxLibExts; i++) 3580 { 3581 } 3582 } 3583 3542 3584 if (ftell(phFile) != offAlias) 3543 3585 { 3544 3586 /* end the last object? */ 3545 if ( (pWld->fFlags & WLDC_LINKER_LINK386) && param.cAliases > 1)3587 if (pWld->fFlags & WLDC_LINKER_LINK386) 3546 3588 { 3547 rc = wldObjEnd(pWld, phFile, 32); 3589 if (param.cAliases) 3590 rc = wldObjEnd(pWld, phFile, 32); 3548 3591 if (!rc) 3549 3592 { … … 3559 3602 } 3560 3603 } 3561 else 3604 else if (param.cAliases) 3562 3605 rc = wldObjEnd(pWld, phFile, 1); 3563 3606 }  - 
Property       cvs2svn:cvs-rev
 changed from       
 
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  