I wonder if anybody might be able to help me.
I'm trying to build tbb43_20150424 for Linux using gcc4.9.1, and the following errors occur:
/tmp/ccxNhOc9.s: Assembler messages:
/tmp/ccxNhOc9.s:615: Error: no such instruction: `xtest'
/tmp/ccxNhOc9.s:643: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:652: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:658: Error: no such instruction: `xend'
/tmp/ccxNhOc9.s:825: Error: no such instruction: `xbegin .L56'
/tmp/ccxNhOc9.s:988: Error: no such instruction: `xbegin .L71'
/tmp/ccxNhOc9.s:1216: Error: no such instruction: `xabort $255'
make: *** [x86_rtm_rw_mutex.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/user_data/.tmp/linux_intel64_gcc_cc4.9.1_libc2.12_kernel2.6.32_debug'
make: *** [tbb] Error 2
After flailing around for a bit, I found that I could build successfully by commenting out the following lines in the build/linux.gcc.inc file:
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
ifneq (,$(shell gcc -dumpversion | egrep "^4\.[8-9]"))
RTM_KEY = -mrtm
My processor is Intel Xeon X5680 3.33GHz, which I believe pre-dates the tsx extensions.
- First question, is it the absence of tsx in my hardware causing the errors above?
- Second question, is there a nicer way to make this using gcc4.9.1 than my above solution?
Hello John, thanks for the report
Is this some custom build of 4.9 or system default? it looks the the compiler/assembler was built without -mrtm support, it is not HW problem. We will look for "a nicer way" but for now it looks that just commenting these lines is the best workaround.