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.
*** Issue 8230 has been marked as a duplicate of this issue. ***
Commit pushed to master at https://github.com/D-Programming-Language/tools https://github.com/D-Programming-Language/tools/commit/0ce81aaa86111f57444e9b43f121f09e6bbf0b01 rdmd: Fix building library files (Issue 6535)
Vladimir, your fix doesn't seem to have addressed the case where no "-od" is specified, as in the original report. Can you have another look at this?
I'm fairly certain it does, David. The command: rdmd --build-only -lib lib.d creates a 200KB lib.lib file for me with the patch.
@Vladimir: Oh, it does indeed. What I was seeing is http://d.puremagic.com/issues/show_bug.cgi?id=9684.