GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menghindari simbol STT_GNU_IFUNC di biner Anda?

Secara umum, sistem UNIX mendukung kompatibilitas biner ke belakang (biner yang dibangun di atas mesin lama terus berjalan di mesin yang lebih baru), tetapi tidak sebaliknya. Anda tidak dapat mengharapkan biner yang dibangun di atas sistem baru untuk berjalan di sistem lama. STT_GNU_IFUNC hanyalah yang pertama dari banyak masalah yang akan Anda temui.

Jika Anda perlu membuat biner di mesin yang lebih baru yang akan berjalan di mesin yang lebih lama, lihat dokumen ini.

Dulu ada "apgcc:Pembungkus GCC untuk membuat binari portabel" yang memudahkan ini (direferensikan dari atas), tetapi tampaknya sudah hilang;-(

Opsi termudah adalah membangun di mesin lama (saya dulu membangun di RedHat 6.2, dan biner yang dihasilkan berjalan di mana saja ). Anda tidak harus benar-benar menjalankan RH-6.2 di mesin fisik, cukup tampilkan di VM.

Opsi lain yang relatif mudah adalah membuat chroot , sekali lagi menggunakan alat dan pustaka dari distribusi lama (mis. RH-6.2).


Karena APGCC sepertinya tidak tersedia lagi (kecuali mungkin di sini dan di sini). Header glibc ini tampaknya saat ini merupakan cara yang paling nyaman untuk menghasilkan binari Linux portabel dari kode C dengan memasukkan salah satu file header yang lebih lama.


Linux
  1. Cara mengkompilasi biner 32-bit pada mesin linux 64-bit dengan gcc/cmake

  2. Bagaimana cara mendapatkan alamat MAC mesin Anda menggunakan program C?

  3. Bagaimana Anda mengelola konfigurasi iptables Linux Anda pada mesin yang bertindak sebagai router?

  1. Bagaimana mengelola riwayat perintah Linux Anda

  2. Bagaimana mengubah nama host mesin Linux Anda tanpa perlu me-restart

  3. Bagaimana cara mengetahui Server DNS apa yang dikonfigurasi pada mesin Anda? Linux/Windows/OSX

  1. Cara mengatur printer Anda di Linux

  2. Bagaimana menemukan alamat IP Anda di Linux

  3. Cara mematikan atau me-reboot Linux