Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7040277
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T01:53:57+00:00 2026-05-28T01:53:57+00:00

Is there a way to change the specs file so that it will pass

  • 0

Is there a way to change the specs file so that it will pass -march=native if nothing is specified in command line?

Related things in the default specs file is:

*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)}

I am not sure how specs works. Simply specifying -march=native before or after %(cc1_cpu) doesn’t work. However, this line does take effect because GCC will report error if I put -something_wierd instead of -march=native.

Another thing I noticed is if I put %{march=i386:-something_wierd} before %(cc1_cpu), gcc reports error so looks like -march=i386 is always passed in if nothing is specified, so is there a way to distinguish between nothing specified and -march=i386 in specs file?

BTW, what does %> do? Seems like it is not specified in the documentation.

I am using MinGW’s gcc-4.6.2.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T01:53:58+00:00Added an answer on May 28, 2026 at 1:53 am

    Referring to your last question: The gcc 4.6.1 sources (gcc/gcc.c) contain the following comment on %>:

     %>S    Similar to "%<S", but keep it in the GCC command line.
    

    For the sake of completeness following the comment for %< form the same file:

     %<S    remove all occurrences of -S from the command line.
            Note - this command is position dependent.  % commands in the
            spec string before this one will see -S, % commands in the
            spec string after this one will not.
    

    To answer the first question in short: yes, but ….

    … the only generic solution I found has the significant drawback that the -march option will be ignored, so every build is done as if -march=native had been specified. Anyhow there is a workaround to that.

    1 The solution (without workaround)

    Create a specs-file called let’s say specs.nativealways containing:

    *cc1_cpu:
    %<march=* -march=native %>march=native %:local_cpu_detect(arch) %{!mtune=*:%>mtune=native %:local_cpu_detect(tune)} %{mtune=native:%>mtune=native %:local_cpu_detect(tune)}
    

    When using the specs-file (for example by invoking gcc with the option -specs=specs.nativealways) the build will be done as if -march=native was specified (with the mentioned drawback that any occurrence of option -march=<arch> would have simply been ignored).

    2 The workaround

    To still by able to override the newly configured default behavior one can use a modified version of the specs-file described above, introducing a new option called -myarch using the same syntax as -march (except for -myarch=native, which won’t work, which does not metter as native now is the default).

    The modfied specs-file looks like this:

    *cc1_cpu:
    %<march=* %{myarch=*:%<myarch* -march=%* ; :-march=native %>march=native %:local_cpu_detect(arch) %{!mtune=*:%>mtune=native %:local_cpu_detect(tune)}}  %{mtune=native:%>mtune=native %:local_cpu_detect(tune)}
    

    PS: This has been tested with with gcc 4.6.2 on Linux, but should work on MinGW.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there a way to change the height of a progress view bar in
Is there a way to change the 'Appearance color' (or theme) in the editor
Is there a way to change tabs order in Vim (i.e. change the position
Is there any way to change the selection bar text color in a list
Is there a way to change (for the purpose of localization) the null placeholder
Is there any way to change(increase) the data type of a column while saving
Is there any way to change the Facebook album privacy settings with graph api
Is there a way to change the direction for transitions globally? I know we
Is there any way to change the BackColor of the border of a panel
Is there any way to change the icon of an application after it is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.