我是一个AIX新手。我正在尝试使用gcc的堆栈保护功能编译程序。我使用pware的GCC包在服务器上安装了gcc,我可以编译一个示例程序,如:
#include <stdio.h>
int main(int argc,char **argv)
{
printf("hello world\n");
return 0;
}
当我打开堆栈保护器时,我得到: g ++ -fstack-protector-all main.cpp collect2:找不到库libssp_nonshared
我一直在谷歌寻找解决方案,似乎我的libc需要有一些内置于我的内核没有。是否有一个包含内置堆栈保护的libc?
g ++ -v返回
Using built-in specs.
Target: powerpc-ibm-aix5.3.0.0
Configured with: ../stage/gcc-4.2.4/configure --disable-shared --enable-threads=posix --prefix=/opt/pware --with-long-double-128 --with-mpfr=/opt/pware --with-gmp=/opt/pware
Thread model: aix
gcc version 4.2.4
我在系统上找不到libssp_nonshared.a - 是否需要安装其他软件包,或者它是否附带gcc软件包?
答案 0 :(得分:5)
这与libc
无关:您的GCC
安装缺少libssp_nonshared.a
库。
您的"gcc --version"
说什么?它可能已配置--disable-libssp
选项(在这种情况下,您无法使用堆栈保护工具)。
更新:
我刚看了gcc-4.3.0/configure
:
powerpc-*-aix*)
noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
;;
我大约99%肯定这意味着libssp(因此-fstack-protector
)不适用于您的平台。对不起: - (