Changeset 2673 for trunk/emx/src/emxbind


Ignore:
Timestamp:
Mar 19, 2006, 6:21:22 AM (20 years ago)
Author:
bird
Message:
  • *:

o Synced over changed from 0.6.1 bugfixing.

  • emxbind:

o #38: Fixed truncation bug writing to the LX nametable. (Yuri)
o #38: Imports and exports are limited to 255 not 127 chars. (Yuri)
o #28: Use DLL name from the .def file when present.

  • emxomf:

o #70: Demangle symbol names in debug info. (thanks to Yuri)

  • emxomfld:

o #55: delete the response file when reinit the args.
o #46: specify .map file extension to the linker.
o #34: Removed all the silliness trying to deal with truncated symbols.
o Don't display usage() on failure, just the error message.
o #20: use mkstemp + close instead of mktemp for the response file.

  • ld:

o #20: use make_temp_file instead of mktemp. This involved including

libiberty.h which required some adjustments of duplicate code to work.

o #27: Applied fix from Yuri.

  • libmoddef:

o Allow '.' and '@' in LIBRARY/NAME names.

Location:
trunk/emx/src/emxbind
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/emx/src/emxbind/emxbind.c

    r1282 r2673  
    160160    case _MD_LIBRARY:
    161161
    162       /* Create a DLL.  Save the initialization and termination
    163          policies after choosing default values for unspecified
    164          values. */
     162      /* Create a DLL. Override the module name if specified. Save the
     163         initialization and termination policies after choosing default
     164         values for unspecified values. */
    165165
    166166      dll_flag = TRUE;
     167
     168      if (stmt->library.name[0] != 0)
     169        module_name = xstrdup (stmt->library.name);
     170
    167171      switch (stmt->library.init)
    168172        {
  • trunk/emx/src/emxbind/emxbind.h

    r2300 r2673  
    519519
    520520void error (const char *fmt, ...) NORETURN2;
     521void warning (const char *fmt, ...);
    521522void my_read (void *dst, size_t size, struct file *f);
    522523void my_read_str (byte *dst, size_t size, struct file *f);
  • trunk/emx/src/emxbind/export.c

    r1333 r2673  
    7676
    7777  name_len = strlen (name);
    78   if (name_len >= 128)
    79     name_len = 127;
     78  if (name_len > 255)
     79    {
     80      warning("truncating export '%s' to 255 chars (ord %d)!", name, ord);
     81      blen = 255;
     82    }
    8083  else
    8184    blen = (byte)name_len;
  • trunk/emx/src/emxbind/fixup.c

    r828 r2673  
    285285
    286286  name_len = strlen (name);
    287   if (name_len >= 128)
    288     name_len = 127;
    289287  i = 0;
    290288  while (i < procs.len)
  • trunk/emx/src/emxbind/utils.c

    r18 r2673  
    4949  exit (2);
    5050}
     51
     52
     53/* Print an warning message. This function is called like  printf().
     54   The message will be prefixed with  "emxbind: warning: " and a
     55   newline will be added at the end. */
     56
     57void warning (const char *fmt, ...)
     58{
     59  va_list arg_ptr;
     60
     61  va_start (arg_ptr, fmt);
     62  fprintf (stderr, "emxbind: warning: ");
     63  vfprintf (stderr, fmt, arg_ptr);
     64  fputc ('\n', stderr);
     65}
     66
    5167
    5268/* Print an out of memory message and abort. */
Note: See TracChangeset for help on using the changeset viewer.