ARM64LE begins implementation

added src/stub/arm64-darwin.macho-entry.h
   added src/stub/arm64-darwin.macho-fold.h
   added src/stub/src/arch/arm/v8a/lzma_d.S
   added src/stub/src/arch/arm/v8a/macros.S
   added src/stub/src/arch/arm/v8a/nrv2b_d8.S
   added src/stub/src/arch/arm/v8a/nrv2d_d8.S
   added src/stub/src/arch/arm/v8a/nrv2e_d32.S
   added src/stub/src/arch/arm/v8a/nrv2e_d8.S
   added src/stub/src/arm64-darwin.macho-entry.S
   added src/stub/src/arm64-darwin.macho-fold.S
   added src/stub/src/arm64-darwin.macho-main.c
   added src/stub/src/arm64-linux.elf-entry.S
   added src/stub/src/arm64-linux.elf-fold.S
   added src/stub/tmp/arm64-darwin.macho-entry.bin.dump
   changed src/p_mach.cpp
   changed src/p_mach.h
   changed src/stub/Makefile
This commit is contained in:
John Reiser
2016-01-31 20:09:38 -08:00
parent 42e520e841
commit bd7ef27628
17 changed files with 3670 additions and 28 deletions
+43
View File
@@ -59,6 +59,8 @@ STUBS += amd64-linux.shlib-init.h
STUBS += amd64-win64.pep.h
STUBS += arm-darwin.macho-entry.h
STUBS += arm-darwin.macho-fold.h
STUBS += arm64-darwin.macho-entry.h
STUBS += arm64-darwin.macho-fold.h
STUBS += arm-linux.elf-entry.h
STUBS += arm-linux.elf-fold.h
STUBS += arm-linux.kernel.vmlinux-head.h
@@ -421,6 +423,47 @@ tmp/arm-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,f-objstrip,$@)
# /***********************************************************************
# // arm64-darwin.macho
# ************************************************************************/
# info: we use the tc settings from arm64-linux.elf, but override v4 with v5
arm64-darwin.macho%.h : tc_list = arm64-linux.elf default
arm64-darwin.macho%.h : tc_bfdname = elf64-littleaarch64
tc.arm64-darwin.macho-entry.gcc = /usr/bin/aarch64-linux-gnu-gcc -nostdinc -MMD -MT $@
tc.arm64-darwin.macho-fold.gcc = /usr/bin/aarch64-linux-gnu-gcc -nostdinc -MMD -MT $@
tc.arm64-darwin.macho-main.gcc = /usr/bin/aarch64-linux-gnu-gcc -nostdinc -MMD -MT $@
tc.arm64-darwin.macho-fold.ld = /usr/bin/aarch64-linux-gnu-ld
tc.arm64-darwin.macho-entry.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
tc.arm64-darwin.macho-fold.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
tc.arm64-darwin.macho-main.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
tc.arm64-darwin.macho-entry.objdump = /usr/bin/aarch64-linux-gnu-objdump
tc.arm64-darwin.macho-fold.objdump = /usr/bin/aarch64-linux-gnu-objdump
tc.arm64-darwin.macho-main.objdump = /usr/bin/aarch64-linux-gnu-objdump
arm64-darwin.macho-entry.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o tmp/$T.bin
$(call tc,f-embed_objinfo,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
arm64-darwin.macho-fold.h : tmp/$$T.o tmp/arm64-darwin.macho-main.o
$(call tc,ld) --no-warn-mismatch --strip-all -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.tmp
$(call tc,objcopy) -O binary tmp/$T.tmp tmp/$T.bin
chmod a-x tmp/$T.bin
$(call tc,bin2h) tmp/$T.bin $@
tmp/arm64-darwin.macho-fold.o : $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o $@
$(call tc,f-objstrip,$@)
tmp/arm64-darwin.macho-main.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)
# /***********************************************************************
# // arm-linux.elf
# ************************************************************************/