Changeset 524
- Timestamp:
- Aug 4, 2003, 8:24:20 PM (22 years ago)
- Location:
- trunk/src/emx/src/emxomf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/src/emxomf/emxomfld.c
-
Property cvs2svn:cvs-rev
changed from
1.17
to1.18
r523 r524 825 825 /* add argument to argument vector. */ 826 826 if (!(argi % 32)) 827 argv = xrealloc(argv, argi + 32 );827 argv = xrealloc(argv, argi + 32 + 1); 828 828 argv[argi++] = xstrdup(psz); 829 829 … … 831 831 psz = psz2; 832 832 } 833 argv[argi] = NULL; 833 834 834 835 /* Spawn process. */ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/emxomf/weakld.c
-
Property cvs2svn:cvs-rev
changed from
1.9
to1.10
r523 r524 1447 1447 /* 1448 1448 * We'll simply return existing symbol when: 1449 * 1. adding a UNDEF where a PUBLIC or COMMexists.1449 * 1. adding a UNDEF where a PUBLIC, COMM, !WEAK UNDEF or IMPORT exists. 1450 1450 * 2. adding a WKEXT where a PUBLIC or COMM exists. 1451 1451 * 3. adding a WKEXT where a UNDEF which isn't UNCERTAIN exists. … … 1455 1455 if ( ( /* 1 */ 1456 1456 (fFlags & WLDSF_TYPEMASK) == WLDSF_UNDEF 1457 && ((pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_PUBLIC || (pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_COMM 1458 || (pSym->fFlags & (WLDSF_TYPEMASK | WLDSF_WEAK)) == WLDSF_UNDEF )1457 && ((pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_PUBLIC || (pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_COMM 1458 || (pSym->fFlags & (WLDSF_TYPEMASK | WLDSF_WEAK)) == WLDSF_UNDEF || (pSym->fFlags & (WLDSF_TYPEMASK)) == WLDSF_IMPORT) 1459 1459 ) || ( /* 2 */ 1460 1460 (fFlags & WLDSF_TYPEMASK) == WLDSF_WKEXT … … 1591 1591 1592 1592 /* Add the strings we'll need them very soon */ 1593 pszImpMod = strpool_addnu(pWld->pStrMisc, pachModName, cchModName); 1593 if (cchModName > 0) 1594 pszImpMod = strpool_addnu(pWld->pStrMisc, pachModName, cchModName); 1595 else 1596 pszImpMod = strpool_addu(pWld->pStrMisc, pachModName); 1594 1597 pszImpName = NULL; 1595 1598 if (!uOrdinal) 1596 1599 { 1597 if (!pachImpName || cchImpName == 0 ) 1600 /* If no imp name, we'll use the name we know it as. */ 1601 if (!pachImpName || cchImpName == 0 || !*pachImpName) 1598 1602 { 1599 1603 pachImpName = pachName; 1600 1604 cchImpName = cchName; 1601 1605 } 1602 pszImpName = strpool_addn(pWld->pStrMisc, pachImpName, cchImpName); 1606 if (cchImpName > 0) 1607 pszImpName = strpool_addn(pWld->pStrMisc, pachImpName, cchImpName); 1608 else 1609 pszImpName = strpool_add(pWld->pStrMisc, pachImpName); 1603 1610 } 1604 1611 … … 1690 1697 1691 1698 /* set default name */ 1692 if (!pachIntName || !cchIntName )1693 { 1694 pach ExpName = pachIntName;1695 cch ExpName = cchIntName;1699 if (!pachIntName || !cchIntName || !*pachIntName) 1700 { 1701 pachIntName = pachExpName; 1702 cchIntName = cchExpName; 1696 1703 } 1697 1704 … … 1878 1885 */ 1879 1886 pSym = symAdd(pWld, pMod, WLDSF_COMM | (fLibSearch ? WLDSF_LIBSEARCH : 0), 1880 pachName, cchName, NULL);1887 pachName, cchName, &eAction); 1881 1888 if (!pSym) 1882 1889 return NULL; … … 1891 1898 1892 1899 case WLDSA_UP: 1900 if ((pSym->fFlags & (WLDSF_TYPEMASK)) != WLDSF_COMM) 1901 break; 1902 /* fallthru */ 1893 1903 case WLDSA_OLD: 1894 1904 /* merge size */ … … 1897 1907 if (pSym->u.comm.cb < cbElement) 1898 1908 pSym->u.comm.cb = cbElement; 1899 pSym = NULL;1900 1909 break; 1901 1910 … … 2314 2323 int wldDestroy(PWLD pWld) 2315 2324 { 2325 PWLDMOD pObj; 2326 PWLDLIB pLib; 2327 2316 2328 if (!pWld) 2317 2329 return 0; 2318 2330 if (pWld->fFlags & WLDC_VERBOSE) 2319 2331 fprintf(stderr, "weakld: info: destroying linker instance\n"); 2332 2333 /* free mods */ 2334 for (pObj = pWld->pObjs; pObj;) 2335 { 2336 void *pv = pObj; 2337 pObj = pObj->pNext; 2338 free(pv); 2339 } 2340 for (pObj = pWld->pDef; pObj;) 2341 { 2342 void *pv = pObj; 2343 pObj = pObj->pNext; 2344 free(pv); 2345 } 2346 2347 /* free libs */ 2348 for (pLib = pWld->pLibs; pLib;) 2349 { 2350 void *pv = pLib; 2351 pLib = pLib->pNext; 2352 free(pv); 2353 } 2320 2354 2321 2355 /* members and finally the instance structure. */ … … 2446 2480 uOrdinal = pStmt->import.ordinal; 2447 2481 pSym = symAddImport(pParam->pWld, pParam->pMod, 0, 2448 pStmt->import.entryname , -1,2482 pStmt->import.entryname[0] ? pStmt->import.entryname : pStmt->import.internalname, -1, 2449 2483 pStmt->import.internalname, -1, 2450 2484 pStmt->import.modulename, -1, -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.