libports: ffi for ARM_64

Required by 'glib'

issue #3822
This commit is contained in:
Sebastian Sumpf 2020-10-13 15:28:53 +02:00 committed by Norman Feske
parent 496dc5508f
commit 537472e9af
4 changed files with 41 additions and 4 deletions

View File

@ -5,3 +5,7 @@ endif
ifeq ($(filter-out $(SPECS),arm),)
INC_DIR += $(call select_from_ports,ffi)/include/ffi/arm
endif
ifeq ($(filter-out $(SPECS),arm_64),)
INC_DIR += $(call select_from_ports,ffi)/include/ffi/arm_64
endif

View File

@ -0,0 +1,20 @@
SHARED_LIB = yes
LIBS = libc
FFI_PORT = $(call select_from_ports,ffi)/src/lib/ffi
INC_DIR = $(FFI_PORT)/include
INC_DIR += $(call select_from_ports,ffi)/include/ffi/arm_64 \
$(REP_DIR)/src/lib/ffi
CC_OPT = -DFFI_NO_RAW_API=0
SRC_C = prep_cif.c types.c ffi.c
SRC_S = sysv.S
vpath prep_cif.c $(FFI_PORT)/src
vpath types.c $(FFI_PORT)/src
vpath ffi.c $(FFI_PORT)/src/aarch64
vpath sysv.S $(FFI_PORT)/src/aarch64

View File

@ -1 +1 @@
f406cbb77c4d8cd0167a5436988b147dae85734f
741f239d1a63d7402663db05ed1058e63f2aa105

View File

@ -8,14 +8,16 @@ DIR(ffi) := src/lib/ffi
$(call check_tool,sed)
DIRS := include/ffi/x86_64 include/ffi/arm
DIRS := include/ffi/x86_64 include/ffi/arm include/ffi/arm_64
DIR_CONTENT(include/ffi/x86_64) := src/lib/ffi/src/x86/ffitarget.h
DIR_CONTENT(include/ffi/arm) := src/lib/ffi/src/arm/ffitarget.h
DIR_CONTENT(include/ffi/arm) := src/lib/ffi/src/arm/ffitarget.h
DIR_CONTENT(include/ffi/arm_64) := src/lib/ffi/src/aarch64/ffitarget.h
gen_inc := ffi.h
gen_files := $(addprefix include/ffi/x86_64/,$(gen_inc)) \
$(addprefix include/ffi/arm/,$(gen_inc))
$(addprefix include/ffi/arm/,$(gen_inc)) \
$(addprefix include/ffi/arm_64/,$(gen_inc))
default: $(gen_files)
@ -33,6 +35,12 @@ subst_ARM := \
"@HAVE_LONG_DOUBLE_VARIANT@/0" \
"@FFI_EXEC_TRAMPOLINE_TABLE@/0"
subst_ARM_64 := \
"@TARGET@/AARCH64" \
"@HAVE_LONG_DOUBLE@/0" \
"@HAVE_LONG_DOUBLE_VARIANT@/0" \
"@FFI_EXEC_TRAMPOLINE_TABLE@/0"
apply_substitutions = $(VERBOSE)for i in $(2); do sed -i "s/$$i/g" $(1); done
include/ffi/x86_64/ffi.h:
@ -44,3 +52,8 @@ include/ffi/arm/ffi.h:
@$(MSG_GENERATE)$@
$(VERBOSE)cp src/lib/ffi/include/ffi.h.in $@
$(call apply_substitutions,$@,$(subst_ARM))
include/ffi/arm_64/ffi.h:
@$(MSG_GENERATE)$@
$(VERBOSE)cp src/lib/ffi/include/ffi.h.in $@
$(call apply_substitutions,$@,$(subst_ARM_64))