[llvm-commits] [llvm] r129571 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/CodeGen/AsmPrinter/DwarfCFIException.cpp lib/Target/TargetLoweringObjectFile.cpp lib/Target/X86/X86FrameLowering.cpp lib/Target/X86/X86MCAsmInfo.cpp test/CodeGen/X86/2007-05-05-Personality.ll test/CodeGen/X86/2008-12-12-PrivateEHSymbol.ll test/CodeGen/X86/aliases.ll

Pasi Parviainen pasi.parviainen at iki.fi
Wed Apr 20 14:22:37 PDT 2011


On 15.4.2011 18:11, Rafael Espindola wrote:

> Modified: llvm/trunk/lib/Target/X86/X86MCAsmInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86MCAsmInfo.cpp?rev=129571&r1=129570&r2=129571&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86MCAsmInfo.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86MCAsmInfo.cpp Fri Apr 15 10:11:06 2011
> @@ -89,7 +89,9 @@
>     SupportsDebugInformation = true;
>
>     // Exceptions handling
> -  ExceptionsType = ExceptionHandling::DwarfTable;
> +  ExceptionsType = ExceptionHandling::DwarfCFI;
> +
> +  DwarfRequiresFrameSection = false;
>
>     // OpenBSD has buggy support for .quad in 32-bit mode, just split into two
>     // .words.

Linker in the base FreeBSD system doesn't cope really well with the 
Dwarf CFI EH tables generated by LLVM. When building self hosting 
clang+LLVM under FreeBSD. This results following kind of errors and 
failure to link tblgen as seen at 
http://google1.osuosl.org:8011/builders/clang-i686-freebsd-selfhost-rel/builds/15/steps/compile.llvm.stage2/logs/stdio

llvm[2]: Linking Release+Asserts executable tblgen (without symbols)
local symbol 0: discarded in section `.text._ZN4llvm13CodeGenTargetD2Ev' 
from 
/data/llvm.org-slave/clang-i686-freebsd-selfhost-rel/llvm.obj.2/utils/TableGen/Release+Asserts/AsmMatcherEmitter.o
local symbol 1: discarded in section 
`.text._ZNSt6vectorIN4llvm20CodeGenRegisterClassESaIS1_EED2Ev' from 
/data/llvm.org-slave/clang-i686-freebsd-selfhost-rel/llvm.obj.2/utils/TableGen/Release+Asserts/AsmMatcherEmitter.o

Linker in the base system:
$ ld -v
GNU ld version 2.15 [FreeBSD] 2004-05-23

Host:
$ uname -a
FreeBSD localhost 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 
02:36:49 UTC 2010 
root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd6

So, I would suggest using Dwarf Table exception types for FreeBSD hosts 
by default instead of CFI.

Pasi



More information about the llvm-commits mailing list