Changeset 516


Ignore:
Timestamp:
Aug 4, 2003, 1:05:40 AM (22 years ago)
Author:
bird
Message:

Bugfixing.

Location:
trunk/src/emx/src/emxomf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/emxomf/emxomfld.c

    • Property cvs2svn:cvs-rev changed from 1.15 to 1.16
    r515 r516  
    599599static void weak_prelink ()
    600600{
    601   int     rc = 0;
    602   PWLD    pwld;
    603 
    604   pwld = wldCreate (WLDC_VERBOSE);
     601  int           rc = 0;
     602  name_list *   pOpt;
     603  PWLD          pwld;
     604  unsigned      fFlags = 0;
     605
     606  /* look for ilinker options. */
     607  for (pOpt = options; pOpt; pOpt = pOpt->next)
     608    if (    !strnicmp(pOpt->name, "/NOE", 4)
     609        ||  !strnicmp(pOpt->name, "-NOE", 4))
     610        fFlags |= WLDC_NO_EXTENDED_DICTIONARY_SEARCH;
     611    else
     612    if (    !strnicmp(pOpt->name, "/INC", 4)
     613        ||  !strnicmp(pOpt->name, "-INC", 4))
     614        fFlags = fFlags;                /* Ignore for now. */
     615    else
     616    if (    !strnicmp(pOpt->name, "/IG", 3)
     617        ||  !strnicmp(pOpt->name, "-IG", 3))
     618        fFlags |= WLDC_CASE_INSENSITIVE;
     619    else
     620    if (    !strnicmp(pOpt->name, "/I", 2)
     621        ||  !strnicmp(pOpt->name, "-I", 2))
     622        fFlags |= WLDC_VERBOSE;
     623    else
     624    if (    !strnicmp(pOpt->name, "/NOIN", 5)
     625        ||  !strnicmp(pOpt->name, "-NOIN", 5))
     626        fFlags &= ~WLDC_VERBOSE;
     627    else
     628    if (    !strnicmp(pOpt->name, "/NOI", 4)
     629        ||  !strnicmp(pOpt->name, "/NOI", 4))
     630        fFlags &= ~WLDC_CASE_INSENSITIVE;
     631
     632  /* create the linker and to the linking. */
     633  pwld = wldCreate (fFlags);
    605634  if (pwld)
    606635    {
  • trunk/src/emx/src/emxomf/weakld.c

    • Property cvs2svn:cvs-rev changed from 1.6 to 1.7
    r515 r516  
    5454#define WLDINTERR(pWld, pMod)   wldIntErr(pWld, pMod, __FILE__, __LINE__, __FUNCTION__);
    5555
    56 #ifdef DEBUG
     56#if 0 /*def DEBUG*/
    5757#define SYMDBG(pSym, pszMsg)    symDbg(pSym, pszMsg);
    5858#define WLDDBG(a)               wldDbg a
     
    732732            {
    733733                case COMENT: case COMENT | REC32:
    734                     switch (*++u.pch)
     734                    uch = OMF_BYTE(); /* comment type */
     735                    uch = OMF_BYTE(); /* comment class */
     736                    switch (uch)
    735737                    {
    736738                        case CLASS_PASS:
     
    13091311 *
    13101312 * We'll return upgraded existing symbol when:
    1311  *      1. adding a PUBLIC or COMM where a UNDEF or WKEXT exists.
     1313 *      1. adding a PUBLIC, COMM or IMPORT where a UNDEF or WKEXT exists.
    13121314 *      2. adding a !WEAK PUBLIC or !WEAK COMM where a WEAK PUBLIC or WEAK COMM exists.
    13131315 *      3. adding a !WEAK UNDEF where a WEAK UNDEF exists.
     
    13721374    /* search for existing symbol  */
    13731375    pSym = pWld->Global.ap[uHash];
    1374     while (pSym && pSym->pszName == pszName)
     1376    while (pSym && pSym->pszName != pszName)
    13751377        pSym = pSym->pHashNext;
    13761378
     
    14441446        /*
    14451447         * We'll return upgraded existing symbol when:
    1446          *      1. adding a PUBLIC or COMM where a UNDEF or WKEXT exists.
     1448         *      1. adding a PUBLIC, COMM or IMPORT where a UNDEF or WKEXT exists.
    14471449         *      2. adding a !WEAK PUBLIC or !WEAK COMM where a WEAK PUBLIC or WEAK COMM exists.
    14481450         *      3. adding a !WEAK UNDEF where a WEAK UNDEF exists.
     
    14511453        else
    14521454        if ( (     /* 1 */
    1453                 ((fFlags & WLDSF_TYPEMASK) == WLDSF_PUBLIC || (fFlags & WLDSF_TYPEMASK) == WLDSF_COMM)
     1455                ((fFlags & WLDSF_TYPEMASK) == WLDSF_PUBLIC || (fFlags & WLDSF_TYPEMASK) == WLDSF_COMM || (fFlags & WLDSF_TYPEMASK) == WLDSF_IMPORT)
    14541456            &&  ((pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_WKEXT || (pSym->fFlags & WLDSF_TYPEMASK) == WLDSF_UNDEF)
    14551457            ) || ( /* 2 */
     
    15451547    {
    15461548        case WLDSA_NEW:
     1549        case WLDSA_UP:
    15471550            pSym->u.import.pszImpMod = pszImpMod;
    15481551            pSym->u.import.uImpOrd   = uOrdinal;
     
    15821585        }
    15831586
    1584         case WLDSA_UP:
    15851587        default:
    15861588            WLDINTERR(pWld, pMod);
     
    17181720    PWLDSYM         pSym;
    17191721
    1720     pSym = symAdd(pWld, pMod, WLDSF_UNDEF | (fLibSearch ? WLDSF_LIBSEARCH : 0),
     1722    pSym = symAdd(pWld, pMod, WLDSF_UNDEF | WLDSF_UNCERTAIN | (fLibSearch ? WLDSF_LIBSEARCH : 0),
    17211723                  pachName, cchName, NULL);
    17221724    if (!pSym)
     
    19781980
    19791981            case COMENT: case COMENT | REC32:
    1980                 switch (*++u.pch)
     1982                uch = OMF_BYTE(); /* comment type */
     1983                uch = OMF_BYTE(); /* comment class */
     1984                switch (uch)
    19811985                {
    19821986                    case CLASS_PASS:
     
    22132217 * @param   fFlags  Linker flags as defined by enum wld_create_flags.
    22142218 */
    2215 PWLD    wldCreate(int fFlags)
     2219PWLD    wldCreate(unsigned fFlags)
    22162220{
    22172221    PWLD    pWld = xmalloc(sizeof(*pWld));
  • trunk/src/emx/src/emxomf/weakld.h

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r515 r516  
    5151/** @group Weak LD - Public methods.
    5252 * @{ */
    53 PWLD    wldCreate(int fFlags);
     53PWLD    wldCreate(unsigned fFlags);
    5454int     wldAddObject(PWLD pWld, FILE *phFile, const char *pszName);
    5555int     wldAddDefFile(PWLD pWld, FILE *phFile, const char *pszName);
    5656int     wldAddLibrary(PWLD pWld, FILE *phFile, const char *pszName);
    5757int     wldPass1(PWLD pWld);
    58 int     wldGenerate_weakobj(PWLD pwld, char *pszName);
     58int     wldGenerateWeakobj(PWLD pwld, char *pszName);
    5959int     wldDestroy(PWLD pWld);
    6060/** @} */
Note: See TracChangeset for help on using the changeset viewer.