Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

txs errors building in gcc4.9.1 on xeon processor

John_K_4
Beginner
661 Views

Hi there,

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[1]: *** [x86_rtm_rw_mutex.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: 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
#endif

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?

Kind regards,

 

John Kelly.

 

0 Kudos
2 Replies
Vladimir_P_1234567890
661 Views

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.

--Vladimir

0 Kudos
John_K_4
Beginner
661 Views

Thanks for your reply Vladimir,

I believe that we do have a custom 4.9 build. Perhaps enabling -mrtm support in our gcc will be the way forward.

 

Cheers,

John.

0 Kudos
Reply