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.
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.