diff options
author | 2017-11-11 17:33:21 -0500 | |
---|---|---|
committer | 2017-11-11 17:33:24 -0500 | |
commit | 45df7488dfd35b400d30d4813f59081d3a55c3e2 (patch) | |
tree | 7fbb60dc9d24310d54037b11594a3cd06a6c79b3 /measurements/2018-11-11-android/android32-bench-all.sh | |
parent | 3086c91187b221a25fe72434047dd16e78a58d33 (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.sh | 50 |
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 |