digitalmars.D.bugs - [Issue 11069] New: DMD (github HEAD) Linker Regression
- d-bugmail puremagic.com (38/38) Sep 19 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
- d-bugmail puremagic.com (10/10) Sep 20 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
- d-bugmail puremagic.com (73/73) Sep 22 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
- d-bugmail puremagic.com (7/22) Sep 22 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
- d-bugmail puremagic.com (11/11) Sep 23 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
- d-bugmail puremagic.com (10/10) Sep 23 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11069
http://d.puremagic.com/issues/show_bug.cgi?id=11069
           Summary: DMD (github HEAD) Linker Regression
           Product: D
           Version: D2
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: puneet coverify.org
---
The following reduced code example fails to link. It seems to be due to DMD
checkin 12bb9afb753ad2f2aef65550b960357c63854cbc -- fix Issue 10441 - Static
libraries too big. Compiles fine if I try with one version before that.
On my Linux x64 box I get:
$ rdmd test.d
/tmp/.rdmd-1000/rdmd-test.d-C130B18713BE4647AF6BF8F764A06FDD/objs/test.o: In
function
`_D3std9container32__T10BinaryHeapTAS4test3Bar3FooZ10BinaryHeap3popMFAS4test3Bar3FooZv':
__entrypoint.d:(.text._D3std9container32__T10BinaryHeapTAS4test3Bar3FooZ10BinaryHeap3popMFAS4test3Bar3FooZv+0x5c):
undefined reference to
`_D3std5array25__T5emptyTS4test3Bar3FooZ5emptyFNaNbNdNfxAS4test3Bar3FooZb'
// test.d Reduced code example:
class Bar {
  import std.container: BinaryHeap;
  BinaryHeap!(Foo[]) Heap;
  struct Foo {
    int opCmp(Foo ) {
      return 1;
    }
  }
}
void main() {}
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 19 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11069
Kenji Hara <k.hara.pg gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |link-failure, pull
https://github.com/D-Programming-Language/dmd/pull/2577
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 20 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11069
Temtaime <temtaime gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |temtaime gmail.com
Kenji, it's not a full solution. 
I've make test case from my project.
It's too strange test case, but as it is.
A.d:
import C;
import D;
void foo() {
    Vector2 rsm;
    readWriteVariable(rsm);
}
void main() {
}
B.d:
import D;
import std.algorithm;
void bar() {
    Vector2[] tc;
    sort(tc);
}
C.d:
import std.traits;
void readWriteVariable(T)(ref T data) {
    foreach(it; __traits(allMembers, T))
            enum vValid = mixin(`is(FunctionTypeOf!(T.` ~ it ~ `) ==
function)`);
}
D.d:
struct Matrix(T, uint _M) {
    int opCmp()(auto ref in Matrix b) const {
        return 0;
    }
    pure auto opDispatch(string s)() {
        enum L = s.length;
        Matrix!(T, L) ret;
        return ret;
    }
    pure Matrix normalized() {
        return Matrix();
    }
}
alias Matrix!(float, 2) Vector2;
Problem exists only if files compiled into single objs and then linked
together.
dmd A -c
dmd b -c
dmd c -c
dmd d -c
dmd a.obj b.obj c.obj d.obj
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVi2Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVi2Z6MatrixKxS1D16__T6MatrixTfVi2Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk8Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk8Z6MatrixKxS1D16__T6MatrixTfVk8Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk6Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk6Z6MatrixKxS1D16__T6MatrixTfVk6Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk9Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk9Z6MatrixKxS1D16__T6MatrixTfVk9Z6MatrixZi
If something is removed from test case, then linking is ok.
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 22 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11069Error 42: Symbol Undefined _D1D16__T6MatrixTfVi2Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVi2Z6MatrixKxS1D16__T6MatrixTfVi2Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk8Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk8Z6MatrixKxS1D16__T6MatrixTfVk8Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk6Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk6Z6MatrixKxS1D16__T6MatrixTfVk6Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk9Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk9Z6MatrixKxS1D16__T6MatrixTfVk9Z6MatrixZiOK, I confirmed the issue. And updated the PR to fix it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
 Sep 22 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11069 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/c2ae0b2807c1863ef6653668478ae778fe4ff88e fix Issue 11069 - DMD (github HEAD) Linker Regression https://github.com/D-Programming-Language/dmd/commit/3e8460657b82b4ff38ece6fabc7e4a3015717529 [REG2.064a] Issue 11069 - DMD (github HEAD) Linker Regression -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
 Sep 23 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11069
Walter Bright <bugzilla digitalmars.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
 Sep 23 2013








 
  
  
 
 d-bugmail puremagic.com
 d-bugmail puremagic.com 