When trying to compile a static library with RDMD, the output file is always 72 bytes long, which of course is not valid. Using DMD to compile the library works correctly.
To reproduce, I use this basic D file:
===============
module lib;
import std.stdio;
void libraryFunction()
{
writeln("You have executed the library function!");
}
===============
If I try to compile it with RDMD using this syntax:
===============
rdmd --build-only -lib lib.d
===============
I get a lib.a file that is 72 bytes long. However, if I use the standalone DMD like this:
===============
dmd -lib lib.d
===============
The resulting file is 43.5 kibibytes of size and valid. If I make RDMD chatty and enable both standard and informational warnings, it shows that a lib.d.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX file is created in the /tmp/.rdmd directory and is of 43.5 kibibytes size. I assume it is the correct file (the size matches exactly) that somehow doesn't get copied to the directory I am building the library in.
I am using RDMD build 20110706, DMD64 v2.054, openSUSE 11.4 x86_64.
Comment #1 by dlang-bugzilla — 2013-03-10T01:18:38Z
*** Issue 8230 has been marked as a duplicate of this issue. ***
Comment #2 by github-bugzilla — 2013-03-10T14:34:27Z