Hi, this diff allows us to build clang with AArch64 support. It's based on the ARM lib Makefiles modified to compile the AArch64 code.
ok? Patrick diff --git a/gnu/usr.bin/clang/Makefile.arch b/gnu/usr.bin/clang/Makefile.arch index b372b68..3883c5e 100644 --- a/gnu/usr.bin/clang/Makefile.arch +++ b/gnu/usr.bin/clang/Makefile.arch @@ -6,13 +6,15 @@ LLVM_ARCH= X86 LLVM_ARCH= PowerPC .elif ${MACHINE_ARCH} == "sparc64" LLVM_ARCH= Sparc +.elif ${MACHINE_ARCH} == "aarch64" +LLVM_ARCH= AArch64 .elif ${MACHINE_ARCH} == "arm" LLVM_ARCH= ARM .elif ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el" LLVM_ARCH= Mips .endif -.if !(${LLVM_ARCH} == "X86") +.if !(${LLVM_ARCH} == "X86" || ${LLVM_ARCH} == "AArch64") BACKEND_UTILS= .endif diff --git a/gnu/usr.bin/clang/include/llvm/AArch64/Makefile b/gnu/usr.bin/clang/include/llvm/AArch64/Makefile new file mode 100644 index 0000000..ae5fc03 --- /dev/null +++ b/gnu/usr.bin/clang/include/llvm/AArch64/Makefile @@ -0,0 +1,92 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +.include <bsd.own.mk> + +LLVM_SRCS= ${.CURDIR}/../../../../../llvm + +HDRS= AArch64GenAsmMatcher.inc AArch64GenAsmWriter.inc \ + AArch64GenAsmWriter1.inc \ + AArch64GenCallingConv.inc AArch64GenDAGISel.inc \ + AArch64GenDisassemblerTables.inc AArch64GenFastISel.inc \ + AArch64GenInstrInfo.inc AArch64GenRegisterInfo.inc \ + AArch64GenSubtargetInfo.inc \ + AArch64GenMCCodeEmitter.inc AArch64GenMCPseudoLowering.inc \ + AArch64GenDisassemblerTables.inc + +all: ${HDRS} + +install: + # Nothing here so far ... + +depend: + # Nothing here so far ... + +clean cleandir: + rm -f ${HDRS} + +AArch64GenRegisterInfo.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-register-info \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenDisassemblerTables.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-disassembler \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenInstrInfo.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-instr-info \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenAsmWriter.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-asm-writer \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenAsmWriter1.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-asm-writer \ + -asmwriternum=1 -I${LLVM_SRCS}/include \ + -I${LLVM_SRCS}/lib/Target/AArch64 -o ${.TARGET} ${.ALLSRC} + +AArch64GenAsmMatcher.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-asm-matcher \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenDAGISel.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-dag-isel \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenFastISel.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-fast-isel \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenCallingConv.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-callingconv \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenSubtargetInfo.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-subtarget \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenMCCodeEmitter.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-emitter \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenMCPseudoLowering.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-pseudo-lowering \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +AArch64GenDisassemblerTables.inc: ${LLVM_SRCS}/lib/Target/AArch64/AArch64.td + ${.OBJDIR}/../../../llvm-tblgen/llvm-tblgen -gen-disassembler \ + -I${LLVM_SRCS}/include -I${LLVM_SRCS}/lib/Target/AArch64 \ + -o ${.TARGET} ${.ALLSRC} + +.include <bsd.obj.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64AsmParser/Makefile b/gnu/usr.bin/clang/libLLVMAArch64AsmParser/Makefile new file mode 100644 index 0000000..ec8619cb --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64AsmParser/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64AsmParser +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64AsmParser.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/AsmParser + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64AsmPrinter/Makefile b/gnu/usr.bin/clang/libLLVMAArch64AsmPrinter/Makefile new file mode 100644 index 0000000..28518a1 --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64AsmPrinter/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64AsmPrinter +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64InstPrinter.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/InstPrinter + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64CodeGen/Makefile b/gnu/usr.bin/clang/libLLVMAArch64CodeGen/Makefile new file mode 100644 index 0000000..49f8ff2 --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64CodeGen/Makefile @@ -0,0 +1,48 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64CodeGen +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64A57FPLoadBalancing.cpp \ + AArch64AddressTypePromotion.cpp \ + AArch64AdvSIMDScalarPass.cpp \ + AArch64AsmPrinter.cpp \ + AArch64BranchRelaxation.cpp \ + AArch64CleanupLocalDynamicTLSPass.cpp \ + AArch64CollectLOH.cpp \ + AArch64ConditionalCompares.cpp \ + AArch64DeadRegisterDefinitionsPass.cpp \ + AArch64ExpandPseudoInsts.cpp \ + AArch64FastISel.cpp \ + AArch64A53Fix835769.cpp \ + AArch64FrameLowering.cpp \ + AArch64ConditionOptimizer.cpp \ + AArch64ISelDAGToDAG.cpp \ + AArch64ISelLowering.cpp \ + AArch64InstrInfo.cpp \ + AArch64LoadStoreOptimizer.cpp \ + AArch64MCInstLower.cpp \ + AArch64PromoteConstant.cpp \ + AArch64PBQPRegAlloc.cpp \ + AArch64RegisterInfo.cpp \ + AArch64SelectionDAGInfo.cpp \ + AArch64StorePairSuppress.cpp \ + AArch64Subtarget.cpp \ + AArch64TargetMachine.cpp \ + AArch64TargetObjectFile.cpp \ + AArch64TargetTransformInfo.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64 + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64Desc/Makefile b/gnu/usr.bin/clang/libLLVMAArch64Desc/Makefile new file mode 100644 index 0000000..264e7e0 --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64Desc/Makefile @@ -0,0 +1,29 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64Desc +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64AsmBackend.cpp \ + AArch64ELFObjectWriter.cpp \ + AArch64ELFStreamer.cpp \ + AArch64MachObjectWriter.cpp \ + AArch64MCAsmInfo.cpp \ + AArch64MCCodeEmitter.cpp \ + AArch64MCExpr.cpp \ + AArch64MCTargetDesc.cpp \ + AArch64TargetStreamer.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/MCTargetDesc + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64Disassembler/Makefile b/gnu/usr.bin/clang/libLLVMAArch64Disassembler/Makefile new file mode 100644 index 0000000..fc061bb --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64Disassembler/Makefile @@ -0,0 +1,22 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64Disassembler +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64Disassembler.cpp \ + AArch64ExternalSymbolizer.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/Disassembler + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64Info/Makefile b/gnu/usr.bin/clang/libLLVMAArch64Info/Makefile new file mode 100644 index 0000000..7afc94e --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64Info/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64Info +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64TargetInfo.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/TargetInfo + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk> diff --git a/gnu/usr.bin/clang/libLLVMAArch64Utils/Makefile b/gnu/usr.bin/clang/libLLVMAArch64Utils/Makefile new file mode 100644 index 0000000..4fbb714 --- /dev/null +++ b/gnu/usr.bin/clang/libLLVMAArch64Utils/Makefile @@ -0,0 +1,21 @@ +# $OpenBSD: Makefile,v 1.1 2016/09/17 16:43:51 kettenis Exp $ + +LIB= LLVMAArch64Utils +NOPIC= +NOPROFILE= + +CPPFLAGS+= -I${.OBJDIR}/../include/llvm/AArch64 \ + -I${LLVM_SRCS}/lib/Target/AArch64 + +.include <bsd.own.mk> +SRCS= AArch64BaseInfo.cpp + +.PATH: ${.CURDIR}/../../../llvm/lib/Target/AArch64/Utils + +depend: + # Nothing here so far ... + +install: + # Nothing here so far ... + +.include <bsd.lib.mk>