6157f4598c
A basic benchmark for FFI callbacks. I'm currently not planning on extending it to cover more calling conventions or running it on our benchmark infra. We can leave that for when we want to do it. Bug: https://github.com/dart-lang/sdk/issues/38171 Change-Id: I0c5fec81333e9a8da092b4f51ceb9f80a2eb2cf7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/407020 Reviewed-by: Liam Appelbe <liama@google.com> Reviewed-by: Slava Egorov <vegorov@google.com>
68 lines
2.2 KiB
Makefile
68 lines
2.2 KiB
Makefile
# Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
# TODO(37531): Remove this makefile and build with sdk instead when
|
|
# benchmark runner gets support for that.
|
|
|
|
CC=gcc
|
|
CCARM=arm-linux-gnueabihf-gcc
|
|
CCARM64=aarch64-linux-gnu-gcc
|
|
CFLAGS=-Wall -g -O -fPIC
|
|
|
|
.PHONY: all clean
|
|
|
|
all: out/linux/x64/libnative_functions.so out/linux/ia32/libnative_functions.so out/linux/arm64/libnative_functions.so out/linux/arm/libnative_functions.so
|
|
|
|
cipd:
|
|
cipd create -name dart/benchmarks/fficall -in out -install-mode copy
|
|
|
|
clean:
|
|
rm -rf *.o *.so out
|
|
|
|
out/linux/x64:
|
|
mkdir -p out/linux/x64
|
|
|
|
out/linux/x64/native_functions.o: native_functions.c | out/linux/x64
|
|
$(CC) $(CFLAGS) -c -o $@ native_functions.c
|
|
|
|
out/linux/x64/libnative_functions.so: out/linux/x64/native_functions.o
|
|
$(CC) $(CFLAGS) -s -shared -o $@ out/linux/x64/native_functions.o
|
|
|
|
out/linux/ia32:
|
|
mkdir -p out/linux/ia32
|
|
|
|
out/linux/ia32/native_functions.o: native_functions.c | out/linux/ia32
|
|
$(CC) $(CFLAGS) -m32 -c -o $@ native_functions.c
|
|
|
|
out/linux/ia32/libnative_functions.so: out/linux/ia32/native_functions.o
|
|
$(CC) $(CFLAGS) -m32 -s -shared -o $@ out/linux/ia32/native_functions.o
|
|
|
|
out/linux/arm64:
|
|
mkdir -p out/linux/arm64
|
|
|
|
out/linux/arm64/native_functions.o: native_functions.c | out/linux/arm64
|
|
$(CCARM64) $(CFLAGS) -c -o $@ native_functions.c
|
|
|
|
out/linux/arm64/libnative_functions.so: out/linux/arm64/native_functions.o
|
|
$(CCARM64) $(CFLAGS) -s -shared -o $@ out/linux/arm64/native_functions.o
|
|
|
|
out/linux/arm:
|
|
mkdir -p out/linux/arm
|
|
|
|
out/linux/arm/native_functions.o: native_functions.c | out/linux/arm
|
|
$(CCARM) $(CFLAGS) -c -o $@ native_functions.c
|
|
|
|
out/linux/arm/libnative_functions.so: out/linux/arm/native_functions.o
|
|
$(CCARM) $(CFLAGS) -s -shared -o $@ out/linux/arm/native_functions.o
|
|
|
|
# On M1 Machine.
|
|
out/mac/arm64:
|
|
mkdir -p out/mac/arm64
|
|
|
|
out/mac/arm64/native_functions.o: native_functions.c | out/mac/arm64
|
|
$(CC) $(CFLAGS) -c -o $@ native_functions.c
|
|
|
|
out/mac/arm64/libnative_functions.dylib: out/mac/arm64/native_functions.o
|
|
$(CC) $(CFLAGS) -s -shared -o $@ out/mac/arm64/native_functions.o
|