在gcc 3.4.3中使用原子操作

在gcc 3.4.3中使用原子操作,c,gcc,opensolaris,solaris-10,C,Gcc,Opensolaris,Solaris 10,gcc-4.1.2中介绍了这些方法。但是,我在OpenIndiana上使用gcc,它只有gcc 3.4.3。现在我的问题是如何在gcc 3.4.3中使用原子操作?此外,我曾尝试在OpenIndiana中使用GCC4.6.1,但它不起作用,因为它抱怨一些运行时库。如果有人成功地使用了它,请告诉我。GCC具有强大的内联汇编支持,因此您可以使用\u asm来制作您自己的各种原子操作变体。但是,它将特定于您的目标平台,因此您需要一些好的宏来切换到正确的版本。GCC具有强大的内联汇编支持,因此您可以使用\

gcc-4.1.2中介绍了这些方法。但是,我在OpenIndiana上使用gcc,它只有gcc 3.4.3。现在我的问题是如何在gcc 3.4.3中使用原子操作?此外,我曾尝试在OpenIndiana中使用GCC4.6.1,但它不起作用,因为它抱怨一些运行时库。如果有人成功地使用了它,请告诉我。

GCC具有强大的内联汇编支持,因此您可以使用
\u asm
来制作您自己的各种原子操作变体。但是,它将特定于您的目标平台,因此您需要一些好的宏来切换到正确的版本。

GCC具有强大的内联汇编支持,因此您可以使用
\u asm
来制作您自己的各种原子操作变体。但是,它将特定于您的目标平台,因此您需要一些好的宏来切换到正确的版本。

我建议您升级GCC编译器。GCC3是一个古老的东西

如果无法安装更新版本的GCC,则应尝试从其源代码编译GCC4.6.1编译器。(不要忘记在源代码树之外的构建树中编译它,也不要忘记所有依赖项)


您没有提及或解释GCC 4.6.1编译失败的原因。它抱怨什么运行库?安装后是否运行了ldconfig?

我建议您升级GCC编译器。GCC3是一个古老的东西

如果无法安装更新版本的GCC,则应尝试从其源代码编译GCC4.6.1编译器。(不要忘记在源代码树之外的构建树中编译它,也不要忘记所有依赖项)


您没有提及或解释GCC 4.6.1编译失败的原因。它抱怨什么运行库?安装后是否运行了ldconfig?

添加到现有答案-您看过吗?我本人从未使用过它,但它似乎提供了GCC4.6编译器包。

添加到现有答案中-您看过吗?我本人从未使用过它,但它似乎提供了GCC4.6编译器包。

在Solaris上,替代方法可能是使用libc接口。这些可能是内联的,也可能不是内联的,但无论使用哪种编译器,它们都保证始终可用(并且始终以相同的方式运行)


除此之外,我支持升级您的gcc和/或获得(它们是免版税的;即使您仅将其用于测试,如果让它与多个编译器一起工作,代码质量往往会提高…)的建议。是的,它也将在基于OpenSolaris的发行版上安装/运行。

在Solaris上,替代方法可能是使用libc接口。这些可能是内联的,也可能不是内联的,但无论使用哪种编译器,它们都保证始终可用(并且始终以相同的方式运行)

除此之外,我支持升级您的gcc和/或获得(它们是免版税的;即使您仅将其用于测试,如果让它与多个编译器一起工作,代码质量往往会提高…)的建议。是的,它也将安装/运行在基于OpenSolaris的发行版上