Symbole aus lib "verstecken"

dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Symbole aus lib "verstecken"

Beitrag von dbluelle »

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
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

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
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

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.

Code: Alles auswählen

{
global:
<Symbol, welches erscheinen soll>;
<...>;
local: *; };
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

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 :roll: .
Naja, jedenfalls fangen jetzt alle Symbole mit"tuxtxt_" an (siehe CVS), sodass es keine Namensüberschneidungen mehr geben sollte...

dbluelle
racker
Einsteiger
Einsteiger
Beiträge: 369
Registriert: Samstag 29. Mai 2004, 01:50

Re: Symbole aus lib "verstecken"

Beitrag von racker »

dbluelle hat geschrieben:...die z.B. auch der Links-Browser ....
Sorry für OT, aber weil es angesprochen wurde..
Ist der Source für den portierten Browser verfügbar?
Wenn ja wo?
Trotz suche habe ich nichts gefunden.. :gruebel:

Gruß
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

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.
There are 10 types of people in the world: those who know binary and those who don't