Changeset 2692


Ignore:
Timestamp:
Apr 11, 2006, 12:50:06 AM (19 years ago)
Author:
bird
Message:

#89: more wlink stuff. ; Fixed the exp=int .def errors in weakld.

Location:
trunk/emx
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/emx/ChangeLog.emx

    r2690 r2692  
    11/* $Id$ */
     2
     32006-04-10: knut st. osmundsen <bird-gccos2-spam@anduin.net>
     4    - emxomfld, weakld:
     5        o #89: more wlink stuff.
     6        o Fixed the exp=int .def errors in weakld.
    27
    382006-04-01: knut st. osmundsen <bird-gccos2-spam@anduin.net>
  • trunk/emx/src/emxomf/emxomfld.c

    r2691 r2692  
    10501050  if (!stricmp(linker_type, "LINK386"))
    10511051      fFlags |= WLDC_LINKER_LINK386;
     1052  else if (!stricmp(linker_type, "WLINK"))
     1053      fFlags |= WLDC_LINKER_WLINK;
    10521054
    10531055  for (pOpt = options; pOpt; pOpt = pOpt->next)
     
    14431445      response_file = NULL;
    14441446    }
    1445   if (response_fname[0] != '\0')
    1446     {
    1447       remove (response_fname);
    1448       response_fname[0] = '\0';
    1449     }
    1450   if (weakobj_fname[0] != '\0')
    1451     {
    1452       remove (weakobj_fname);
    1453       weakobj_fname[0] = '\0';
    1454     }
    1455   if (weakdef_fname[0] != '\0')
    1456     {
    1457       remove (weakdef_fname);
    1458       weakdef_fname[0] = '\0';
    1459     }
    1460   for (; conv_list; conv_list = conv_list->next)
    1461       remove (conv_list->name);
     1447  if (opt_t <= 1)
     1448    {
     1449      if (response_fname[0] != '\0')
     1450        {
     1451          remove (response_fname);
     1452          response_fname[0] = '\0';
     1453        }
     1454      if (weakobj_fname[0] != '\0')
     1455        {
     1456          remove (weakobj_fname);
     1457          weakobj_fname[0] = '\0';
     1458        }
     1459      if (weakdef_fname[0] != '\0')
     1460        {
     1461          remove (weakdef_fname);
     1462          weakdef_fname[0] = '\0';
     1463        }
     1464      for (; conv_list; conv_list = conv_list->next)
     1465        remove (conv_list->name);
     1466    }
    14621467}
    14631468
     
    14691474         "Copyright (c) 1992-1996 by Eberhard Mattes\n"
    14701475         "Copyright (c) 2003 by InnoTek Systemberatung GmbH\n"
    1471          "Copyright (c) 2003-2004 by Knut St. Osmundsen\n"
     1476         "Copyright (c) 2003-2006 by Knut St. Osmundsen\n"
    14721477         "\n", stderr);
    14731478  fputs ("Usage: emxomfld -o <file> [-l <lib>] [-L <libdir>] [-T <base>] [-igtsS]\n"
     
    16521657        case 't':
    16531658        case 'i':                 /* Trace the linking process, sending /INFO to the IBM/M$ linker. */
    1654           opt_t = TRUE;
     1659          opt_t++;
    16551660          break;
    16561661
     
    20852090      /* standard stuff */
    20862091
    2087       //if (!strip_symbols)
    2088       //  put_arg ("debug hll", FALSE, FALSE);
     2092      if (!strip_symbols)
     2093        fprintf (response_file, "DEBUG HLL\n");
    20892094      fprintf (response_file, "OPTION QUIET\n");
    20902095      fprintf (response_file, "OPTION OSNAME='OS/2 EMX'\n");
     
    21122117      /* Add the linker options specified with -O. */
    21132118
    2114       put_args (options, FALSE);
     2119      for (pcur = options; pcur; pcur = pcur->next)
     2120        fprintf (response_file, "%s\n", pcur->name);
    21152121
    21162122      /* Put the object file names onto the command line. */
  • trunk/emx/src/emxomf/weakld.c

    r2673 r2692  
    19981998            {
    19991999                pSym->fFlags |= WLDSF_ALIAS;
     2000                pSym->fFlags &= ~WLDSF_UNDEF;
    20002001                pSym->pAliasFor = pSymAlias;
    20012002            }
     
    34983499            {
    34993500                cch = sprintf(szTmp, "  \"%s\" = \"%s\"", pStmt->export.entryname, pSymExp->pszWeakName);
    3500                 pSymExp->fFlags |= WLDSF_WEAKALIASDONE;
     3501                if (!(pParam->pWld->fFlags & WLDC_LINKER_WLINK))
     3502                    pSymExp->fFlags |= WLDSF_WEAKALIASDONE;
    35013503            }
    35023504            if (pStmt->export.flags & _MDEP_ORDINAL)
     
    36883690                        /* now see if there are any aliases in __declspec(dllexport) statements. */
    36893691                        if (!rc)
    3690                             rc = symEnum(pWld, &pWld->Global,
    3691                                          WLDSF_EXPORT | WLDSF_WEAK, WLDSF_EXPORT | WLDSF_WEAK | WLDSF_EXPORT_DEF | WLDSF_WEAKALIASDONE,
    3692                                          wldGenerateDefExportEnum, &param);
     3692                        {
     3693                            if (0)//pWld->fFlags & WLDC_LINKER_WLINK)
     3694                                rc = symEnum(pWld, &pWld->Global,
     3695                                             WLDSF_EXPORT | WLDSF_EXPORT_DEF | WLDSF_WEAK, WLDSF_EXPORT | WLDSF_EXPORT_DEF | WLDSF_WEAK | WLDSF_WEAKALIASDONE,
     3696                                             wldGenerateDefExportEnum, &param);
     3697                            else
     3698                                rc = symEnum(pWld, &pWld->Global,
     3699                                             WLDSF_EXPORT | WLDSF_WEAK, WLDSF_EXPORT | WLDSF_WEAK | WLDSF_EXPORT_DEF | WLDSF_WEAKALIASDONE,
     3700                                             wldGenerateDefExportEnum, &param);
     3701                        }
    36933702
    36943703                        /* copy the rest of the file if any changes was made. */
  • trunk/emx/src/emxomf/weakld.h

    r941 r2692  
    4444    WLDC_CASE_INSENSITIVE = 4,
    4545    /** The linker is link386. */
    46     WLDC_LINKER_LINK386 = 0x1000
     46    WLDC_LINKER_LINK386 = 0x1000,
     47    /** The linker is wlink. */
     48    WLDC_LINKER_WLINK = 0x2000
    4749};
    4850
Note: See TracChangeset for help on using the changeset viewer.