[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
srs
skaflotten at gmail.com
Tue Dec 30 18:42:01 PST 2008
Óscar Fuentes wrote:
> 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.
>
(Resending... was scrubbed due to html)
The Fibonacci example works just fine; results appear quickly. The link
options are the same AFAICT (except for the addition of
ExecutionEngineBindings.obj...)
/Stein Roger
More information about the llvm-dev
mailing list