2

私はAIXの初心者です。gccのスタックプロテクター機能を使用してプログラムをコンパイルしようとしています。pwareのGCCパッケージを使用してサーバーにgccをインストールし、次のようなサンプルプログラムをコンパイルできます。

#include <stdio.h>

int main(int argc,char **argv)
{
  printf("hello world\n");

  return 0;
}

ただし、stack-protectorをオンにすると、次のようになります。g ++ -fstack-protector-all main.cpp collect2:ライブラリlibssp_nonsharedが見つかりません

私はこれに対する解決策をグーグルで探していました、そして私のlibcは私の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パッケージに付属している必要がありますか?

4

1 に答える 1

5

これは何の関係もありませんlibcGCCインストールにlibssp_nonshared.aライブラリがありません。

あなたは何"gcc --version"と言いますか?オプションで構成されている可能性があり--disable-libsspます(この場合、スタック保護インストルメンテーションを使用できません)。

更新:
私はちょうど調べましたgcc-4.3.0/configure

 powerpc-*-aix*)
    noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
    ;;

-fstack-protectorこれは、libssp(したがって)がプラットフォームで使用できないことを意味すると約99%確信しています。ごめん :-(

于 2009-08-29T15:44:57.973 に答える