Lo macro están predefinidos por gcc para diferentes procesadores SPARC?
-
26-09-2019 - |
Pregunta
¿Qué macroses están predefinidos para C Programms por GCC compilador que se ejecutan en diferentes procesadores SPARC. OS es el Linux.
Entonces, ¿cómo puedo distinguir entre UltraSPARC, SuperSPARC, Cataratas, SPARC64, etc en tiempo de compilación.
Gracias
Solución 2
Tome una mirada en especificaciones de GCC:
gcc -dumpspecs
... salto ...
%{msoft-float:-D_SOFT_FLOAT} %{mcypress:} %{msparclite:-D__sparclite__} %{mf930:-D__sparclite__} %{mf934:-D__sparclite__} %{mv8:-D__sparc_v8__} %{msupersparc:-D__supersparc__ -D__sparc_v8__} %{mcpu=sparclet:-D__sparclet__} %{mcpu=tsc701:-D__sparclet__} %{mcpu=sparclite:-D__sparclite__} %{mcpu=f930:-D__sparclite__} %{mcpu=f934:-D__sparclite__} %{mcpu=v8:-D__sparc_v8__} %{mcpu=supersparc:-D__supersparc__ -D__sparc_v8__} %{mcpu=hypersparc:-D__hypersparc__ -D__sparc_v8__} %{mcpu=sparclite86x:-D__sparclite86x__} %{mcpu=v9:-D__sparc_v9__} %{mcpu=ultrasparc:-D__sparc_v9__} %{mcpu=ultrasparc3:-D__sparc_v9__} %{mcpu=niagara:-D__sparc_v9__} %{mcpu=niagara2:-D__sparc_v9__} %{!mcpu*:%{!mcypress:%{!msparclite:%{!mf930:%{!mf934:%{!mv8:%{!msupersparc:%(cpp_cpu_default)}}}}}}}
Hay una lista de reconocido mcpu
de la lista de macroses -D
.
Y la siguiente es
%{mcpu=sparclet:-Asparclet} %{mcpu=tsc701:-Asparclet} %{msparclite:-Asparclite} %{mf930:-Asparclite} %{mf934:-Asparclite} %{mcpu=sparclite:-Asparclite} %{mcpu=sparclite86x:-Asparclite} %{mcpu=f930:-Asparclite} %{mcpu=f934:-Asparclite} %{mv8plus:-Av8plus} %{mcpu=v9:-Av9} %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} %{mcpu=ultrasparc3:%{!mv8plus:-Av9b}} %{mcpu=niagara:%{!mv8plus:-Av9b}} %{mcpu=niagara2:%{!mv8plus:-Av9b}} %{!mcpu*:%{!mcypress:%{!msparclite:%{!mf930:%{!mf934:%{!mv8:%{!msupersparc:%(asm_cpu_default)}}}}}}}
para traducir -mcpu
a -A
Espero que esto ayude
Otros consejos
La forma más fácil de averiguarlo es para probarlo, por ejemplo:.
$ gcc <whatever you need to specify first CPU> -dM -E - < /dev/null &> cpu1.txt
$ gcc <whatever you need to specify second CPU> -dM -E - < /dev/null &> cpu2.txt
$ sdiff -s cpu1.txt cpu2.txt