View Issue Details

IDProjectCategoryView StatusLast Update
0000237Ecere SDKecerepublic2013-05-19 22:15
Reporterjerome Assigned Tojerome  
PriorityimmediateSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.44 Ryoan-jiFixed in Version0.44 Ryoan-ji 
Summary0000237: Bunch of errors "Error: Redefinition of class XXXXXX" showing up while building the 2nd pass compile tools on Linux
DescriptionWhen the compiler imports libec.so , and this in turns imports libecere.so, the ensureCOM code invokes libec's __ecereDll_Load since that function is exported with visibility("default") with the same name in all produced eC shared libraries.
Tagsv0.44d2

Activities

jerome

2009-07-06 16:16

administrator   ~0000116

An additional checked was added to make sure that either there is no previous __thisModule, its module name is null, or it is set to "ecereCOM":

instance.ec:Module_Load

      if((!Load && !strcmp(module.name, "ecereCOM")) ||
         (Load && (!__thisModule || !__thisModule.name || !strcmp(__thisModule.name, "ecereCOM")) && Load != COM_LOAD_FUNCTION))


Additionally, some code was added to handle applications importing "ecere", but linked with ecereCOM, to exit properly.

Instead of relying merely on the orders of modules when unloading dependent modules, it is now ensured that the module holding the "Class" class is unloaded last with some explicit code. (instance.ec:Module_Destructor).

jerome

2010-07-26 02:10

administrator   ~0000235

These description / additional note are quite nice, but is this fixed or what !?!?

jerome

2010-12-06 19:31

administrator   ~0000417

This seems to have been fixed, as the first note explains the solution in details and we have not encountered these errors building on Linux recently.

Issue History

Date Modified Username Field Change
2009-07-06 16:13 jerome New Issue
2009-07-06 16:16 jerome Note Added: 0000116
2010-07-07 03:00 redj Target Version => 0.44d2
2010-07-07 04:10 redj Tag Attached: v0.44d2
2010-07-25 21:13 redj Relationship added child of 0000429
2010-07-26 02:10 jerome Note Added: 0000235
2010-07-26 19:19 thexa4 Target Version 0.44d2 => 0.44 draft 2
2010-12-06 19:31 jerome Status new => resolved
2010-12-06 19:31 jerome Fixed in Version => 0.44 pre-release 2
2010-12-06 19:31 jerome Resolution open => fixed
2010-12-06 19:31 jerome Assigned To => jerome
2010-12-06 19:31 jerome Note Added: 0000417
2012-03-08 15:34 redj Target Version old 0.44.pre2 => 0.44 Ryoan-ji
2012-03-08 17:21 redj Relationship deleted child of 0000429
2012-03-08 18:08 redj Fixed in Version => 0.44 Ryoan-ji
2012-03-29 07:53 redj Category => Ecere Runtime Library
2012-03-29 07:53 redj Project @1@ => Ecere SDK
2013-05-19 22:15 jerome Status resolved => closed