StevenPZChan
StevenPZChan
~1 min read

Categories

Tags

Android 编译 sysbench

最近使用了 sysbench 做各个 SoC 的性能评估,其中有的开发板默认是 Android 系统,这里记录下编译 sysbench 的方法。

  1. 源代码
  2. 设置编译器环境变量export CC=/opt/android-ndk-r20b-standalone/bin/aarch64-linux-android-clang CXX=/opt/android-ndk-r20b-standalone/bin/aarch64-linux-android-clang++
  3. 执行./autogen.sh
  4. 编辑configure文件,注释掉#define malloc rpl_malloc
  5. 编辑sysbench/sysbench.c文件,增加pthread_cancel的支持:

    #ifdef __ANDROID__
    int pthread_cancel(pthread_t thread) { return pthread_kill(thread, SIGUSR1); }
    #endif
    
    void thread_exit_handler(int sig) { pthread_exit(0); }
    
    struct sigaction actions;
    memset(&actions, 0, sizeof(actions));
    sigemptyset(&actions.sa_mask);
    actions.sa_flags = 0;
    actions.sa_handler = thread_exit_handler;
    sigaction(SIGUSR1, &actions, NULL);
    
  6. 执行./configure --host=aarch64-linux-android --without-mysql
  7. 执行make -j编译,编译结果在sysbench/sysbench