/lib/ld-linux.so.2 を使用してプログラムを起動すると失敗するのはなぜですか?

/lib/ld-linux.so.2 を使用してプログラムを起動すると失敗するのはなぜですか?
$ /bin/bash -c 'echo qqq'
qqq
$ /lib/ld-linux.so.2 /bin/bash -c 'echo qqq'
/bin/bash: xmalloc: ../bash/variables.c:2176: cannot allocate 3 bytes (8192 bytes allocated)

なぜこのようなことが起こるのでしょうか (zsh4、python はこのユースケースではうまく機能します)? 「prelink」が原因でしょうか?

答え1

amd64 アーキテクチャ上の 32 ビット ライブラリで 64 ビット バイナリを呼び出そうとしている可能性があります。私の場合:

ls -l /lib/ld-linux.so.2
/lib/ld-linux.so.2 -> /lib32/ld-linux.so.2

答え2

示唆されているようにバーティドゥ、 それは可能性がありますバグ

回避策の 1 つは、カーネル割り当てのランダム化を無効にすることです。

echo 0 > /proc/sys/kernel/randomize_va_space

関連情報