Actualmente estoy usando GCC 4.5.3, compilado para PowerPC 440, y estoy compilando código que no requiere libc. No tengo ninguna llamada directa a memcpy(), pero el compilador parece estar insertando uno durante la compilación.Obtención de GCC para compilar sin insertar la llamada a memcpy
Existen opciones de vinculador como -nostdlib, -nostartfiles, -nodefaultlibs pero no puedo usarlos ya que no estoy haciendo la fase de vinculación. Solo estoy compilando. Con algo como esto:
$ powerpc-440-eabi-gcc -O2 -g -c -o output.o input.c
Si puedo comprobar el output.o con nm, veo una referencia al establecimiento de memoria:
$ powerpc-440-eabi-nm output.o | grep memcpy
U memcpy
$
La página del CCG deja claro cómo quitar las llamadas al establecimiento de memoria y otras llamadas de libc con el enlazador, pero no quiero que el compilador las inserte en primer lugar, ya que estoy usando un enlazador completamente diferente (no el ld de GNU, y no sabe acerca de libc).
Gracias por cualquier ayuda que pueda proporcionar.
Si nada de esto funciona, un byte byte por simples , La implementación basada en CPU de memcpy suficiente al menos para casos raramente utilizados es probablemente más corta que la mayoría de las respuestas po sted aquí. –