编译Bazel 0.26.1失败的解决办法

问题现象描述

若编译Bazel 0.26.1时提示error: ambiguating new declaration of 'long int gettid(),详细信息如下图:

关键过程、根本原因分析

Bazel源码定义的gettid()函数与glibc库冲突。

结论、解决方案及效果

将Bazel源码中的函数名gettid改为gettid_sys,再重新编译Bazel。

调整前:

执行以下命令替换gettid:

1
grep -rl 'gettid' third_party/grpc/src/ | xargs sed -i 's/\bgettid/gettid_sys/g'

调整后: