[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
Óscar Fuentes
ofv at wanadoo.es
Tue Dec 30 18:13:13 PST 2008
srs <skaflotten at gmail.com> writes:
>>>> Try adding this to the link command of your executable:
>>>>
>>>> /INCLUDE:_X86TargetMachineModule
>>>>
>>>> I should document this somehow.
>>>>
>>> Yeah, this is necessary, but not sufficient. I also had to link with
>>> ExecutionEngineBindings.obj (not JIT.obj as first stated)
>>>
>>
>> So you are using the C bindings. Okay, could someone advise what to do
>> here? Something like the _X86TargetMachineModule trick on
>> lib/Target/X86/X86TargetMachine.cpp line 26, but on
>> lib/ExecutionEngine/ExecutionEngineBindings.cpp?
>>
>> Why is not the linker automatically pulling that code? If you are using
>> the C bindings, I suppose that your executable refers to the functions
>> defined on ExecutionEngineBindings.cpp. It is not the same case as
>> X86TargetMachine.cpp, which has a self-registering static C++ object and
>> nothing refers to it from the user's code
>
> I'm actually not using C bindings; I'm using the C++ API directly. I
> have no idea why I have to link that object file.
This is very strange. Can you test if the Fibonacci.exe example runs
quick? (It should show the result almost instantaneously. Discard the
first run: most of that time is the OS loading the executable from disk)
If the Fibonacci example works, please compare its link command options
with your compiler's.
--
Oscar
More information about the llvm-dev
mailing list