编译和安装
操作步骤
- 执行以下命令解压安装包。
cd /path/to/GPTL tar xf GPTL-8.1.1.tar.gz cd GPTL-8.1.1
- 执行以下命令修改相关文件。
- 修改gptl.c
vim src/gptl.c
修改第3070行,将asm volatile ("rdtsc":"=a" (a), "=d" (d));替换为以下内容。Description: __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)) Suggestion: static uint64_t Rdtsc() { uint64_t count_num; Current_Speed = 2400; // Current Speed =2400MHz External_Clock = 100; // External Clock = 100MHz __asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r" (count_num)); return count_num * (Current_Speed / External_Clock); }
修改第3083行,将_asm__ __volatile__("rdtsc":"=A" (val): );替换为以下内容。
Description: __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)) Suggestion: static uint64_t Rdtsc() { uint64_t count_num; Current_Speed = 2400; // Current Speed =2400MHz External_Clock = 100; // External Clock = 100MHz __asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r" (count_num)); return count_num * (Current_Speed / External_Clock); }
- 修改Makefile。
vim src/unsupported_utils/cprsummary/Makefile
将第2行改成CFLAGS = -march=armv8.2-a
vim src/unsupported_utils/loadbal/Makefile
将第2行改成CFLAGS = -march=armv8.2-a
- 修改libtool。
vim /path/to/GPTL/GPTL-8.1.1/libtool
将第330行改为wl=”-Wl,”
将第11688行改为wl=”-Wl,”
- 修改gptl.c
- 执行以下命令生成makefile。
./configure --enable-debug --enable-libunwind --prefix=/path/to/GPTL
- 执行以下命令编译安装。
make make install
- 执行以下命令设置环境变量。
export PATH=/path/to/GPTL/bin:$PATH export LD_LIBRARY_PATH=/path/to/GPTL/lib:$LD_LIBRARY_PATH