«

»

Mar 12 2014

Bypassing “clang: error: unknown argument”

Note: I originally wrote the blog post while installing mitmproxy on OS X Mavericks, but it is relevant to the “unknown argument” error in general, so keep reading.

Having a Mac laptop is like going on a journey every single day… My latest issue happened today while trying to install mitmproxy. Python’s pip was exiting with the following error:

clang: error: unknown argument: ‘-mno-fused-madd’ [-Wunused-command-line-argument-hard-error-in-future]

Well, it turns out that the latest (5.1) version of Xcode ships with a compiler that treats unknown passed parameters as errors. From the changelog:

The Apple LLVM compiler in Xcode 5.1 treats unrecognized command-line options as errors. This issue has been seen when building both Python native extensions and Ruby Gems, where some invalid compiler options are currently specified.

Projects using invalid compiler options will need to be changed to remove those options. To help ease that transition, the compiler will temporarily accept an option to downgrade the error to a warning:

-Wno-error=unused-command-line-argument-hard-error-in-future

Note: This option will not be supported in the future.

To workaround this issue, set the ARCHFLAGS environment variable to downgrade the error to a warning. For example, you can install a Python native extension with:

$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install ExtensionName

Similarly, you can install a Ruby Gem with:

$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName 16214764 updated

So, basically you can install mitmproxy (or any other program with a similar error) by:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mitmproxy

Bear in mind that you if you need to combine the above with sudo, you will need to add it at the beginning of the command and not before “pip”. Otherwise you can also run the above logged in as root user from the start.

22 comments

6 pings

Skip to comment form

  1. Deadman44

    Thank your very much. I had the same issue with (ruby) gem installing sqlite3.

    1. Ion

      Glad that it helped you! Yeap, Python & Ruby are both affected.

  2. Matthias Ott

    Thanks a lot! I successfully (gem) installed Breakpoint for Sass with this snippet.

    1. Ion

      Great! It seems like a common error these days. Blame Apple 🙂

  3. Burak

    Great. Thank you for the solution. Solved my nightmare.

  4. Sam

    Fixed the problem I was having with installing the alpha release of compass, many thanks!

  5. Dominick

    super useful. fixed my problem for ‘gem install rmagick’. cheers!

    1. Ion

      Hi Dominick, glad it worked!

  6. Daniel Bryant

    Awesome! Solved my issues with ‘pip install mitmproxy’ – many thanks for the post 🙂

    1. Ion

      Hello Daniel, this was initially what I was trying to install as well 🙂

  7. John

    Excellent and thank you… worked for ‘gem install nokogiri’

  8. tweisbach

    You can use sudo the following way: sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mitmproxy

    1. Ugs

      You can also append:

      Defaults env_keep += “ARCHFLAGS”

      to the list env env_keep additions to make sure ARCHFLAGS is maintained by sudo, and then add:

      export ARCHFLAGS=’-Wno-error=unused-command-line-argument-hard-error-in-future’

      to your ~/.bashrc to hide all this craziness

      1. Ugs

        sorry, append Defaults env_keep += “ARCHFLAGS” in /etc/sudoers

  9. Srinivas HN

    it solved my mavericks issues
    Thanks lot

  10. Stefano

    Thank you! Problems installing a gem on Mavericks here.

  11. AA

    your solution is the only one that worked

  12. QS

    I judge you for spelling “bear” as “bare”, but I appreciate your assistance.

    1. Ion

      Hah, thanks QS.

  13. Ethan Eldridge

    Extremely useful! Thanks so much, pycrypto was giving this error on a clients computer

  14. MacTommy

    Many thanks! This helped 😉

  15. Stevie Pod James

    that didnt work on El capitain, aka EL SHIT!, but for anyone that made the mistake i did by not waiting 3 years until after it came out, if u r using homebrew with python, do brew reinstall python –from-src, and make a little change on tweisbach,s helpful piece of info and use sudo -H instead of just sudo on the front of ARCHFLAGS.. was pulling my hair out until i remembered the -H is the key when sudo wont work.

  1. Kippo attack heatmap in seconds using Kibana and Kippo2ElasticSearch - BruteForce Lab's Blog

    […] Bare in mind that you’ll probably get the “clang: error: unknown argument” failure message but fear not, a I have written the solution here if you need it: http://bruteforcelab.com/bypassing-clang-error-unknown-argument.html […]

  2. It's a pain when you have to work around things like this on a development m… « iandouglas.com

    […] Bypassing “clang: error: unknown argument” – BruteForce Lab’s Blog Note: I originally wrote the blog post while installing mitmproxy on OS X Maverics, but it is relevant to the “unknown argument” error in general, so keep reading. Having a Mac laptop is like going on a journey every single day… My latest issue happened today while trying to install mitmproxy. […]

  3. Fix clang: error: unknown argument: ‘-mno-fused-madd’ after updating Xcode 5.1 or above | San Luthra

    […] After lots of research on web and googling, I found many people had faced this issue after updating the Xcode  to 5.1 or above mine is 6.1 You can find your Xcode version using pkgutil –pkg-info=com.apple.pkg.CLTools_Executables […]

Leave a Reply

More in General News
Using KeePass on Mac OS X
Make apt-get use IPv4 instead of IPv6
BlackHat USA 2012 – Owning Bad Guys (and Mafia) with Javascript Botnets
Christiaan008: The Honey project and CIC News Engine
Disable mod_security with htaccess
Close