Anyone used LLVM-D with Dub?
Moritz Maxeiner
moritz at ucworks.org
Wed Oct 2 11:43:05 PDT 2013
On Wednesday, 2 October 2013 at 02:22:42 UTC, Alan wrote:
> Hello! I'm working on a project and I was going to use LLVM
> with the LLVM-D wrapper which has it's own Dub package and
> everything https://github.com/Calrama/llvm-d
> I've installed the package with Dub, added it to my
> packages/builds dependencies.
> When I build however I get an error:
> Linking...
> /usr/bin/ld: error: /home/apott/projects/Hyphen/temp.o:
> multiple definition of
> '_D4llvm1d2ir10basicblock10BasicBlock16removeFromParentMFZv'
> /usr/bin/ld: /home/apott/projects/Hyphen/temp.o: previous
> definition here
> /home/apott/projects/Hyphen/temp.o:../../.dub/packages/llvm-d-master/llvm/d/ir/globalvariable.d:function
> _D4llvm1d2ir8constant8Constant6__vtblZ: error: undefined
> reference to
> '_D4llvm1d2ir8constant8Constant27replaceUsesOfWithOnConstantMFC4llvm1d2ir5value5ValueC4llvm1d2ir5value5ValueC4llvm1d2ir3use3UseZv'
> /home/apott/projects/Hyphen/temp.o:../../.dub/packages/llvm-d-master/llvm/d/ir/globalvariable.d:function
> _D4llvm1d2ir11globalvalue11GlobalValue6__vtblZ: error:
> undefined reference to
> '_D4llvm1d2ir8constant8Constant27replaceUsesOfWithOnConstantMFC4llvm1d2ir5value5ValueC4llvm1d2ir5value5ValueC4llvm1d2ir3use3UseZv'
> /home/apott/projects/Hyphen/temp.o:../../.dub/packages/llvm-d-master/llvm/d/ir/globalvariable.d:function
> _D4llvm1d2ir12llvmfunction8Function6__vtblZ: error: undefined
> reference to
> '_D4llvm1d2ir8constant8Constant27replaceUsesOfWithOnConstantMFC4llvm1d2ir5value5ValueC4llvm1d2ir5value5ValueC4llvm1d2ir3use3UseZv'
> /home/apott/projects/Hyphen/temp.o:../../.dub/packages/llvm-d-master/llvm/d/ir/globalvariable.d:function
> _D4llvm1d2ir9constants10UndefValue6__vtblZ: error: undefined
> reference to
> '_D4llvm1d2ir8constant8Constant27replaceUsesOfWithOnConstantMFC4llvm1d2ir5value5ValueC4llvm1d2ir5value5ValueC4llvm1d2ir3use3UseZv'
> collect2: error: ld returned 1 exit status
> --- errorlevel 1
> Error: Link command failed with exit code 1
>
> I want to know if anyone here has any experience witht his by
> any chance? The source of the problem? Is it a bug? Thanks for
> any suggestions.
I don't have any experience with using dub's dependency settings
for projects, but regarding llvm-d itself:
1) The D API itself is not ready for active use (that's what the
C binding are currently in place for), but it does compile and
link properly in my tests, which include:
- Building with the provided VisualStudio solution file into a
static libary on Windows.
- Changing (locally) the "sourceLibrary" setting to
"staticLibrary" in package.json and running "dub build", which
provides a working static library for me with the current master.
For some reason, however, building ("dub build") with
"sourceLibrary" leads to an assertion error I could not track
down, as I was not able to make more sense out of the output
produced by "dub build --vverbose" than that an exception had
occured.
2) I can build and run all of llvm-d's samples the following way:
1. Clone the repo
2. cd into the local clone
3. Run the samples with rdmd, e.g. "rdmd samples/fibonacci.d".
Could you give me a minimal example I can use to reproduce the
error you've encountered? Also, you can always open an issue at
llvm-d's github repo, that's the easiest way to report problems
about llvm-d (other than mailing me).
On Wednesday, 2 October 2013 at 10:04:19 UTC, 1100110 wrote:
>
> It's been broken for a while for me.
>
> I tried to figure out what the issue was, but it was over my
> head...
What exactly has been broken for you? As stated above, I can run
all the examples fine, but if that is not the case for someone
else, I need to know about it in order to try and fix it.
On Wednesday, 2 October 2013 at 10:23:55 UTC, Dicebot wrote:
>
> I think in this case reporting to `llvm-d` author makes more
> sense.
>
> AFAIK "calrama" is common nickname for Moritz Maxeiner, I will
> send him an e-mail linking this thread.
Thanks for mailing me, I would not have seen this thread here
otherwise (I usually look at the first pages of "digitalmars.D"
and "digitalmars.D.announce" every couple of days).
More information about the Digitalmars-d
mailing list