¿Hay alguna manera de hacer que gcc genere un binario en bruto?

¿Hay un conjunto de opciones de línea de comandos que convencerán a gcc para producir un archivo binario plano desde un archivo fuente autocontenido? Por ejemplo, supongamos que los contenidos de foo.c son

static int f(int x)
{
  int y = x*x;
  return y+2;
}

No hay referencias externas, nada para exportar al enlazador. Me gustaría obtener un archivo pequeño con solo las instrucciones de la máquina para esta función, sin ninguna otra decoración. Algo así como un archivo .COM (DOS), excepto el modo protegido de 32 bits.

Respuestas a la pregunta(4)

Su respuesta a la pregunta