- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am using the Intel Compiler v11.1 on Snow Leopard. I am able to compiler my library as 32-bit using -m32. When changing to 64-bit (-m64) I get the following error:
Linking CXX shared library MEXAllocateAlignedMemory.mexmaci64
Assertion failed: (truncated uleb128 expression), function getULEB128, file /usr/local/include/libunwind/AddressSpace.hpp, line 152.
icpc: error #10106: Fatal error in ld, terminated by IOT instruction
The above code simply allocates aligned memory for other functions using the following:
temp_ptr = (void*)ippsMalloc_64f((int)(size[0]));
Where is the error coming from?
Thank you for any help,
Kevin
I am using the Intel Compiler v11.1 on Snow Leopard. I am able to compiler my library as 32-bit using -m32. When changing to 64-bit (-m64) I get the following error:
Linking CXX shared library MEXAllocateAlignedMemory.mexmaci64
Assertion failed: (truncated uleb128 expression), function getULEB128, file /usr/local/include/libunwind/AddressSpace.hpp, line 152.
icpc: error #10106: Fatal error in ld, terminated by IOT instruction
The above code simply allocates aligned memory for other functions using the following:
temp_ptr = (void*)ippsMalloc_64f((int)(size[0]));
Where is the error coming from?
Thank you for any help,
Kevin
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is a posting int he IPP forum about linking with 64bit IPP libraries. I think this might help you.
http://software.intel.com/en-us/forums/showthread.php?t=73106&o=d&s=lr
http://software.intel.com/en-us/forums/showthread.php?t=73106&o=d&s=lr
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Kevin,
I don't think this is due to the IPP function, per se. Some searching on the web for SIGIOT reveals that you may have a bad pointer (perhaps the malloc didn't happen?). One source says this:
The IOT stands for "I/O Trap" but you should just think "bad pointer" and it is the same as segment violation (SEGV). If you really want, you can look in /usr/include/bits/signum.h . It is a little confusing in that a bad pointer can cause SIGIOT, SIGBUS, SIGSEGV but differences are for legacy reasons.
Unfortunately, it means that there is either a mismatch between the libraries resulting in memory corruption, or, more likely, something is not being initialized properly. It is hard to say what the problem might be. There may still be some other link option that you need, or something like that.
Memory allocation alignment problem? Stack problems? Check out this article, it might help: Determining Root Cause of SIGSEGV or SIGBUS errors
Paul

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page