2010-06-10 42 views
16

Gentoo Wiki nói với tôi như sau:Chính xác thì gì -march = native làm gì?

Cảnh báo: GCC 4.2 trở lên hỗ trợ -march = mẹ đẻ. -march = native áp dụng các cài đặt bổ sung ngoài -march, cụ thể cho CPU của bạn. Trừ khi bạn có một lý do cụ thể không để (ví dụ: distcc biên dịch chéo), có thể bạn nên sử dụng -march = native, thay vì mọi thứ được liệt kê bên dưới.

Các cài đặt bổ sung đó là gì?

Trả lời

12

Nevermind.

$ cc -march=core2 -E -v - </dev/null 2>&1 | grep cc1 
/[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 

$ cc -march=native -E -v - </dev/null 2>&1 | grep cc1 
/[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2 

Tôi bắt đầu thích tùy chọn này rất nhiều. -mcx16-msahf là hai lệnh CPU bổ sung mà gcc hiện có thể sử dụng, vốn không có sẵn trong Core2 trước đó.

+0

Trên i7 của tôi, nó cũng thêm '-mpopcnt -msse4.2 --param l2-cache-size = 8192' trong đó POPCNT là một lệnh CPU khá gọn gàng. – Cubbi

+4

Lạ. Bạn có gửi máy xây dựng cùng với phần mềm của bạn không? –

+10

@hans: lol, nhưng OP đang làm việc với Gentoo. Điều đó có nghĩa là không ai phân phối các tệp nhị phân, chỉ mã được biên dịch trên máy mà trên đó nó sẽ được chạy. –

Các vấn đề liên quan