2015-01-05 23 views
9

info gcc plik mówi w części dotyczącej szczególnych x86-64 flagami, między innymi: Co jest domyślną opcją gcc -march?

 There is no `-march=generic' option because `-march' 
     indicates the instruction set the compiler can use, and there 
     is no generic instruction set applicable to all processors. 
     In contrast, `-mtune' indicates the processor (or, in this 
     case, collection of processors) for which the code is 
     optimized. 

Moje pytanie jest więc, co instrukcja (sub) zestaw ma gcc skompilować dla gdy nie -march opcja jest podana? Istnieje wiele powiązanych informacji na temat -march i -mtune w webosferze, ale nie mogę znaleźć , która odpowiada na to proste pytanie. Nie może to być marzec = natywna, ani też niemożliwe byłoby skompilowanie ogólnych pakietów dystrybucyjnych i pakietów binarnych .

+0

możliwy duplikat [Uzyskanie obecnej architektury GCC] (http://stackoverflow.com/questions/11727855/ obtain-current-gcc-architecture) – mlt

Odpowiedz

10

Domyślne flagi dla gcc można ustawić podczas kompilacji gcc. Uruchom:

gcc -Q --help=target 

, aby sprawdzić, jakie ustawienie domyślne ma urządzenie. Prawdopodobnie będzie to tylko x86-64 , nawet jeśli strona podręcznika nie udokumentuje tego jako wartość -march-

+1

OK, dane wyjściowe zawierają marsz = x86-64. Ale ponieważ jest to nieudokumentowane, jak zauważyłeś, to tylko przesuwa pytanie: co to naprawdę znaczy w kategoriach instrukcji? – BehemothTheCat

+1

Powinien to być podstawowy zestaw instrukcji x86-64, wspólny dla wszystkich procesorów x86-64. – nos

+2

... który jest czymś, co mówi dokumentacja, nie istnieje :-P – BehemothTheCat