Ich denke, die glibc Bibliothek (libc.so) durch die uClibc Bibliothek direkt in meinem Dateisystem zu ersetzen. Wird es funktionieren? Oder muss ich alle Binärdateien neu kompilieren?Ersetze glibc Bibliotheken mit uClibs Bibliotheken
Antwort
Nein, das wird nicht funktionieren, egal wie du es würfelst.
Alle Symbol-Ordnungszahlen wichtiger Umlagerungen aus der Prozedur-Verknüpfungstabelle und der globalen Offset-Tabelle sind nicht mehr korrekt. Alle Versuche, die intern gespeicherten Symbol-Hash-Abschnitte aufzulösen, würden in Panik geraten, und Sie würden mit einem gebrochenen Haufen von Bytes zurückbleiben. Selbst wenn Sie diese erstaunliche Unordnung umgehen müssten, hätten Sie eine Reihe von entweder halb kopierten oder übergelaufenen Seiten mit Anweisungen aus mehreren dynamischen Bibliotheken, deren Größe nicht mehr korrekt aufgelöst wird.
Auf der positiven Seite sind statisch verknüpfte Binärdateien von dieser Änderung nicht betroffen.
Extrem schlechte Idee. 3. Satz auf der ‚About‘ Seite von uclibc:
Portieren von Anwendungen von glibc auf uClibc beinhaltet typischerweise nur den Quellcode
Wie alle anderen Antworten recompiling sagt schon: das wird nicht funktionieren.
uClibc und glibc haben nicht einmal den gleichen dynamischen Bibliothekslader (ld-linux.so). Gemeinsam genutzte ausführbare Dateien geben an, welcher dynamische Bibliothekslader und welche gemeinsamen Bibliotheken sie benötigen. Sie können diese Informationen mit readelf -l /path/to/executable
(für den dynamischen Bibliothekslader) und readelf -d
für die gemeinsam genutzten Bibliotheken abrufen.
Ein Programm verknüpft gegen glibc so etwas wie dieses geben wird:
INTERP 0x000154 0x00008154 0x00008154 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.3]
0x00000001 (NEEDED) Shared library: [libc.so.6]
Ein Programm verknüpft gegen uClibc so etwas wie dieses geben:
INTERP 0x000114 0x00008114 0x00008114 0x00014 0x00014 R 0x1
[Requesting program interpreter: /lib/ld-uClibc.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.1]
- 1. Kann ich Valgrind Ignore Glibc-Bibliotheken machen?
- 2. Mehrere glibc-Bibliotheken auf einem einzigen Host
- 3. Link glibc statisch, aber einige andere Bibliotheken dynamisch mit GCC
- 4. Was macht libc_hidden_proto in den glibc Standard-Bibliotheken?
- 5. Problem mit dynamischen Bibliotheken
- 6. Verknüpfung mit statischen Bibliotheken
- 7. Bibliotheken, die anderen Bibliotheken in einem Makefile
- 8. C++ - Bibliotheken in .NET-Bibliotheken einbetten
- 9. Wie ändert man Verzeichnisse, Bibliotheken und Bibliotheken mit CLion?
- 10. Portable Bibliotheken mit Typ Provider
- 11. Javascript-Bibliotheken mit Tomcat referenzieren
- 12. Java-Befehlszeilenprobleme mit .jar-Bibliotheken
- 13. kompiliert Code mit OpenCV Bibliotheken
- 14. Android java.lang.NoClassDefFoundError mit JODA Bibliotheken
- 15. ILMerge mit .NET 4 Bibliotheken
- 16. Wavelet-Plot mit Python-Bibliotheken
- 17. .NET Bibliotheken mit JSON arbeiten
- 18. Keyword mit verschiedenen Bibliotheken Objekte
- 19. Schnittstelle Mit C-Bibliotheken gehen
- 20. Warum benötigt meine statische Erstellung gemeinsame Bibliotheken?
- 21. Xcode und SPM-Bibliotheken
- 22. .NET DICOM-Bibliotheken
- 23. leistungsstarke JavaScript-Canvas-Bibliotheken
- 24. Guava-Bibliotheken und GWT
- 25. Applet und Bibliotheken
- 26. Hochwertige Bibliotheken für C++
- 27. Angular 2 benötigte Bibliotheken
- 28. Packaging JNI-Bibliotheken
- 29. SVN-Bibliotheken für .NET?
- 30. C++ - Bibliotheken für Bildsegmentierung
Dank für Ihren Vorschlag –