Aktualnie używam GCC 4.5.3, skompilowałem dla PowerPC 440 i kompiluję kod, który nie wymaga libc. Nie mam żadnych bezpośrednich wywołań memcpy(), ale kompilator wydaje się wstawiać jeden podczas kompilacji.Uzyskiwanie kompilacji GCC bez wstawiania wywołania memcpy
Istnieją opcje linkera, takie jak -nostdlib, -nostartfiles, -nodefaultlibs, ale nie mogę ich użyć, ponieważ nie wykonuję fazy łączenia. Ja tylko kompiluję. Z czymś takim:
$ powerpc-440-eabi-gcc -O2 -g -c -o output.o input.c
Gdybym sprawdzić output.o z nm, widzę odniesienie do memcpy:
$ powerpc-440-eabi-nm output.o | grep memcpy
U memcpy
$
Strona GCC mężczyzna wyjaśnia, w jaki sposób usunąć i połączenia do memcpy inne wywołania libc z łącznikiem, ale nie chcę, aby kompilator wstawiał je w pierwszej kolejności, ponieważ używam zupełnie innego łącznika (nie GNU ld i nie wie o libc).
Dziękujemy za pomoc.
Jeżeli nic innego nie działa, bajt bajt po prosty Oparta na procesorze implementacja memcpy wystarczająca przynajmniej dla rzadko używanych przypadków jest prawdopodobnie krótsza niż większość odpowiedzi po Sted tutaj. –