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 default ajax progressbar that is there in
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
Is there a way to change location of IsolatedStorage files? I am using .NET
Is there a way to change the root folder for the views to the
Is there a way to change the alignment of the icon or text of
Is there a way to change the value contained in an NSNumber after it
Is there a way to change the order of the controls inside a StackPanel
Is there a way to change the application language during runtime? So, after the
is there a way to change the background color of a QTextBlock in a

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.