Xgboost: While installing on OSX Sierra via gcc-6, keep having "FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!" error

Created on 9 Jan 2017  ·  16Comments  ·  Source: dmlc/xgboost

Environment info

Operating System:
macOS 10.12.2 (16C68)

Compiler:
gcc-6

Steps to reproduce

I've installed gcc-6 and modified config.mk as required into

export CC = gcc-6
export CXX = g++-6

But keep having this error:

g++-6 -c -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude   -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/learner.cc -o build/learner.o
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!

What have you tried?

  1. Reinstall XCode
  2. Reinstall gcc
  3. Run make clean_all && make -4j

But still went wrong. Any idea?

Most helpful comment

@Marswang92 @jialinzou @mcneale
What about the version of as? You can check it by as -v. Maybe your terminal display something like GNU Assembler.

And I think the correct as is like:

Apple LLVM version 8.0.0 (clang-800.0.38)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1as -triple x86_64-apple-macosx10.11.0 -filetype obj -main-file-name - -target-cpu core2 -fdebug-compilation-dir /Users/fcbruce -dwarf-debug-producer Apple LLVM version 8.0.0 (clang-800.0.38) -dwarf-version=2 -mrelocation-model pic -o a.out -
^C

The reason is the system use a different path of as(be overrided). Please attention the error log you met /opt/local/bin/../libexec/as/x86_64/as, the correct as should be /usr/bin/as. You can check it by cd /usr/bin ; ./as -v.

My solution is export PATH=/usr/bin:$PATH. I helped my friend resolve the problem. And I think that can help you.

All 16 comments

I had the same problem and I tried with 'g++-mp-5' and it worked. It seems to be related to an unknown option passed to 'as'. Anybody knows how to examine command line option passed to assembler, so I could compare the options.

@yuntai Hi, do you mean setting export CXX = g++-mp-5 in config.mk? I tried it but It doesn't work. Seems it is still using the global gcc version. The Error is the following
g++-6 -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d g++-6 -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp -MM -MT build/logging.o src/logging.cc >build/logging.d g++-6 -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp -MM -MT build/c_api/c_api.o src/c_api/c_api.cc >build/c_api/c_api.d g++-6 -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp -MM -MT build/c_api/c_api_error.o src/c_api/c_api_error.cc >build/c_api/c_api_error.d g++-6 -c -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/logging.cc -o build/logging.o g++-6 -c -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/learner.cc -o build/learner.o g++-6 -c -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/c_api/c_api_error.cc -o build/c_api/c_api_error.o g++-6 -c -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/c_api/c_api.cc -o build/c_api/c_api.o FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag! make: *** [build/c_api/c_api_error.o] Error 1 make: *** Waiting for unfinished jobs.... FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag! make: *** [build/logging.o] Error 1 FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag! make: *** [build/c_api/c_api.o] Error 1 FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag! make: *** [build/learner.o] Error 1

same problem here.

$ make
g++-6 -std=c++11 -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d

g++-6 -c -std=c++11 -Wall -Wno-unknown-pragmas -Iinclude -Idmlc-core/include -Irabit/include -O3 -funroll-loops -msse2 -fPIC -fopenmp src/learner.cc -o build/learner.o

FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!

make: * [build/learner.o] Error 1

Same problem here.
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
Very odd, very weird, same version working ok on another Sierra OS X 10.4 system.

@Marswang92 @jialinzou @mcneale
What about the version of as? You can check it by as -v. Maybe your terminal display something like GNU Assembler.

And I think the correct as is like:

Apple LLVM version 8.0.0 (clang-800.0.38)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1as -triple x86_64-apple-macosx10.11.0 -filetype obj -main-file-name - -target-cpu core2 -fdebug-compilation-dir /Users/fcbruce -dwarf-debug-producer Apple LLVM version 8.0.0 (clang-800.0.38) -dwarf-version=2 -mrelocation-model pic -o a.out -
^C

The reason is the system use a different path of as(be overrided). Please attention the error log you met /opt/local/bin/../libexec/as/x86_64/as, the correct as should be /usr/bin/as. You can check it by cd /usr/bin ; ./as -v.

My solution is export PATH=/usr/bin:$PATH. I helped my friend resolve the problem. And I think that can help you.

Hooray! solution seems to be to remove /opt/local/bin from one's path. @fcbruce thank you!

How you do this depends on your shell, @fcbruce assumes sh or bash I think. Under tcsh
setenv PATH /usr/local/bin
for example, might do the trick.

Hey guys, actually I've solved my problem by reinitializing my laptop. The cause might be multiple version of gcc on my laptop. Not quite sure.

@mcneale great suggestion.thanks.

@fcbruce Same problem was solved by adding the path. Thank you.

Hello everyone!
I had the same problem: ...I don't understand 'm' flag!
I solved it with export PATH=/usr/bin:$PATH, and it worked for a moment.
But know it doesn't work anymore now i do not have the I don't understand 'm' flag! problem
and there are no error massages at all, but the output of a simple hello world program is just:

