Xlc '-qthreaded' 编译器选项的 gcc 等效项是啥?

Posted

技术标签:

【中文标题】Xlc \'-qthreaded\' 编译器选项的 gcc 等效项是啥?【英文标题】:What is the gcc equivilant for Xlc '-qthreaded' compiler option?Xlc '-qthreaded' 编译器选项的 gcc 等效项是什么? 【发布时间】:2019-07-30 07:59:50 【问题描述】:

我目前正在将我的编译器从 AIX XLC 编译器移植到 AIX 上的 GCC 编译器。

我想知道-qthreaded (XLC) 是否有可用的 GCC 等效编译器选项。

【问题讨论】:

应该是-pthread 【参考方案1】:

-pthread 是最接近将 -qthreaded 应用于 XL 的用例的 GCC 选项;但是,它不等同于 IBM XL 的 -qthreaded 选项。

-pthread 的 GCC 文档仅声明它设置了宏 (http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#index-pthread) 并修改了链接步骤 (http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#index-pthread-1)。 -qthreaded 不会导致_THREAD_SAFE 被定义为宏,也不会导致-lpthreads 出现在链接步骤中。 GCC 的 -pthread 更像 XL 的 _r 调用(确实设置了宏并修改了链接步骤)。

-qthreaded 所做的是禁用对多线程程序不安全的优化。看来,至少从历史上看,-fno-tree-loop-if-convert-stores 至少部分是等同于-qthreaded 的 GCC。

【讨论】:

以上是关于Xlc '-qthreaded' 编译器选项的 gcc 等效项是啥?的主要内容,如果未能解决你的问题,请参考以下文章

sigsegv 发生在 posix_memalign 在某些设备中释放后立即发生并在 AIX 中编译选项

更改构建 c 编译器

AIX和Linux C++编译器差别总结

C++ 的 AIX xlC 交叉编译/链接未找到 C 符号

QThread:线程仍在运行时被销毁?

使用xlC 13.1.2在AIX 7.1上编译boost C ++库