GCC options --direct-data und -static

OP #1081116
Lesenswert?

Hallo, ich versuch gerade nachzuvollziehen, was das AVR32 Studio beim 
build macht.

Einige Option hab ich im GCC Manual nicht gefunden:
Unter AVR32/GNU C Linker ist standardmäßig u.a. folgende option 
angeführt:

-Wl, --direct-data

Was tut diese Option? Sie korrespondiert offenbar mit einer anklickbaren 
Option "Allows direct references to the data section".

Kann es sein, dass das mit vorcompilierten Library aufrufen zu tun hat?

Ich kämpfe zur Zeit mit dem Problem beim Debuggen, das bestimmte 
Funktionsaufrufe von Beispielprojekten in den Sourcen garnicht findbar 
sind. Ich würde gerne allen Quellcode von den benutzten und vermutlich 
erst vom Linker evtl als vorcompilierte Dateien eingebundenen Librarys 
fürs Debugen vorhanden haben. Dazu müsste ich die Standardlibs alle 
raushauen mit -nostdlib, -nodefaultlibs, -nostartfiles etc, und dann 
stattdessen die Source-Dateien explizit angeben oder? Wie sagt man dann 
dem Linker/Compiler, das er auf vorcompiliertes Zeug verzichten soll?

Ferner hat evtl -static = "No shared libraries" etwas damit zutun. Was 
ist eine shared library?
Moderator Persönliche Seite #1081180
Lesenswert?

Moritz E. wrote:

> Was
> ist eine shared library?

Gugeln sollte dir da sicher helfen.  Kurz: eine Bibliothek, die
vorgelinkt ist und die zur Laufzeit in den VM-Adressraum der
Applikation reingemappt wird (mit mmap()).  Die Idee dahinter (daher
shared library) ist, dass mehrere Applikationen den Code gleichzeitig
nutzen können.

Wenn du von Windows kommst, kennst du sowas als DLL.
OP #1081235
Lesenswert?

Dann handelt es sich bei den standardlibs wohl um static libraries... 
und -static würde keinen untersched machen

zu "--direct-data" habe ich beim ld manual nichts gefunden, mit avr32-ld 
--help erfahre ich auch nicht mehr als "Allow direct data references 
when optimizing". Was ist unter "direct data reference" zu verstehen?
Gast #1082792
Lesenswert?

Zum fehlendem Code beim Debuggen:

Das habe ich mit gnuarm und Eclipse auch, wenn Funktionen aus der Newlib 
verwendet werden. Ich habe mir dadurch geholfen, in dem ich den 
entsprechenden Quellcode aus den Source-Paketen hinzufügte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren