Debian 10 から gcc 8.3 にコンパイル:
root@debian:/home/mongo# ldd /home/mongo/build/opt/mongo/db/mongod
linux-vdso.so.1 (0x00007ffe9f1c0000)
libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f1d7012d000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1d70105000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f1d700eb0
...
だから私はそれが動的リンクにコンパイルされリンクされていると確信しています。 gcc 8でコンパイルされたにもかかわらず、実際にはlddのgcc 6 Runtime.soを使用します。
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc6183c1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc618042000)
gcc 6.3の同じ実行ファイルはDebian 9で利用可能です:
ldd /usr/bin/mongod
statically linked
セグフォルトが発生しました
mongod[12662]: segfault at 8 ip 00007f25798fa821 sp 00007ffccda20090 error 4 in ld-2.24.so
その理由は何ですか?さまざまなLinux Debianバージョンでどのようにコンパイルして実行しますか?