﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
37	export for symbols longer than 255 chars	Yuri Dario	bird	"emxbind cannot parse .def files with symbols longer than 255 chars. moddef.h is modified to allow symbols up to 1024 chars (got some 525 chars long).
Since OS/2 cannot export symbols longer than 255 chars, the NONAME flag use is required, emxbind stops with fatal error if flag is not used.


{{{
Index: include/sys/moddef.h
===================================================================
--- include/sys/moddef.h	(revision 2508)
+++ include/sys/moddef.h	(working copy)
@@ -126,16 +126,16 @@
       } exetype;                  /* EXETYPE */
     struct
       {
-        char entryname[256];
-        char internalname[256];
+        char entryname[1024];
+        char internalname[1024];
         int ordinal;
         int pwords;
         unsigned flags;
       } export;                   /* EXPORTS */
     struct
       {
-        char entryname[256];
-        char internalname[256];
+        char entryname[1024];
+        char internalname[1024];
         char modulename[256];
         int ordinal;
         unsigned flags;
Index: src/emxbind/export.c
===================================================================
--- src/emxbind/export.c	(revision 2508)
+++ src/emxbind/export.c	(working copy)
@@ -43,6 +43,10 @@
 {
   int i;
 
+  if (strlen(exp->entryname)>254 
+      && !(exp->flags & _MDEP_NONAME))
+     error (""symbol %s too long, requires NONAME flag (EXPORTS)"", exp->entryname);
+
   for (i = 0; i < export_len; ++i)
     {
       if (strcmp (exp->entryname, export_data[i].entryname) == 0)

}}}
"	defect	closed	normal	libc-0.6.4	emx	0.6	normal	fixed		
