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>

Reply via email to