Erste GCC zu kompilieren, ohne das einfügen Aufruf von memcpy

Ich bin derzeit mit GCC 4.5.3, zusammengestellt für PowerPC 440, und bin kompilieren von code, der nicht erforderlich ist, libc. Ich habe keine direkten Aufrufe von memcpy(), aber der compiler scheint das einsetzen eines während des Baus.

Gibt es linker-Optionen wie -nostdlib, -nostartfiles, -nodefaultlibs aber ich bin nicht in der Lage, Sie zu benutzen, wie ich es nicht mache die Verknüpfung phase. Ich bin nur kompilieren. Mit so etwas wie dies:

$ powerpc-440-eabi-gcc -O2 -g -c -o output.o input.c

Wenn ich überprüfen Sie die Ausgabe.o, nm, sehe ich einen Verweis auf memcpy:

$ powerpc-440-eabi-nm output.o | grep memcpy
     U memcpy
$ 

Den GCC Mann Seite macht es klar, wie zu entfernen Aufrufe von memcpy und andere libc-Aufrufe mit dem linker, aber ich will nicht die compiler an, legen Sie Sie in den ersten Platz, da bin ich mit einem völlig anderen linker (nicht GNU ld, und es nicht wissen, über libc).

Vielen Dank für jede Hilfe können Sie zur Verfügung stellen.

  • Wenn sonst nichts funktioniert, eine einfache byte-by-byte, CPU-basierte Implementierung von memcpy ausreichend, zumindest für selten benutzte Fällen ist wahrscheinlich kürzer als die meisten der Antworten hier gepostet.
InformationsquelleAutor Brian | 2011-06-20
Schreibe einen Kommentar