硬件:ARM cortex A7, NXP imx6ull
系统:openwrt 19.07,linux 5.4.46
binutils 2.31,选择glibc时,要求gcc 6.2以上版本,故采用7.x版本。
编译过程中会出现数组个数小于0的错误,错误产生于代码文件libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc的1150行 CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
这行代码是对_sanitizer_ipc_perm->mode和ipc_perm->mode的sizeof和offset做比较,推测是编译器对编译开关判断错误引起的,将其注释后编译通过。
至于为什么要用glibc,是因为musl库的signal.h和siginfo.h代码有错误,用到sigevent结构体的程序会编译出错,比如cycletest。