œ˙Ì˛����Ä������‡��Ö� ��������H���__PAGEZERO��������������������������������������������������������(��__TEXT����������������������������������������������������__text����������__TEXT����������&�����∞�������&����������������Ä������������__stubs���������__TEXT����������÷�����
�������÷��������������Ä�����������__stub_helper���__TEXT����������Ù�����B�������Ù���������������Ä������������__cstring�������__TEXT����������6�����
�������6�����������������������������__const���������__TEXT����������@�����,�������@�����������������������������__eh_frame������__TEXT����������p�����à�������p��������������������������������Ë���__DATA��������������������������������������������������__nl_symbol_ptr�__DATA���������������������������������������������������__la_symbol_ptr�__DATA���������������(�������������������������������������H���__LINKEDIT������� ������������� ������ê��������������������"��Ä0���� ����� ������������� ��†���¿ ��0���������¯ ��
���»!��»���
���P����������������������������������������������ò!��
���������������������� ���
���/usr/lib/dyld�������������·†ïÕÉ6ÑòΩhfEπ€H$������

��

�*��������������(�����������������
���P���������������/usr/local/opt/gcc/lib/gcc/7/libgfortran.4.dylib��������
���8���������2÷���/usr/lib/libSystem.B.dylib������
���@���������������/usr/local/lib/gcc/7/libgcc_s.1.dylib���
���P���������������/usr/local/opt/gcc/lib/gcc/7/libquadmath.0.dylib��������&������ �����)������¯ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������UHâÂHÅχ��Hç˛���HâÖ(˛ˇˇ«Ö0˛ˇˇ���«Ö ˛ˇˇÄ���«Ö$˛ˇˇ���HçÖ ˛ˇˇHâ«Ëv���HçÖ ˛ˇˇ∫
���Hç5¡���Hâ«Ëg���HçÖ ˛ˇˇHâ«ËR���ê…√UHâÂHÉÏâ}¸HâuHãUãE¸Hâ÷â«Ë
���Hç5ê���ø���Ë���ËWˇˇˇ∏����…√ˇ%4��ˇ%6��ˇ%8��ˇ%:��ˇ%<��Lç

��ASˇ%˝���êh����ÈÊˇˇˇh���È‹ˇˇˇh7���È“ˇˇˇhQ���È»ˇˇˇhp���Èæˇˇˇhello.F90�Hello World!����D���ˇ������������������������������zR�x
�4���
���ñ˛ˇˇˇˇˇˇs�����������Ü���
n���
�������4���T���—˛ˇˇˇˇˇˇ=�����������Ü���
8���
����������������������������������������������"�����,�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"U����@dyld_stub_binder�Qr�ê�r@__gfortran_set_args�ê�r@__gfortran_set_options�ê�r @__gfortran_st_write�ê�r(@__gfortran_st_write_done�ê�r0@__gfortran_transfer_character_write�ê��������_��_mh_execute_header�!main�%����ô
�������¶
s�����©�����&�����±�����P���������������������ô�����
�������������0�������������G�������������[�������������t��������������������������������������� ������@��������������� �__mh_execute_header�_main�__gfortran_set_args�__gfortran_set_options�__gfortran_st_write�__gfortran_st_write_done�__gfortran_transfer_character_write�dyld_stub_binder�_MAIN__�_options.1.3506��������

I am freaking out i want to compile a code and it already takes me weeks to run a simple gfortran compiler on my mac.

the problem is also that the export PATH=/usr/bin:$PATH is not permanently. So if I restart the terminal or the pc or if i open a new tab as is again in /opt/local/bin/as and not in /usr/bin/as
osx Version: 10.12.6

Can anyone help me ...I am dying
greets
matth

If you edit your .config file to add export PATH=/usr/bin:$PATH and restart the terminal, the compiler should find the right path. If you are using /opt/local/bin, then you modify .profile to put it there, e.g.
export PATH=/usr/bin:/opt/local/bin:/opt/local/sbin:$PATH. That worked for me running OS X 10.12.6.

I found that MacPorts was putting /opt/local/bin ahead of /usr/bin in the $PATH chain via these lines in .profile:

[hash] MacPorts Installer addition on 2018-03-01_at_16:21:35: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
[hash] Finished adapting your PATH environment variable for use with MacPorts.

So "as" was being found in /opt/local/bin/../libexec/as/x86_64/as before the preferred (working) version in /usr/bin

Took these lines out of .profile and restarted terminal. My test file hello world.f is now compiling

@netjjordan thanks a lot! I managed to get it compiling by putting /usr/bin at the start of PATH="..."

Thanks @netjjordan it worked for me as well

Late coming to the party... but...

The following worked for me. This solution is independent of system path gyrations.

$ cd /opt/local/bin
$ sudo mv ./as ./as-broken
$ sudo ln -s /usr/bin/as ./as

Here's a test that shows that it works:

$ mkdir ~/gcctest
$ cd ~/gcctest
$ echo 'int main(){return -1;}' > conftest.c
$ /opt/local/bin/gcc -o conftest conftest.c
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
$ cd /opt/local/bin
$ sudo mv ./as ./as-broken
$ sudo ln -s /usr/bin/as ./as
$ cd -
$ /opt/local/bin/gcc -o conftest conftest.c
$ ./conftest; echo $?
255

Late coming to the party... but...

The following worked for me. This solution is independent of system path gyrations.

$ cd /opt/local/bin
$ sudo mv ./as ./as-broken
$ sudo ln -s /usr/bin/as ./as

Here's a test that shows that it works:

$ mkdir ~/gcctest
$ cd ~/gcctest
$ echo 'int main(){return -1;}' > conftest.c
$ /opt/local/bin/gcc -o conftest conftest.c
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
$ cd /opt/local/bin
$ sudo mv ./as ./as-broken
$ sudo ln -s /usr/bin/as ./as
$ cd -
$ /opt/local/bin/gcc -o conftest conftest.c
$ ./conftest; echo $?
255

This works for me. Thanks very much

Was this page helpful?
0 / 5 - 0 ratings