On Thu, 24 Nov 2016 16:16:19 +0100, Patrick Wildt wrote:
> 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?

Looks good to me, and the aarch64/arm64 naming thing can always be
bikeshed later.  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