我正在考慮直接在我的文件系統中用uClibc庫替換glibc庫(libc.so)。它會起作用嗎?或者我需要重新編譯所有的二進制文件?用uClibs庫替換glibc庫
0
A
回答
0
不,這不會工作,不管你如何骰子。
所有來自過程鏈接表和全局偏移表的重要重定位符號序號都不再正確。任何試圖解析被刪除的符號散列部分的嘗試都會驚慌失措,並且會留下一些破碎的字節。即使您要解決這個令人震驚的混亂問題,您也會遇到大量半複製或溢出的頁面,其中包含來自多個動態庫的指令,其大小已不再正確解決。
另一方面,靜態鏈接的二進制文件將不受此更改的影響。
1
非常糟糕的主意。 uClibc中的「About」頁面上第三句:
從glibc的到uClibc的通常只涉及重新編譯源代碼
1
由於所有其他的答案移植應用程序已經在說:這是不行的。
uClibc和glibc甚至沒有相同的動態庫加載器(ld-linux.so)。共享可執行文件指定它們需要哪個動態庫加載器和哪些共享庫。您可以通過readelf -l /path/to/executable
(用於動態庫加載程序)和readelf -d
獲取有關共享庫的信息。
對glibc連接將使像這樣的程序:
INTERP 0x000154 0x00008154 0x00008154 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.3]
0x00000001 (NEEDED) Shared library: [libc.so.6]
對uClibc的鏈接的程序會給這樣的事情:
INTERP 0x000114 0x00008114 0x00008114 0x00014 0x00014 R 0x1
[Requesting program interpreter: /lib/ld-uClibc.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.1]
相關問題
- 1. 用包裝庫替換庫的使用
- 2. perforce替換庫
- 3. PrestaShop庫替換
- 4. 用JAR庫替換Android庫項目?
- 5. ViewPager圖庫替換
- 6. 替換系統庫
- 7. CodeIgniter 3-庫替換
- 8. 通過glibc庫複製
- 9. 替代glibc動態鏈接程序的庫路徑順序(ld.so)
- 10. Python netcraft API或替換庫
- 11. 替換Wordpress圖片庫
- 12. 替換Visual Studio標準庫
- 13. 替換mysql數據庫
- 14. Metro類庫,FileInfo替換?
- 15. C++庫替換標準cstdio
- 16. 替換遠程git倉庫
- 17. 替換SQL Server數據庫
- 18. SSAS用來替換查詢數據庫
- 19. 使用ORM替換存儲庫模式?
- 20. 如何使用Gradle替換Android Volley庫?
- 21. Apigen不能用於替換庫
- 22. 用一個標記替換存儲庫
- 23. 用於替換signtool.exe的API /庫
- 24. 用存檔替換svn倉庫
- 25. 用dropbox替換數據庫備份
- 26. 使用標準庫替換循環strtok
- 27. 用本機OSX庫替換OpenSSL
- 28. 靜態鏈接到動態庫。 glibc
- 29. Node.js:如何用另一個庫替換一個庫?
- 30. 用一個父存儲庫替換三個Git存儲庫
感謝您的建議 –