export for symbols longer than 255 chars
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)
Change History
(7)
Summary: |
aout export for symbols longer than 255 chars → export for symbols longer than 255 chars
|
Milestone: |
libc-0.6.1 → libc-0.6.2
|
Milestone: |
libc-0.6.2 → libc-0.6.3
|
Milestone: |
libc-0.6.3 → libc-0.6.4
|
Resolution: |
→ fixed
|
Status: |
assigned → closed
|
This breaks several assumptions in emximp and/or in omflib. So, it'll have to wait till I've done the others or to 0.6.2.