Có cách nào thay đổi tệp thông số để nó sẽ vượt qua -march=native
nếu không có gì được chỉ định trong dòng lệnh không?Cách sử dụng gcc sử dụng march = gốc làm mặc định?
thứ liên quan trong hồ sơ kỹ thuật mặc định là:
*cc1:
%(cc1_cpu)
*cc1_cpu:
%{march=native:%>march=native %:local_cpu_detect(arch) %{!mtune=*:%>mtune=native %:local_cpu_detect(tune)}} %{mtune=native:%>mtune=native %:local_cpu_detect(tune)}
Tôi không chắc chắn như thế nào thông số kỹ thuật hoạt động. Chỉ cần chỉ định -march=native
trước hoặc sau %(cc1_cpu)
không hoạt động. Tuy nhiên, dòng này không có hiệu lực vì GCC sẽ báo cáo lỗi nếu tôi đặt -something_wierd
thay vì -march=native
.
Một điều tôi nhận thấy là nếu tôi đặt %{march=i386:-something_wierd}
trước %(cc1_cpu)
, báo cáo gcc lỗi để trông giống như -march=i386
luôn được thông qua năm nếu không có gì được chỉ định, như vậy là có một cách để phân biệt giữa không có gì cụ thể và -march=i386
trong tập tin thông số kỹ thuật?
BTW, những gì hiện %>
làm gì? Có vẻ như nó không được chỉ định in the documentation.
Tôi đang sử dụng số gcc-4.6.2
của MinGW.
Tôi thực sự đã đưa ra một số giải pháp tương tự như cách tiếp cận đầu tiên của bạn. Tôi thực sự nhận ra rằng vấn đề chính là -march = i386 luôn luôn được truyền theo mặc định và không có cách nào để nói nếu nó được truyền theo mặc định hoặc thông qua dòng lệnh. Tôi đoán việc thay đổi mã nguồn GCC gần như là cách duy nhất. –
@icando: Bạn đặt tên cho nó! – alk