[LLVMdev] exception handling broken on x86-64?
Dale Johannesen
dalej at apple.com
Sat Feb 9 14:57:45 PST 2008
On Feb 9, 2008, at 2:48 PM, Anton Korobeynikov wrote:
>> After comparing the generated assembler code with native gcc code I
>> think the generated code is fine, just the exception handler info in
>> the non-code sections is broken/missing.
> It seems, that EH dwarf information emission is disabled in
> X86TargetAsmInfo.cpp. Remove the is64Bit() condition near
> "SupportExceptionHandling = true" line in X86Subtarget::isELF section.
>
> Also, don't forget to add --enable-eh switch to llc invocation.
Just in case it doesn't work the first time:) patch 46029 might be
helpful. That made it work on Darwin for me, and it's possible some
of the changes there are also applicable to Linux. Compare your .s
with g++ output.
> You will need to link .S with your native unwinding runtime (so, use
> g++
> to link, not llvm-g++)
This is not necessary on Darwin, btw, the unwinding stuff Just Worked
too.
More information about the llvm-dev
mailing list