したがって、次の構成でOpenSuse13.1でコンパイルされているこのプログラムがあります。
- GCC 4.6-15.1.3
- GLIBC 2.14
- Libcrypto 1.0
ただし、次の構成を持つOpenSuse10.3で実行する必要があります。
- GCC 4.2-24
- GLIBC 2.6.1-18
- Libcrypto 0.9.8
これまでに見つけた唯一の依存関係は__isoc99_sscanf
、GLIBC2.7で導入されたものでした。独自のsscanf関数を記述してこれを修正し、ソースコードに次の行を追加して置き換えようとしました。
__asm__(".symver __isoc99_sscanf1, __isoc99_sscanf@@GLIBC_2.7");
これでlibcryptoの依存関係が残り、古いOpenSuse環境で実行しようとするとmunmap()(プログラムをstraceするとき)関数でセグフォールトしているように見えます(GCCのものである可能性がありますか?)
したがって、基本的に、この種の下位互換性の問題を修正するための標準的な手順が何であるかはわかりません。これについて何か考えはありますか?