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

txs errors building in gcc4.9.1 on xeon processor

John_K_4
Beginner
481 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_Intel2
481 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

John_K_4
Beginner
481 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.

Reply