Hallo,
Die libtuxtxt enthält die Funktion start_thread(), die z.B. auch der Links-Browser und wahrscheinlich auch das Bild-in-Bild-Plugin definieren.
Wenn ich nun die libtuxtxt verwende, funktionieren diese Plugins nicht, da sie nicht ihre eigene start_thread(), sondern die aus libtuxtxt verwenden.
(Wenn ich die Funktion in libtuxtxt umbenenne, funktionieren die Plugins! )
Das ist natürlich nicht gerade sehr sauber, da ja nur irgendwo jemand zufällig die umbenannte Funktion definieren muss, und das Spiel beginnt von vorn...
Gibt es etwas, um von aussen "sichtbare" Funktionen zu kennzeichnen (sowas wie declspec(dllexport) ) ?
Bezieht sich dieses Verhalten eigentlich nur auf Funktionen oder auch auf Variablen ?
dbluelle
Symbole aus lib "verstecken"
-
- Contributor
- Beiträge: 319
- Registriert: Samstag 29. Mai 2004, 18:49
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Hallo
es gibt auch beim gcc "weak symbols" vielleicht hilft die das weiter.
siehe auch unter http://www.ohse.de/uwe/articles/gcc-attributes.html
Gruss
Houdini
es gibt auch beim gcc "weak symbols" vielleicht hilft die das weiter.
siehe auch unter http://www.ohse.de/uwe/articles/gcc-attributes.html
Gruss
Houdini
-
- Senior Member
- Beiträge: 1339
- Registriert: Donnerstag 24. April 2003, 12:12
Bei libtool geht das zum Beispiel mit "-export-symbols <symbolfile>". Und mit "-export-symbols-regex" kann man sogar per regexp bestimmen welche Symbole exportiert werden sollen (z.Bsp. alle die nicht mit "_" anfangen oder so).
Einfach als LDFLAGS hinzufügen und dann eine Datei anlegen in der man nur die Symbole einträgt, die exportiert werden sollen, immer ein Name pro Zeile. Daraus erzeugt es dann ein Versionsskript für ld.
Wenn man kein Libtool nimmt muß man das Versionsskript selber erzeugen und dem Linker mit "-version-script" übergeben.
Einfach als LDFLAGS hinzufügen und dann eine Datei anlegen in der man nur die Symbole einträgt, die exportiert werden sollen, immer ein Name pro Zeile. Daraus erzeugt es dann ein Versionsskript für ld.
Wenn man kein Libtool nimmt muß man das Versionsskript selber erzeugen und dem Linker mit "-version-script" übergeben.
Code: Alles auswählen
{
global:
<Symbol, welches erscheinen soll>;
<...>;
local: *; };
-
- Contributor
- Beiträge: 319
- Registriert: Samstag 29. Mai 2004, 18:49
Erstmal vielen Dank für die Tipps.
Es hat sich allerdings in der Zwischenzeit erledigt.
Ich hatte nicht daran gedacht, dass die meisten Funktionen sowieso nach aussen "sichtbar" sein müssen, da sie ja vom Plugin gebraucht werden .
Naja, jedenfalls fangen jetzt alle Symbole mit"tuxtxt_" an (siehe CVS), sodass es keine Namensüberschneidungen mehr geben sollte...
dbluelle
Es hat sich allerdings in der Zwischenzeit erledigt.
Ich hatte nicht daran gedacht, dass die meisten Funktionen sowieso nach aussen "sichtbar" sein müssen, da sie ja vom Plugin gebraucht werden .
Naja, jedenfalls fangen jetzt alle Symbole mit"tuxtxt_" an (siehe CVS), sodass es keine Namensüberschneidungen mehr geben sollte...
dbluelle
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
Re: Symbole aus lib "verstecken"
Sorry für OT, aber weil es angesprochen wurde..dbluelle hat geschrieben:...die z.B. auch der Links-Browser ....
Ist der Source für den portierten Browser verfügbar?
Wenn ja wo?
Trotz suche habe ich nichts gefunden..
Gruß
-
- Oberlamer, Administrator & Supernanny
- Beiträge: 10532
- Registriert: Samstag 13. Juli 2002, 10:49
In der OE Toolchain für die Dreambox 7020 - http://developer.elitedvb.net/listproje ... urr_dir=81
Dort wird der normale Links-Browser mit Patches versehen und als Plugin gebaut.
Dort wird der normale Links-Browser mit Patches versehen und als Plugin gebaut.
There are 10 types of people in the world: those who know binary and those who don't