aboutsummaryrefslogtreecommitdiff
path: root/measurements/2018-11-11-android/android32-bench-all.sh
diff options
context:
space:
mode:
authorGravatar Andres Erbsen <andreser@google.com>2017-11-11 17:33:21 -0500
committerGravatar Andres Erbsen <andreser@google.com>2017-11-11 17:33:24 -0500
commit45df7488dfd35b400d30d4813f59081d3a55c3e2 (patch)
tree7fbb60dc9d24310d54037b11594a3cd06a6c79b3 /measurements/2018-11-11-android/android32-bench-all.sh
parent3086c91187b221a25fe72434047dd16e78a58d33 (diff)
benchmark montgomery32, gmpvar, and gmpsec on 32-bit android
Despite significant effort, I did not manage to compiler gmpxx in a way that would allow it to be dynamically linked with the c++ standard library on android, or statically link the library in a way that would result in a file executable on Android. Somebody who understands C and Android dynamic linking might be able to do better.
Diffstat (limited to 'measurements/2018-11-11-android/android32-bench-all.sh')
-rw-r--r--measurements/2018-11-11-android/android32-bench-all.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/measurements/2018-11-11-android/android32-bench-all.sh b/measurements/2018-11-11-android/android32-bench-all.sh
new file mode 100644
index 000000000..10a8ce4d0
--- /dev/null
+++ b/measurements/2018-11-11-android/android32-bench-all.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+for impldir in src/Specific/*32_*2e* ; do
+
+ sh -c "arm-linux-androideabi-gcc -pie \
+ $(tail -1 "$impldir/compiler.sh" | tr ' ' '\n' | grep -A99999 -- -D | grep -v '"$@"' | tr '\n' ' ') \
+ -I \"$impldir\" \
+ -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing \
+ src/Specific/Framework/bench/fibe.c \
+ -o /tmp/main" \
+ > /dev/null 2> /dev/null \
+ && printf "%s\tfibe\n" "$(basename "$impldir")" && adb push /tmp/main /data/local/tmp/main >/dev/null 2>/dev/null && adb shell "time /data/local/tmp/main" || continue
+
+ sh -c "arm-linux-androideabi-gcc -pie \
+ $(tail -1 "$impldir/compiler.sh" | tr ' ' '\n' | grep -A99999 -- -D | grep -v '"$@"' | tr '\n' ' ') \
+ -I \"$impldir\" \
+ -I ~/android-toolchain/gmp-6.1.2/ \
+ -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing \
+ src/Specific/Framework/bench/gmpvar.c \
+ $HOME/android-toolchain/gmp-6.1.2/.libs/libgmp.a \
+ -o /tmp/main" \
+ > /dev/null 2> /dev/null \
+ && printf "%s\tgmpvar\n" "$(basename "$impldir")" && adb push /tmp/main /data/local/tmp/main >/dev/null 2>/dev/null && adb shell "time /data/local/tmp/main"
+
+ sh -c "arm-linux-androideabi-gcc -pie \
+ $(tail -1 "$impldir/compiler.sh" | tr ' ' '\n' | grep -A99999 -- -D | grep -v '"$@"' | tr '\n' ' ') \
+ -I \"$impldir\" \
+ -I ~/android-toolchain/gmp-6.1.2/ \
+ -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing \
+ src/Specific/Framework/bench/gmpsec.c \
+ $HOME/android-toolchain/gmp-6.1.2/.libs/libgmp.a \
+ -o /tmp/main" \
+ > /dev/null 2> /dev/null \
+ && printf "%s\tgmpsec\n" "$(basename "$impldir")" && adb push /tmp/main /data/local/tmp/main >/dev/null 2>/dev/null && adb shell "time /data/local/tmp/main"
+
+ # fails to find libc++ on android
+ #
+ # sh -c "arm-linux-androideabi-g++ -pie \
+ # $(tail -1 "$impldir/compiler.sh" | tr ' ' '\n' | grep -A99999 -- -D | grep -v '"$@"' | tr '\n' ' ') \
+ # -I \"$impldir\" \
+ # -I ~/android-toolchain/gmp-6.1.2/ \
+ # -L /usr/lib/android-ndk/sources/cxx-stl/llvm-libc++/libs/armeabi/ \
+ # -Wl,--allow-multiple-definition \
+ # -std=gnu++11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing \
+ # src/Specific/Framework/bench/gmpxx.cpp \
+ # $HOME/android-toolchain/gmp-6.1.2/.libs/libgmp.a \
+ # -o /tmp/main" \
+ # && printf "%s\tgmpxx\n" "$(basename "$impldir")" && adb push /tmp/main /data/local/tmp/main >/dev/null 2>/dev/null && adb shell "time /data/local/tmp/main"
+ printf "\n"
+done