diff -Nru dragonegg-3.3/debian/patches/arm-ftbfs.diff dragonegg-3.3/debian/patches/arm-ftbfs.diff --- dragonegg-3.3/debian/patches/arm-ftbfs.diff 1969-12-31 19:00:00.000000000 -0500 +++ dragonegg-3.3/debian/patches/arm-ftbfs.diff 2013-11-27 15:27:06.000000000 -0500 @@ -0,0 +1,92 @@ +Index: dragonegg-3.3/include/arm/dragonegg/Target.h +=================================================================== +--- dragonegg-3.3.orig/include/arm/dragonegg/Target.h 2013-03-11 13:14:04.000000000 -0400 ++++ dragonegg-3.3/include/arm/dragonegg/Target.h 2013-11-27 15:17:04.413053790 -0500 +@@ -31,7 +31,7 @@ + (isVoid || hasArgList). */ + + /* from TARGET_AAPCS_BASED */ +-#define DEFAULT_TARGET_AAPCS_BASED(ARM_DEFAULT_ABI != ARM_ABI_APCS && \ ++#define DEFAULT_TARGET_AAPCS_BASED (ARM_DEFAULT_ABI != ARM_ABI_APCS && \ + ARM_DEFAULT_ABI != ARM_ABI_ATPCS) + + #define TARGET_ADJUST_LLVM_CC(CC, type) \ +@@ -40,44 +40,44 @@ + if (TARGET_VFP && TARGET_HARD_FLOAT_ABI && \ + ((TYPE_ARG_TYPES(type) == 0) || \ + (TREE_VALUE(tree_last(TYPE_ARG_TYPES(type))) == void_type_node))) \ +- CC = CallingConv::ARM_AAPCS_VFP; \ ++ CC = llvm::CallingConv::ARM_AAPCS_VFP; \ + else if (!DEFAULT_TARGET_AAPCS_BASED) \ +- CC = CallingConv::ARM_AAPCS; \ ++ CC = llvm::CallingConv::ARM_AAPCS; \ + } else if (DEFAULT_TARGET_AAPCS_BASED) { \ +- CC = CallingConv::ARM_APCS; \ ++ CC = llvm::CallingConv::ARM_APCS; \ + } \ + } + + #ifdef DRAGONEGG_ABI_H + + extern bool llvm_arm_should_pass_aggregate_in_mixed_regs( +- tree_node *, Type *Ty, CallingConv::ID, std::vector &); ++ tree_node *, llvm::Type *Ty, llvm::CallingConv::ID, std::vector &); + + #define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, TY, CC, E) \ + llvm_arm_should_pass_aggregate_in_mixed_regs((T), (TY), (CC), (E)) + + struct DefaultABIClient; + extern bool llvm_arm_try_pass_aggregate_custom( +- tree_node *, std::vector &, CallingConv::ID CC, ++ tree_node *, std::vector &, llvm::CallingConv::ID CC, + struct DefaultABIClient *); + + #define LLVM_TRY_PASS_AGGREGATE_CUSTOM(T, E, CC, C) \ + llvm_arm_try_pass_aggregate_custom((T), (E), (CC), (C)) + + extern bool llvm_arm_aggregate_partially_passed_in_regs( +- std::vector &, std::vector &, CallingConv::ID CC); ++ std::vector &, std::vector &, llvm::CallingConv::ID CC); + + #define LLVM_AGGREGATE_PARTIALLY_PASSED_IN_REGS(E, SE, ISR, CC) \ + llvm_arm_aggregate_partially_passed_in_regs((E), (SE), (CC)) + +-extern Type * +-llvm_arm_aggr_type_for_struct_return(tree_node *type, CallingConv::ID CC); ++extern llvm::Type * ++llvm_arm_aggr_type_for_struct_return(tree_node *type, llvm::CallingConv::ID CC); + + /* LLVM_AGGR_TYPE_FOR_STRUCT_RETURN - Return LLVM Type if X can be + returned as an aggregate, otherwise return NULL. */ + #define LLVM_AGGR_TYPE_FOR_STRUCT_RETURN(X, CC) \ + llvm_arm_aggr_type_for_struct_return((X), (CC)) +- ++namespace llvm { + extern void llvm_arm_extract_multiple_return_value( + Value *Src, Value *Dest, bool isVolatile, LLVMBuilder &B); + +@@ -85,9 +85,9 @@ + SRC and assign it to DEST. */ + #define LLVM_EXTRACT_MULTIPLE_RETURN_VALUE(Src, Dest, V, B) \ + llvm_arm_extract_multiple_return_value((Src), (Dest), (V), (B)) +- ++} + extern bool llvm_arm_should_pass_or_return_aggregate_in_regs( +- tree_node *TreeType, CallingConv::ID CC); ++ tree_node *TreeType, llvm::CallingConv::ID CC); + + /* LLVM_SHOULD_NOT_USE_SHADOW_RETURN = Return true is the given type should + not be returned via a shadow parameter with the given calling conventions. */ +Index: dragonegg-3.3/src/arm/Target.cpp +=================================================================== +--- dragonegg-3.3.orig/src/arm/Target.cpp 2013-02-25 05:54:25.000000000 -0500 ++++ dragonegg-3.3/src/arm/Target.cpp 2013-11-27 15:27:01.408925004 -0500 +@@ -55,6 +55,8 @@ + // Trees header. + #include "dragonegg/Trees.h" + ++using namespace llvm; ++ + static LLVMContext &Context = getGlobalContext(); + + // "Fundamental Data Types" according to the AAPCS spec. These are used diff -Nru dragonegg-3.3/debian/patches/series dragonegg-3.3/debian/patches/series --- dragonegg-3.3/debian/patches/series 2013-02-08 03:10:55.000000000 -0500 +++ dragonegg-3.3/debian/patches/series 2013-11-27 12:09:09.000000000 -0500 @@ -2,3 +2,4 @@ #kfreebsd.diff shared-lib.diff #dragonegg-arm.diff +arm-ftbfs.diff