www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 406] New: std.loader is broken on linux

reply d-bugmail puremagic.com writes:

           Summary: std.loader is broken on linux
           Product: D
           Version: 0.168
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: link-failure, patch
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: h3r3tic mat.uni.torun.pl

There are three problems with std.loader:

1. It's not compiled into libphobos.a
2. When compiled-in, gcc complains about a duplicate RTLD_NOW symbol, the
second instance exists in std.c.linux.linux.
3. When the conflicting symbols are resolved (e.g. by replacing the RTLD_NOW
usage in std.loader to its numeric value, 0x00002), lib loading doesn't work in
linux because of the line 339 in loader.d:

ExeModuleInfo   mi = s_modules[moduleName];

it should be changed to:

ExeModuleInfo*   mi_p = moduleName in s_modules;
ExeModuleInfo   mi = mi_p is null ? null : *mi_p;

Oct 07 2006
parent d-bugmail puremagic.com writes:

bugzilla digitalmars.com changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

------- Comment #1 from bugzilla digitalmars.com  2007-07-30 15:46 -------
Fixed DMD 1.019 and 2.003

Jul 30 2007