- Status Assigned
- Percent Complete
- Task Type Bug Report
- Category Packages → Packages: Build-list
-
Assigned To
Andreas Baumann - Operating System i686
- Severity Low
- Priority Medium
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#61 - dmd fails to build with evalu8.d:function evalu8(elem*, unsigned int): error: undefined reference to
From the discusison in:
https://forum.dlang.org/thread/dsrjmpnavxqsjqmlvotf@forum.dlang.org
Well the problem is that the mangling produced by g++ is _Z7_moduloee but the mangling produced with ldc 1.13.0 on my environment is _Z7_moduloeS_ . The first is a valid mangling according to some online demanglers but the last one isn't. I then tried to compile evalu8 [1] with ldc 1.11.0 and dmd 2.081.2 and they both produced the correct name mangling. The mangling is done by LDC itself, not LLVM, and so it is a bug in LDC. In this particular case, the second argument of _modulo is the same as the first and the mangler is (incorrectly) replacing the type of the second with a backreference to the first type. That's what the mangler should do for user types, but not for builtin types.
They reference to:
Trying this patch:
https://github.com/dlang/dmd/pull/9129/commits/ba8288e1a993bf923467e533cb06a7770efbdfbd
Happens also on 64-bit, so added upstream https://bugs.archlinux.org/task/61595