The new apple branch appers to work in gnu/linux/x86. An update of Chirs' patch to the new version of the branch is available at gcc-llvm-apple-local-200502-branch-107672.patch.bz2.
It compiles xgcc but this in turn fails to compile crtbegin.o: plus_expr 0xb7b89aa0 type <pointer_type 0xb79a70e8 type <pointer_type 0xb79a6e0c func_ptr type <function_type 0xb7bd97b4> sizes-gimplified public unsigned SI size <integer_cst 0xb7bc85e8 constant invariant 32> unit size <integer_cst 0xb7bc8310 constant invariant 4> align 32 symtab 0 alias set -1 pointer_to_this <pointer_type 0xb79a70e8>> sizes-gimplified unsigned SI size <integer_cst 0xb7bc85e8 32> unit size <integer_c st 0xb7bc8310 4> align 32 symtab 144732168 alias set -1> constant invariant arg 0 <addr_expr 0xb7b899d8 type <pointer_type 0xb79a70e8> constant invariant arg 0 <var_decl 0xb79a73a0 __DTOR_LIST__ type <array_type 0xb79a7074> addressable asm_written used static asm-frame-size 0 SI file ../../apple-local -200502-branch/gcc/crtstuff.c line 195 size <integer_cst 0xb7bc85e8 32> unit size <integer _cst 0xb7bc8310 4> user align 32 attributes <tree_list 0xb79a55e8> initial <constructor 0xb7b8989 8> LLVM: [1 x void ()*]* %__DTOR_LIST__>> arg 1 <integer_cst 0xb79a5754 type <pointer_type 0xb79a70e8> constant invariant 4>> cc1: ../../apple-local-200502-branch/gcc/llvm-convert.cpp:1989: static llvm::Constant* Tre eConstantToLLVM::Convert(tree_node*): Assertion `0 && "Unknown constant to convert!"' fail ed. Rafael