1DOLLY 72PACKAGE libffi3REQUIRES HOST runtime@04REQUIRES HOST dso@056789FROM /v0.1.4/Dollyfile-system 915c71d4ce772989e3076060967824e48ccd6a1a6259624fe6213542df088dbc10REQUIRES HEADER dso11REQUIRES HEADER libc12REQUIRES TOOL ar13REQUIRES TOOL cc14REQUIRES TOOL make15REQUIRES TOOL rm16REQUIRES TOOL tar1718SOURCE /v0.1.4/dist/static/python/libffi.tar f1edc3a00490ab6d673adb1202b0d779fdbff33bd28ab8382e39847e64109bce /tmp/libffi.tar19SLOP tar \20 -xf /tmp/libffi.tar \21 -C /2223SOURCE /v0.1.4/dist/static/python/runtimes/libffi-dolly.c d5a180a210d829268b9686620fbfa2e5a5e439a2b0fe46ca55b12555f4b6f0d8 /usr/src/libffi/src/dolly.c2425FILE /tmp/libffi/Makefile26 .RECIPEPREFIX := >27 CC := cc28 AR := ar29 ROOT := /usr/src/libffi30 CFLAGS := -O1 -std=c17 -DHAVE_CONFIG_H -I$(ROOT) -I$(ROOT)/include -I$(ROOT)/src31 NAMES := prep_cif types raw_api java_raw_api tramp dolly32 OBJECTS := $(addprefix /tmp/libffi/,$(addsuffix .o,$(NAMES)))33 all: /usr/lib/libffi.a34 /tmp/libffi/%.o: $(ROOT)/src/%.c35 >$(CC) $(CFLAGS) -c $< -o $@36 /usr/lib/libffi.a: $(OBJECTS)37 >$(AR) rcs $@ $^38SLOP make \39 -f /tmp/libffi/Makefile4041FILE /tmp/libffi-check.c424344 static int add(int left, int right) { return left + right; }45 static void add_closure(ffi_cif *cif, void *result, void **arguments,46 void *context) {47 (void)cif;48 *(int *)result = *(int *)arguments[0] + *(int *)context;49 }50 int main(void) {51 ffi_cif cif;52 ffi_type *types[] = {&ffi_type_sint32, &ffi_type_sint32};53 int left = 19, right = 23, answer = 0;54 void *values[] = {&left, &right};55 if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,56 &ffi_type_sint32, types) != FFI_OK) return 10;57 ffi_call(&cif, FFI_FN(add), &answer, values);58 if (answer != 42) return 11;59 void *code = 0;60 ffi_closure *closure = ffi_closure_alloc(sizeof(*closure), &code);61 ffi_type *one_type[] = {&ffi_type_sint32};62 if (closure == 0 ||63 ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,64 &ffi_type_sint32, one_type) != FFI_OK ||65 ffi_prep_closure_loc(closure, &cif, add_closure, &right, code) != FFI_OK) {66 return 12;67 }68 int (*callback)(int) = code;69 answer = callback(19);70 ffi_closure_free(closure);71 if (answer != 42) return 13;72 return puts("LIBFFI-WASM64-OK") < 0 ? 14 : 0;73 }74SLOP cc \75 -O1 \76 -std=c17 \77 /tmp/libffi-check.c \78 -o /tmp/libffi-check \79 -lffi80SLOP slop \81 -c \82 /tmp/libffi-check8384EXPORTS LIB ffi /usr/lib/libffi.a85EXPORTS HEADER /usr/include/ffi.h86EXPORTS HEADER /usr/include/ffitarget.h87FILE /usr/lib/pkgconfig/libffi.pc88 prefix=/usr89 libdir=/usr/lib90 includedir=/usr/include91 92 Name: libffi93 Description: Library supporting Foreign Function Interfaces94 Version: 3.5.295 Libs: -L${libdir} -lffi96 Cflags: -I${includedir}97EXPORTS FILE libffi-pkgconfig /usr/lib/pkgconfig/libffi.pc98FILE /usr/share/licenses/libffi/LICENSE99100SLOP rm \101 -rf \102 /tmp/libffi \103 /tmp/libffi-check \104 /tmp/libffi-check.c \105 /tmp/libffi.tar \106 /usr/src/libffi107