Ticket #220 (closed defect: fixed)
emxomf: long names in libraries gets the wrong dict entry and barfs
|Reported by:||dmik||Owned by:||bird|
Description (last modified by bird) (diff)
~Recently I run into a situation when GCC 4.4.2 generated an N_EXP stub for a local symbol (having a name like _T.3032 to be precise) which is an emitted inline function (static member of a class defined as declspec(dllexport)) in the object file.~
~Given the resulting .obj file, emxomf created an OMF export record for this symbol but the linker (WLINK here) failed with the 'unresolved export' message when creating a DLL out of this .obj which is not a surprise because _T.3032 isn't public at all (lacks .globl in the assembler file). I understand that creating OMF export records for such local symbols will never succeed so I changed it to not do that which solved the problem (the patch is attached).~
emxomf-03-fix-symbol-too-long.diff: Make sure the stripped down symbol name is used not only when performing an AOUT to OMF conversion for a single object file but also when converting the whole object library. Prior to this fix, an unstripped version of the symbol would go to the OMF library's dictionary which caused the 'Symbol too long' error and program termination.
- Summary changed from emxomf tries to export local (non-public) symbols to emxomf: long names in libraries gets the wrong dict entry and barfs