我正在考慮直接在我的文件系統中用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. 用JAR庫替換Android庫項目?
- 4. CodeIgniter 3-庫替換
- 5. 替換Wordpress圖片庫
- 6. 替換SQL Server數據庫
- 7. 替換Visual Studio標準庫
- 8. 替換遠程git倉庫
- 9. 用一個標記替換存儲庫
- 10. 用存檔替換svn倉庫
- 11. 用於替換signtool.exe的API /庫
- 12. 用本機OSX庫替換OpenSSL
- 13. 使用ORM替換存儲庫模式?
- 14. 靜態鏈接到動態庫。 glibc
- 15. Node.js:如何用另一個庫替換一個庫?
- 16. 用另一個數據庫替換一個數據庫的表
- 17. 用實時數據庫自動替換開發數據庫?
- 18. Haskell正則表達式庫替換/替換
- 19. 替換MySql數據庫中的文本
- 20. C2DM配額限制。協議/庫替換?
- 21. 通過替換庫更新cocos2d?
- 22. BackgroundWorker的任務並行庫替換?
- 23. 從庫中替換特定的類
- 24. 如何使庫在java中可替換?
- 25. 如何替換SQLite數據庫
- 26. 替換遠程git倉庫(Heroku)
- 27. 替換數據庫觸發器機制
- 28. Rails migrations pending,替換數據庫文件
- 29. 替換MySql數據庫中的單詞
- 30. 你能替換android數據庫嗎?
感謝您的建議 –