私はソースからC / C ++ライブラリをコンパイルするためにGCCを使用しています。ほとんどのコードはLinuxカーネルに焦点を当て、Unix用に書かれています。私はそれをAIXで動作させるように調整しようとしてきました。私が変更したもののほとんどは、AIX固有のフラグラベルと条件を追加することでした。ただし、.__init_aix_libgcc_cxa_atexit
選択すると、プリコンパイルまたはコンパイル時に生成された複合シンボルという次の重複シンボル警告が表示されます。
警告する
ld: 0711-228 WARNING: Duplicate symbols were found while resolving symbols.
The following duplicates were found:
Symbol Source-File(Object) OR Import-File{Shared-object}
------------------------- -------------------------------------------------
.__init_aix_libgcc_cxa_atexit ../../../../../gcc-9.1.0/libgcc/config/rs6000/crtcxa.c(/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/9.1.0/pthread/ppc64/crtcxa.o)
** Duplicate ** {../../../target/usr/local/lib/libhdfs.so}
RESOLVE: 176 of 5701 symbols were kept.
RESOLVE: The return code is 4.
追加情報: AIX 7.1 CMAKE 3.15.0 GCC 9.1-AIX-7.1
ソースコードとビルドスクリプトを検索しましたが、問題が見つからないようです。コンパイラが C99 および C++11 標準を使用するよう強制したため、これは問題ではありません。この「警告」がダウンストリームのコンパイルエラーを引き起こすと思われるので、誰かがこの問題を特定する場所や修正方法に関する追加のガイダンスを提供できることをお勧めします。
他に必要なものがあれば教えてください。