# Building GNU Radio with previous Boost version

**URL:** <https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009>\
**Category:** GNU Radio\
**Created:** [August 14, 2015, 6:02pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009 "2015-08-14T18:02:27Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sadaf\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@Sadaf\_N](https://www.ruby-forum.com/u/Sadaf_N)\
**Post date:** [August 14, 2015, 6:02pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/1 "2015-08-14T18:02:27Z")

</div>

?Hi guys,

For a number of complicated reasons I would like to build GNU Radio with  
an older version of Boost. Specifically 1.49.

Thanks,

David

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 14, 2015, 7:00pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/2 "2015-08-14T19:00:54Z")

</div>

Hi David,

boost \> 1.35 should work, but 1.49 is, if I remember correctly, an  
especially buggy version, especially in Ubuntu.  
I guess you wouldn’t ask if there wasn’t a problem, so maybe you want to  
elaborate?

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 17, 2015, 3:57pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/3 "2015-08-17T15:57:24Z")

</div>

On Mon, Aug 17, 2015 at 6:27 AM, David Halls  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> 1. Separating the different components which require Boost into separate  
> Option 2: If GNU Radio specifically requires a different Boost version you  
> may be able to recompile it and statically link it against this version.
> 
> Option 3: Instead of compiling your MATLAB Code into a Shared Library,  
> compile it into a standalone application which you can launch from your  
> Python process. This separate standalone should be able to use its own  
> Boost libraries without problems then. There are Python libraries which can  
> read and write MAT-files so you can relatively efficiently pass in- and  
> outputs from and to that standalone application through MAT-files."

This sounds like good advice. Option 2 sounds the most sane.

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 17, 2015, 12:28pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/4 "2015-08-17T12:28:51Z")

</div>

Hi Marcus,

I am calling MATLAB compiled code from within GNURadio C++ blocks.  
MATLAB compiled code uses a specific version of Boost, and they are  
still using 1.49, even with their latest release. I get a the trace  
below when I try to run the MATLAB code on newer GNURadio/Ubuntu/Boost  
though it works fine on my old (ancient) GNURadio/Ubuntu/Boost​ build  
where the Boost versions match. (Also included is MathWorks take on it).

I was reticent to give all the details because previous MATLAB questions  
have left the community running for the hills, saying I should write  
everything directly in C++ etc, but there are lots of reasons we can’t  
do this, for now!

Thanks,

David

(python2:16446): IBUS-WARNING \*\*: The owner of  
/home/gnuradio/.config/ibus/bus is not root!  
Using Volk machine: avx\_64\_mmx\_orc  
Attempting to initialise the MCR application…  
Attempting to initialise the libdla application…

* * *

```
   Segmentation violation detected at Tue Jun 23 15:25:36 2015

```

* * *

Configuration:  
Crash Decoding : Disabled  
Default Encoding : UTF-8  
GNU C Library : 2.19 stable  
MATLAB Architecture: glnxa64  
MATLAB Root : /usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81  
MATLAB Version : 8.1.0.604 (R2013a)  
Operating System : Linux 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15  
03:51:08 UTC 2014 x86\_64  
Processor ID : x86 Family 6 Model 60 Stepping 3, GenuineIntel

Fault Count: 1

Abnormal termination:  
Segmentation violation

Register State (from fault):  
RAX = 00000000049dd7f0 RBX = 00000000049dd820  
RCX = 0000000000000002 RDX = 0000000000000000  
RSP = 00007fff0de311e0 RBP = 0000000000000001  
RSI = 0000000000000000 RDI = 0000000000000001

R8 = 00000000049dd820 R9 = 0000000000000000  
R10 = 000000000000069c R11 = a3d70a3d70a3d70b  
R12 = 00000000ffffffff R13 = 00007fff0de31450  
R14 = 000000000494e448 R15 = 000000000494e2f8

RIP = 00007f1ee264a414 EFL = 0000000000010202

CS = 0033 FS = 0000 GS = 0000

Stack Trace (from fault):  
[0] 0x00007f1ee264a414  
/lib/x86\_64-linux-gnu/libpthread.so.0+00042004  
pthread\_mutex\_lock+00000004  
[1] 0x00007f1ede8b37fa  
/usr/lib/x86\_64-linux-gnu/libboost\_thread.so.1.54.0+00047098  
\_ZN5boost6thread9interruptEv+00000074  
[2] 0x00007f1e9cec7b25  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00146213  
[3] 0x00007f1e9ced7c76  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00212086  
\_ZN10dsLockFileD1Ev+00000038  
[4] 0x00007f1e9cece93a  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00174394  
\_ZN5boost6detail17sp\_counted\_impl\_pI10dsLockFileE7disposeEv+00000026  
[5] 0x00007f1ebc46e379  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmat.so+00091001  
\_ZN5boost6detail12shared\_countD1Ev+00000073  
[6] 0x00007f1e9ced3d40  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195904  
\_ZN24dsDirectoryExclusiveLock7releaseERKN5boost10posix\_time13time\_durationE+00000176  
[7] 0x00007f1e9ced3d9f  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195999  
\_ZN24dsDirectoryExclusiveLock7releaseEv+00000031  
[8] 0x00007f1e9cecdf8c  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00171916  
\_ZN24dsDirectoryReadWriteLock8ReadLock4Impl7acquireERKN5boost10posix\_time13time\_durationEb+00001276  
[9] 0x00007f1e9cece3e6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00173030  
\_ZN24dsDirectoryReadWriteLock8ReadLock7acquireEb+00000038  
[10] 0x00007f1e8d45c602  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01230338  
[11] 0x00007f1e8d3ee718  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00780056  
[12] 0x00007f1e8d3ef2d6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00783062  
\_ZN5boost6detail8function21function\_obj\_invoker0INS\_3\_bi6bind\_tINS\_10shared\_ptrI21mclExtractedComponentEEPFS7\_N6mclmcr12CtfExtractorEENS3\_5list1INS3\_5valueIS9\_EEEEEES7\_E6invokeERNS1\_15function\_bufferE+00000054  
[13] 0x00007f1e8d42df95  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01040277  
\_Z30mclInitializeComponentInstanceRKN5boost8functionIFiPKcEEES6\_NS\_9function0INS\_10shared\_ptrI21mclExtractedComponentEEEE+00000389  
[14] 0x00007f1e8d3f9c0d  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00826381  
mclInitializeComponentInstanceEmbedded+00000573  
[15] 0x00007f1ec645c763  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/runtime/glnxa64/libmwmclmcrrt.so.8.1+00124771  
mclInitializeComponentInstanceEmbedded\_proxy+00000067  
[16] 0x00007f1ec5c2c1eb  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008683  
libdlaInitializeWithHandlers+00000107  
[17] 0x00007f1ec5c2c22b  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008747  
libdlaInitialize+00000023  
[18] 0x00007f1ec6c3393d  
/usr/local/lib/libgnuradio-trl.so+00493885  
[19] 0x00007f1ec6c33e08  
/usr/local/lib/libgnuradio-trl.so+00495112  
\_ZN2gr3trl5dla\_r4makeEiiibbfb+00000104  
[20] 0x00007f1ec70bb740  
/usr/local/lib/python2.7/dist-packages/trl/\_trl\_swig.so+02164544  
[21] 0x000000000052c6d5  
/usr/bin/python2+01230549 PyEval\_EvalFrameEx+00001061  
[22] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[23] 0x000000000052ca8d  
/usr/bin/python2+01231501 PyEval\_EvalFrameEx+00002013  
[24] 0x000000000056d0aa  
/usr/bin/python2+01495210  
[25] 0x00000000004d9854  
/usr/bin/python2+00890964  
[26] 0x00000000004d8379  
/usr/bin/python2+00885625  
[27] 0x00000000004f5d0b  
/usr/bin/python2+01006859  
[28] 0x000000000052cc20  
/usr/bin/python2+01231904 PyEval\_EvalFrameEx+00002416  
[29] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[30] 0x00000000005b7392  
/usr/bin/python2+01799058 PyEval\_EvalCode+00000050  
[31] 0x0000000000469663  
/usr/bin/python2+00431715  
[32] 0x00000000004699e3  
/usr/bin/python2+00432611 PyRun\_FileExFlags+00000146  
[33] 0x0000000000469f1c  
/usr/bin/python2+00433948 PyRun\_SimpleFileExFlags+00000750  
[34] 0x000000000046ab81  
/usr/bin/python2+00437121 Py\_Main+00002910  
[35] 0x00007f1ee229cec5  
/lib/x86\_64-linux-gnu/libc.so.6+00138949 \_\_libc\_start\_main+00000245  
[36] 0x000000000057497e  
/usr/bin/python2+01526142

If this problem is reproducible, please submit a Service Request via:  
[http://www.mathworks.com/support/contact\_us/](http://www.mathworks.com/support/contact_us/)

A technical support engineer might contact you with further information.

Thank you for your help.\*\* This crash report has been saved to disk as  
/home/gnuradio/matlab\_crash\_dump.16446-1 \*\*

MATLAB is exiting because of fatal error

> > > Done​

"The stack trace strongly suggests that the crash is related to a Boost  
library version conflict. MATLAB R2013a/MCR v8.1 includes and depends on  
Boost 1.49 libraries. In the stack trace we see that in practice your  
system’s Boost 1.54 libraries are being accessed however.

These things may occur if you load a MATLAB Compiler Shared Library into  
an application which is already making use of this system Boost library.

There are no quick/easy workarounds for such issues other than:

1. Making sure that all components involved make use of the same Boost  
library versions, or

2. Making sure that the components which require Boost statically link  
against the Boost version which they prefer, or

3. Separating the different components which require Boost into separate  
applications.

In further detail:

Option 1: It looks like you are making use of GNU Radio from Python, I  
do believe that GNU Radio depends on Boost. You may be able to  
(re)compile GNU Radio to make it use Boost 1.49 and where you even  
specifically link it to the Boost libraries shipped with the MCR (these  
can be found in the bin/glnxa64 directory).

Option 2: If GNU Radio specifically requires a different Boost version  
you may be able to recompile it and statically link it against this  
version.

Option 3: Instead of compiling your MATLAB Code into a Shared Library,  
compile it into a standalone application which you can launch from your  
Python process. This separate standalone should be able to use its own  
Boost libraries without problems then. There are Python libraries which  
can read and write MAT-files so you can relatively efficiently pass in-  
and outputs from and to that standalone application through MAT-files."

* * *

From: [discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)  
[discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid) on  
behalf of Marcus Müller [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 14 August 2015 17:59  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

Hi David,

boost \> 1.35 should work, but 1.49 is, if I remember correctly, an  
especially buggy version, especially in Ubuntu.  
I guess you wouldn’t ask if there wasn’t a problem, so maybe you want to  
elaborate?

Best regards,  
Marcus

On 08/14/2015 06:00 PM, David Halls wrote:

​Hi guys,

For a number of complicated reasons I would like to build GNU Radio with  
an older version of Boost. Specifically 1.49.

Thanks,

David

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web:  
www.toshiba.eu/research/trl[http://www.toshiba.eu/research/trl](http://www.toshiba.eu/research/trl)

* * *

This email has been scanned for email related threats and delivered  
safely by Mimecast.  
For more information please visit [http://www.mimecast.com](http://www.mimecast.com)

* * *

* * *

Discuss-gnuradio mailing list  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 17, 2015, 4:23pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/5 "2015-08-17T16:23:42Z")

</div>

Hi David,

I think we can all agree that the community starting to run at the  
mention of Matlab is not a good thing - I think there might be  
frustration behind this flight instinct, so let’s try to make this a  
success story.

I concur with the pretty detailed reply from mathworks; the reason is  
likely to be the binary/abi mismatch between the boost GNU Radio/your  
native runtime linker uses and the one that the Matlab library needs.

Now, you should be able to specify the boost that cmake uses when  
configuring the build process:  
cmake -DBOOST\_INCLUDEDIR=  
-DBOOST\_LIBRARY\_DIR= ..  
Also make sure to specify export LD\_LIBRARY\_DIR containing the same  
matlab library dir; otherwise, at runtime your system’s boost will get  
linked in, and that will still result in segfaults.

Maybe there is also the option to statically link the Matlab library  
before loading it from GNU Radio, instead of doing it the other way  
around (which is option 2). To me, that sounds more logically sound,  
since it’s Matlab that introduces library dependencies that are  
incompatible with your system libraries, because otherwise you might run  
into the same problem for other libraries that both Mathworks code and  
GNU Radio use and Mathworks ships their own version with. However, I  
don’t know if that would even be possible, as I don’t have Matlab around  
to test it.

All in all, I also like option 3 from Mathwork’s reply, though I don’t  
think the .mat method would work well for streaming like GNU Radio does;  
you should be able to just open a file (fopen) and read from it (fread)  
in a loop, so that you can get what a file source in GNU Radio writes to  
a FIFO; basically, as Matlab pseudocode:

infile = fopen(“/tmp/fifo\_in”);  
outfile = fopen(“/tmp/fifo\_out”, “w”);  
while 1  
datain = fread(infile, 1000, “float32”);  
dataout = do\_some\_processing(datain);  
fwrite(outfile, dataout, “float32”);  
end

you’d have to

mkfifo /tmp/fifo\_in /tmp/fifo\_out

first and then use file sink/source to write/read to/from these.

Of course, a socket- or IPC-based solution might be cleaner, but I don’t  
know much popular matlab tools that make it easy to write “real-world  
compatible” Matlab code (I think that lack of knowledge of high-quality  
well-known libraries might be what leads people to run away as soon as  
you mention Matlab).

Best regards,  
Marcus

Am 17. August 2015 12:27:25 MESZ, schrieb David Halls  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

```
Hi Marcus,

I am calling MATLAB compiled code from within GNURadio C++ blocks.
MATLAB compiled code uses a specific version of Boost, and they are
still using 1.49, even with their latest release. I get a the trace
below when I try to run the MATLAB code on newer
GNURadio/Ubuntu/Boost though it works fine on my old
(ancient) GNURadio/Ubuntu/Boost??? build where the Boost versions
match. (Also included is MathWorks take on it).

I was reticent to give all the details because previous MATLAB
questions have left the community running for the hills, saying I
should write everything directly in C++ etc, but there are lots of
reasons we can't do this, for now!

Thanks,

David

(python2:16446): IBUS-WARNING **: The owner of
/home/gnuradio/.config/ibus/bus is not root!
Using Volk machine: avx_64_mmx_orc
Attempting to initialise the MCR application...
Attempting to initialise the libdla application...

------------------------------------------------------------------------
       Segmentation violation detected at Tue Jun 23 15:25:36 2015
------------------------------------------------------------------------

Configuration:
  Crash Decoding : Disabled
  Default Encoding : UTF-8
  GNU C Library : 2.19 stable
  MATLAB Architecture: glnxa64
  MATLAB Root : /usr/local/MATLAB/MATLAB_Compiler_Runtime/v81
  MATLAB Version : 8.1.0.604 (R2013a)
  Operating System : Linux 3.13.0-32-generic #57-Ubuntu SMP Tue
Jul 15 03:51:08 UTC 2014 x86_64
  Processor ID : x86 Family 6 Model 60 Stepping 3, 

```

GenuineIntel

```
Fault Count: 1

Abnormal termination:
Segmentation violation

Register State (from fault):
  RAX = 00000000049dd7f0 RBX = 00000000049dd820
  RCX = 0000000000000002 RDX = 0000000000000000
  RSP = 00007fff0de311e0 RBP = 0000000000000001
  RSI = 0000000000000000 RDI = 0000000000000001

   R8 = 00000000049dd820 R9 = 0000000000000000
  R10 = 000000000000069c R11 = a3d70a3d70a3d70b
  R12 = 00000000ffffffff R13 = 00007fff0de31450
  R14 = 000000000494e448 R15 = 000000000494e2f8

  RIP = 00007f1ee264a414 EFL = 0000000000010202

   CS = 0033 FS = 0000 GS = 0000

Stack Trace (from fault):
[0] 0x00007f1ee264a414
 /lib/x86_64-linux-gnu/libpthread.so.0+00042004
pthread_mutex_lock+00000004
[1] 0x00007f1ede8b37fa
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0+00047098
_ZN5boost6thread9interruptEv+00000074
[2] 0x00007f1e9cec7b25
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00146213
[3] 0x00007f1e9ced7c76
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00212086
_ZN10dsLockFileD1Ev+00000038
[4] 0x00007f1e9cece93a
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00174394
_ZN5boost6detail17sp_counted_impl_pI10dsLockFileE7disposeEv+00000026
[5] 0x00007f1ebc46e379
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmat.so+00091001
_ZN5boost6detail12shared_countD1Ev+00000073
[6] 0x00007f1e9ced3d40
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00195904
_ZN24dsDirectoryExclusiveLock7releaseERKN5boost10posix_time13time_durationE+00000176
[7] 0x00007f1e9ced3d9f
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00195999
_ZN24dsDirectoryExclusiveLock7releaseEv+00000031
[8] 0x00007f1e9cecdf8c
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00171916
_ZN24dsDirectoryReadWriteLock8ReadLock4Impl7acquireERKN5boost10posix_time13time_durationEb+00001276
[9] 0x00007f1e9cece3e6
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwdservices.so+00173030
_ZN24dsDirectoryReadWriteLock8ReadLock7acquireEb+00000038
[10] 0x00007f1e8d45c602
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01230338
[11] 0x00007f1e8d3ee718
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00780056
[12] 0x00007f1e8d3ef2d6
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00783062
_ZN5boost6detail8function21function_obj_invoker0INS_3_bi6bind_tINS_10shared_ptrI21mclExtractedComponentEEPFS7_N6mclmcr12CtfExtractorEENS3_5list1INS3_5valueIS9_EEEEEES7_E6invokeERNS1_15function_bufferE+00000054
[13] 0x00007f1e8d42df95
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01040277
_Z30mclInitializeComponentInstanceRKN5boost8functionIFiPKcEEES6_NS_9function0INS_10shared_ptrI21mclExtractedComponentEEEE+00000389
[14] 0x00007f1e8d3f9c0d
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00826381
mclInitializeComponentInstanceEmbedded+00000573
[15] 0x00007f1ec645c763
/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64/libmwmclmcrrt.so.8.1+00124771
mclInitializeComponentInstanceEmbedded_proxy+00000067
[16] 0x00007f1ec5c2c1eb
/home/gnuradio/gnuradio_trlcode/gr-trl/lib/libdla.so+00008683
libdlaInitializeWithHandlers+00000107
[17] 0x00007f1ec5c2c22b
/home/gnuradio/gnuradio_trlcode/gr-trl/lib/libdla.so+00008747
libdlaInitialize+00000023
[18] 0x00007f1ec6c3393d
 /usr/local/lib/libgnuradio-trl.so+00493885
[19] 0x00007f1ec6c33e08
 /usr/local/lib/libgnuradio-trl.so+00495112
_ZN2gr3trl5dla_r4makeEiiibbfb+00000104
[20] 0x00007f1ec70bb740
/usr/local/lib/python2.7/dist-packages/trl/_trl_swig.so+02164544
[21] 0x000000000052c6d5
/usr/bin/python2+01230549 PyEval_EvalFrameEx+00001061
[22] 0x000000000055c594
/usr/bin/python2+01426836 PyEval_EvalCodeEx+00000676
[23] 0x000000000052ca8d
/usr/bin/python2+01231501 PyEval_EvalFrameEx+00002013
[24] 0x000000000056d0aa
/usr/bin/python2+01495210
[25] 0x00000000004d9854
/usr/bin/python2+00890964
[26] 0x00000000004d8379
/usr/bin/python2+00885625
[27] 0x00000000004f5d0b
/usr/bin/python2+01006859
[28] 0x000000000052cc20
/usr/bin/python2+01231904 PyEval_EvalFrameEx+00002416
[29] 0x000000000055c594
/usr/bin/python2+01426836 PyEval_EvalCodeEx+00000676
[30] 0x00000000005b7392
/usr/bin/python2+01799058 PyEval_EvalCode+00000050
[31] 0x0000000000469663
/usr/bin/python2+00431715
[32] 0x00000000004699e3
/usr/bin/python2+00432611 PyRun_FileExFlags+00000146
[33] 0x0000000000469f1c
/usr/bin/python2+00433948 PyRun_SimpleFileExFlags+00000750
[34] 0x000000000046ab81
/usr/bin/python2+00437121 Py_Main+00002910
[35] 0x00007f1ee229cec5
 /lib/x86_64-linux-gnu/libc.so.6+00138949 __libc_start_main+00000245
[36] 0x000000000057497e
/usr/bin/python2+01526142

If this problem is reproducible, please submit a Service Request 

```

via:  
[http://www.mathworks.com/support/contact\_us/](http://www.mathworks.com/support/contact_us/)

```
A technical support engineer might contact you with further 

```

information.

```
Thank you for your help.** This crash report has been saved to disk
as /home/gnuradio/matlab_crash_dump.16446-1 **

MATLAB is exiting because of fatal error

>>> Done???

"The stack trace strongly suggests that the crash is related to a
Boost library version conflict. MATLAB R2013a/MCR v8.1 includes and
depends on Boost 1.49 libraries. In the stack trace we see that in
practice your system's Boost 1.54 libraries are being accessed 

```

however.

```
These things may occur if you load a MATLAB Compiler Shared Library
into an application which is already making use of this system Boost
library.

There are no quick/easy workarounds for such issues other than:

1. Making sure that all components involved make use of the same
Boost library versions, or

2. Making sure that the components which require Boost statically
link against the Boost version which they prefer, or

3. Separating the different components which require Boost into
separate applications.

In further detail:

Option 1: It looks like you are making use of GNU Radio from Python,
I do believe that GNU Radio depends on Boost. You may be able to
(re)compile GNU Radio to make it use Boost 1.49 and where you even
specifically link it to the Boost libraries shipped with the MCR
(these can be found in the bin/glnxa64 directory).

Option 2: If GNU Radio specifically requires a different Boost
version you may be able to recompile it and statically link it
against this version.

Option 3: Instead of compiling your MATLAB Code into a Shared
Library, compile it into a standalone application which you can
launch from your Python process. This separate standalone should be
able to use its own Boost libraries without problems then. There are
Python libraries which can read and write MAT-files so you can
relatively efficiently pass in- and outputs from and to that
standalone application through MAT-files."

------------------------------------------------------------------------
*From:*
discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid
<discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid> on
behalf of Marcus M??ller <removed_email_address@domain.invalid>
*Sent:* 14 August 2015 17:59
*To:* removed_email_address@domain.invalid
*Subject:* Re: [Discuss-gnuradio] Building GNU Radio with previous
Boost version

Hi David,

boost > 1.35 should work, but 1.49 is, if I remember correctly, an
especially buggy version, especially in Ubuntu.
I guess you wouldn't ask if there wasn't a problem, so maybe you
want to elaborate?

Best regards,
Marcus

On 08/14/2015 06:00 PM, David Halls wrote:

```

> ```
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> removed_email_address@domain.invalid
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
> ```

```
------------------------------------------------------------------------

NOTE: The information in this email and any attachments may be
confidential and/or legally privileged. This message may be read,
copied and used only by the intended recipient. If you are not the
intended recipient, please destroy this message, delete any copies
held on your system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales
(2519556). Registered Office 208 Cambridge Science Park, Milton
Road, Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

------------------------------------------------------------------------
This email has been scanned for email related threats and delivered
safely by Mimecast.
For more information please visit http://www.mimecast.com
------------------------------------------------------------------------

```

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 17, 2015, 4:07pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/6 "2015-08-17T16:07:20Z")

</div>

??Thanks Nathan,

Marcus - would you agree?

I am not sure I totally understand what that entails, and I certainly am  
not clear how to go about doing it!! Does it mean that GNU Radio would  
use it’s “preferred” Boost via static linking leaving MATLAB to use a  
different version - how would this run differently to the current setup,  
and avoid conflict?

Thanks guys.

David

* * *

From: West, Nathan [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 17 August 2015 14:56  
To: David Halls  
Cc: Marcus Müller; removed\_email\_address@domain.invalid  
Subject: Re: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

On Mon, Aug 17, 2015 at 6:27 AM, David Halls  
\<removed\_email\_address@domain.invalid[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\>  
wrote:

There are no quick/easy workarounds for such issues other than:

1. Making sure that all components involved make use of the same Boost  
library versions, or

2. Making sure that the components which require Boost statically link  
against the Boost version which they prefer, or

3. Separating the different components which require Boost into separate  
applications.

In further detail:

Option 1: It looks like you are making use of GNU Radio from Python, I  
do believe that GNU Radio depends on Boost. You may be able to  
(re)compile GNU Radio to make it use Boost 1.49 and where you even  
specifically link it to the Boost libraries shipped with the MCR (these  
can be found in the bin/glnxa64 directory).

Option 2: If GNU Radio specifically requires a different Boost version  
you may be able to recompile it and statically link it against this  
version.

Option 3: Instead of compiling your MATLAB Code into a Shared Library,  
compile it into a standalone application which you can launch from your  
Python process. This separate standalone should be able to use its own  
Boost libraries without problems then. There are Python libraries which  
can read and write MAT-files so you can relatively efficiently pass in-  
and outputs from and to that standalone application through MAT-files."

This sounds like good advice. Option 2 sounds the most sane.

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [August 19, 2015, 6:50pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/7 "2015-08-19T18:50:20Z")

</div>

​Marcus, Nathan, All,

Thanks Marcus I have tried building GNU Radio with Boost 1.49 (that  
required by MATLAB)

I’ve made a little progress, but it’s slow going. I got the header files  
(not included with the MATLAB release) by downloading Boost 1.49, and  
building it and installing it to a home directory (not /usr/…).

cmake seems to run fine with

“cmake  
-DBOOST\_INCLUDEDIR=/home/gnuradio/gnuradio\_trlcode/boost\_1\_49/include  
-DBOOST\_LIBRARYDIR=/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64  
../”

(so I am pointing to my header files for the INCLUDEDIR, and MATLABs  
libraries for the LIBRARYDIR)

the output includes positive sounding things like  
​  
– Boost version: 1.49.0  
– Found the following Boost libraries:  
– filesystem  
– system  
– unit\_test\_framework  
– program\_options

and

– Configuring gnuradio-runtime support…  
– Dependency Boost\_FOUND = 1

​etc

but when I then try “make VERBOSE=1”, there seem to be problems linking  
volk as pasted below. Can anyone help? Thanks!

David

make VERBOSE=1  
/usr/bin/cmake -H/home/gnuradio/gnuradio\_build/gnuradio  
-B/home/gnuradio/gnuradio\_build/gnuradio/build --check-build-system  
CMakeFiles/Makefile.cmake 0  
/usr/bin/cmake -E cmake\_progress\_start  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles/progress.marks  
make -f CMakeFiles/Makefile2 all  
make[1]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/lib/CMakeFiles/volk.dir/build.make volk/lib/CMakeFiles/volk.dir/depend make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
cd /home/gnuradio/gnuradio\_build/gnuradio/build && /usr/bin/cmake -E  
cmake\_depends “Unix Makefiles” /home/gnuradio/gnuradio\_build/gnuradio  
/home/gnuradio/gnuradio\_build/gnuradio/volk/lib  
/home/gnuradio/gnuradio\_build/gnuradio/build  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/lib  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/lib/CMakeFiles/volk.dir/DependInfo.cmake  
–color=  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/lib/CMakeFiles/volk.dir/build.make volk/lib/CMakeFiles/volk.dir/build make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make[2]: Nothing to be done for `volk/lib/CMakeFiles/volk.dir/build'. make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
/usr/bin/cmake -E cmake\_progress\_report  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles 95 96 97 98 99  
[5%] Built target volk  
make -f volk/lib/CMakeFiles/test\_all.dir/build.make  
volk/lib/CMakeFiles/test\_all.dir/depend  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' cd /home/gnuradio/gnuradio_build/gnuradio/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/gnuradio/gnuradio_build/gnuradio /home/gnuradio/gnuradio_build/gnuradio/volk/lib /home/gnuradio/gnuradio_build/gnuradio/build /home/gnuradio/gnuradio_build/gnuradio/build/volk/lib /home/gnuradio/gnuradio_build/gnuradio/build/volk/lib/CMakeFiles/test_all.dir/DependInfo.cmake --color= make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make -f volk/lib/CMakeFiles/test\_all.dir/build.make  
volk/lib/CMakeFiles/test\_all.dir/build  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make[2]: Nothing to be done for `volk/lib/CMakeFiles/test\_all.dir/build’.  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' /usr/bin/cmake -E cmake_progress_report /home/gnuradio/gnuradio_build/gnuradio/build/CMakeFiles [5%] Built target test_all make -f volk/apps/CMakeFiles/volk-config-info.dir/build.make volk/apps/CMakeFiles/volk-config-info.dir/depend make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
cd /home/gnuradio/gnuradio\_build/gnuradio/build && /usr/bin/cmake -E  
cmake\_depends “Unix Makefiles” /home/gnuradio/gnuradio\_build/gnuradio  
/home/gnuradio/gnuradio\_build/gnuradio/volk/apps  
/home/gnuradio/gnuradio\_build/gnuradio/build  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/apps  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/apps/CMakeFiles/volk-config-info.dir/DependInfo.cmake  
–color=  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/apps/CMakeFiles/volk-config-info.dir/build.make volk/apps/CMakeFiles/volk-config-info.dir/build make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make[2]: Nothing to be done for  
`volk/apps/CMakeFiles/volk-config-info.dir/build'. make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
/usr/bin/cmake -E cmake\_progress\_report  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles  
[5%] Built target volk-config-info  
make -f volk/apps/CMakeFiles/volk\_profile.dir/build.make  
volk/apps/CMakeFiles/volk\_profile.dir/depend  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' cd /home/gnuradio/gnuradio_build/gnuradio/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/gnuradio/gnuradio_build/gnuradio /home/gnuradio/gnuradio_build/gnuradio/volk/apps /home/gnuradio/gnuradio_build/gnuradio/build /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps/CMakeFiles/volk_profile.dir/DependInfo.cmake --color= make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make -f volk/apps/CMakeFiles/volk\_profile.dir/build.make  
volk/apps/CMakeFiles/volk\_profile.dir/build  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' Linking CXX executable volk_profile cd /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps && /usr/bin/cmake -E cmake_link_script CMakeFiles/volk_profile.dir/link.txt --verbose=1 /usr/bin/c++ -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -O3 -DNDEBUG CMakeFiles/volk_profile.dir/volk_profile.cc.o CMakeFiles/volk_profile.dir/__/lib/qa_utils.cc.o -o volk_profile -rdynamic ../lib/libvolk.so.0.0.0 -lboost_filesystem -lboost_system -lboost_unit_test_framework -lboost_program_options -ldl -lorc-0.4 -Wl,-rpath,/home/gnuradio/gnuradio_build/gnuradio/build/volk/lib: CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `main’:  
volk\_profile.cc:(.text.startup+0x613b): undefined reference to  
`boost::filesystem3::path::wchar_t_codecvt_facet()' volk_profile.cc:(.text.startup+0x6193): undefined reference to `boost::filesystem3::path::parent\_path() const’  
volk\_profile.cc:(.text.startup+0x61a2): undefined reference to  
`boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)' volk_profile.cc:(.text.startup+0x65b1): undefined reference to `boost::filesystem3::path::parent\_path() const’  
volk\_profile.cc:(.text.startup+0x6613): undefined reference to  
`boost::filesystem3::path::parent_path() const' volk_profile.cc:(.text.startup+0x6622): undefined reference to `boost::filesystem3::detail::create\_directories(boost::filesystem3::path  
const&, boost::system::error\_code\*)’  
collect2: error: ld returned 1 exit status  
make[2]: \*\*\* [volk/apps/volk\_profile] Error 1  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make[1]: *** [volk/apps/CMakeFiles/volk_profile.dir/all] Error 2 make[1]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make: \*\*\* [all] Error 2

* * *

From: Marcus Müller [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 17 August 2015 15:22  
To: David Halls; [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: RE: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

Hi David,

I think we can all agree that the community starting to run at the  
mention of Matlab is not a good thing - I think there might be  
frustration behind this flight instinct, so let’s try to make this a  
success story.

I concur with the pretty detailed reply from mathworks; the reason is  
likely to be the binary/abi mismatch between the boost GNU Radio/your  
native runtime linker uses and the one that the Matlab library needs.

Now, you should be able to specify the boost that cmake uses when  
configuring the build process:  
cmake -DBOOST\_INCLUDEDIR=  
-DBOOST\_LIBRARY\_DIR= ..  
Also make sure to specify export LD\_LIBRARY\_DIR containing the same  
matlab library dir; otherwise, at runtime your system’s boost will get  
linked in, and that will still result in segfaults.

Maybe there is also the option to statically link the Matlab library  
before loading it from GNU Radio, instead of doing it the other way  
around (which is option 2). To me, that sounds more logically sound,  
since it’s Matlab that introduces library dependencies that are  
incompatible with your system libraries, because otherwise you might run  
into the same problem for other libraries that both Mathworks code and  
GNU Radio use and Mathworks ships their own version with. However, I  
don’t know if that would even be possible, as I don’t have Matlab around  
to test it.

All in all, I also like option 3 from Mathwork’s reply, though I don’t  
think the .mat method would work well for streaming like GNU Radio does;  
you should be able to just open a file (fopen) and read from it (fread)  
in a loop, so that you can get what a file source in GNU Radio writes to  
a FIFO; basically, as Matlab pseudocode:

infile = fopen(“/tmp/fifo\_in”);  
outfile = fopen(“/tmp/fifo\_out”, “w”);  
while 1  
datain = fread(infile, 1000, “float32”);  
dataout = do\_some\_processing(datain);  
fwrite(outfile, dataout, “float32”);  
end

you’d have to

mkfifo /tmp/fifo\_in /tmp/fifo\_out

first and then use file sink/source to write/read to/from these.

Of course, a socket- or IPC-based solution might be cleaner, but I don’t  
know much popular matlab tools that make it easy to write “real-world  
compatible” Matlab code (I think that lack of knowledge of high-quality  
well-known libraries might be what leads people to run away as soon as  
you mention Matlab).

Best regards,  
Marcus

Am 17. August 2015 12:27:25 MESZ, schrieb David Halls  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

Hi Marcus,

I am calling MATLAB compiled code from within GNURadio C++ blocks.  
MATLAB compiled code uses a specific version of Boost, and they are  
still using 1.49, even with their latest release. I get a the trace  
below when I try to run the MATLAB code on newer GNURadio/Ubuntu/Boost  
though it works fine on my old (ancient) GNURadio/Ubuntu/Boost​ build  
where the Boost versions match. (Also included is MathWorks take on it).

I was reticent to give all the details because previous MATLAB questions  
have left the community running for the hills, saying I should write  
everything directly in C++ etc, but there are lots of reasons we can’t  
do this, for now!

Thanks,

David

(python2:16446): IBUS-WARNING \*\*: The owner of  
/home/gnuradio/.config/ibus/bus is not root!  
Using Volk machine: avx\_64\_mmx\_orc  
Attempting to initialise the MCR application…  
Attempting to initialise the libdla application…

* * *

```
   Segmentation violation detected at Tue Jun 23 15:25:36 2015

```

* * *

Configuration:  
Crash Decoding : Disabled  
Default Encoding : UTF-8  
GNU C Library : 2.19 stable  
MATLAB Architecture: glnxa64  
MATLAB Root : /usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81  
MATLAB Version : 8.1.0.604 (R2013a)  
Operating System : Linux 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15  
03:51:08 UTC 2014 x86\_64  
Processor ID : x86 Family 6 Model 60 Stepping 3, GenuineIntel

Fault Count: 1

Abnormal termination:  
Segmentation violation

Register State (from fault):  
RAX = 00000000049dd7f0 RBX = 00000000049dd820  
RCX = 0000000000000002 RDX = 0000000000000000  
RSP = 00007fff0de311e0 RBP = 0000000000000001  
RSI = 0000000000000000 RDI = 0000000000000001

R8 = 00000000049dd820 R9 = 0000000000000000  
R10 = 000000000000069c R11 = a3d70a3d70a3d70b  
R12 = 00000000ffffffff R13 = 00007fff0de31450  
R14 = 000000000494e448 R15 = 000000000494e2f8

RIP = 00007f1ee264a414 EFL = 0000000000010202

CS = 0033 FS = 0000 GS = 0000

Stack Trace (from fault):  
[0] 0x00007f1ee264a414  
/lib/x86\_64-linux-gnu/libpthread.so.0+00042004  
pthread\_mutex\_lock+00000004  
[1] 0x00007f1ede8b37fa  
/usr/lib/x86\_64-linux-gnu/libboost\_thread.so.1.54.0+00047098  
\_ZN5boost6thread9interruptEv+00000074  
[2] 0x00007f1e9cec7b25  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00146213  
[3] 0x00007f1e9ced7c76  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00212086  
\_ZN10dsLockFileD1Ev+00000038  
[4] 0x00007f1e9cece93a  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00174394  
\_ZN5boost6detail17sp\_counted\_impl\_pI10dsLockFileE7disposeEv+00000026  
[5] 0x00007f1ebc46e379  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmat.so+00091001  
\_ZN5boost6detail12shared\_countD1Ev+00000073  
[6] 0x00007f1e9ced3d40  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195904  
\_ZN24dsDirectoryExclusiveLock7releaseERKN5boost10posix\_time13time\_durationE+00000176  
[7] 0x00007f1e9ced3d9f  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195999  
\_ZN24dsDirectoryExclusiveLock7releaseEv+00000031  
[8] 0x00007f1e9cecdf8c  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00171916  
\_ZN24dsDirectoryReadWriteLock8ReadLock4Impl7acquireERKN5boost10posix\_time13time\_durationEb+00001276  
[9] 0x00007f1e9cece3e6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00173030  
\_ZN24dsDirectoryReadWriteLock8ReadLock7acquireEb+00000038  
[10] 0x00007f1e8d45c602  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01230338  
[11] 0x00007f1e8d3ee718  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00780056  
[12] 0x00007f1e8d3ef2d6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00783062  
\_ZN5boost6detail8function21function\_obj\_invoker0INS\_3\_bi6bind\_tINS\_10shared\_ptrI21mclExtractedComponentEEPFS7\_N6mclmcr12CtfExtractorEENS3\_5list1INS3\_5valueIS9\_EEEEEES7\_E6invokeERNS1\_15function\_bufferE+00000054  
[13] 0x00007f1e8d42df95  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01040277  
\_Z30mclInitializeComponentInstanceRKN5boost8functionIFiPKcEEES6\_NS\_9function0INS\_10shared\_ptrI21mclExtractedComponentEEEE+00000389  
[14] 0x00007f1e8d3f9c0d  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00826381  
mclInitializeComponentInstanceEmbedded+00000573  
[15] 0x00007f1ec645c763  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/runtime/glnxa64/libmwmclmcrrt.so.8.1+00124771  
mclInitializeComponentInstanceEmbedded\_proxy+00000067  
[16] 0x00007f1ec5c2c1eb  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008683  
libdlaInitializeWithHandlers+00000107  
[17] 0x00007f1ec5c2c22b  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008747  
libdlaInitialize+00000023  
[18] 0x00007f1ec6c3393d  
/usr/local/lib/libgnuradio-trl.so+00493885  
[19] 0x00007f1ec6c33e08  
/usr/local/lib/libgnuradio-trl.so+00495112  
\_ZN2gr3trl5dla\_r4makeEiiibbfb+00000104  
[20] 0x00007f1ec70bb740  
/usr/local/lib/python2.7/dist-packages/trl/\_trl\_swig.so+02164544  
[21] 0x000000000052c6d5  
/usr/bin/python2+01230549 PyEval\_EvalFrameEx+00001061  
[22] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[23] 0x000000000052ca8d  
/usr/bin/python2+01231501 PyEval\_EvalFrameEx+00002013  
[24] 0x000000000056d0aa  
/usr/bin/python2+01495210  
[25] 0x00000000004d9854  
/usr/bin/python2+00890964  
[26] 0x00000000004d8379  
/usr/bin/python2+00885625  
[27] 0x00000000004f5d0b  
/usr/bin/python2+01006859  
[28] 0x000000000052cc20  
/usr/bin/python2+01231904 PyEval\_EvalFrameEx+00002416  
[29] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[30] 0x00000000005b7392  
/usr/bin/python2+01799058 PyEval\_EvalCode+00000050  
[31] 0x0000000000469663  
/usr/bin/python2+00431715  
[32] 0x00000000004699e3  
/usr/bin/python2+00432611 PyRun\_FileExFlags+00000146  
[33] 0x0000000000469f1c  
/usr/bin/python2+00433948 PyRun\_SimpleFileExFlags+00000750  
[34] 0x000000000046ab81  
/usr/bin/python2+00437121 Py\_Main+00002910  
[35] 0x00007f1ee229cec5  
/lib/x86\_64-linux-gnu/libc.so.6+00138949 \_\_libc\_start\_main+00000245  
[36] 0x000000000057497e  
/usr/bin/python2+01526142

If this problem is reproducible, please submit a Service Request via:  
[http://www.mathworks.com/support/contact\_us/](http://www.mathworks.com/support/contact_us/)

A technical support engineer might contact you with further information.

Thank you for your help.\*\* This crash report has been saved to disk as  
/home/gnuradio/matlab\_crash\_dump.16446-1 \*\*

MATLAB is exiting because of fatal error

> > > Done​

"The stack trace strongly suggests that the crash is related to a Boost  
library version conflict. MATLAB R2013a/MCR v8.1 includes and depends on  
Boost 1.49 libraries. In the stack trace we see that in practice your  
system’s Boost 1.54 libraries are being accessed however.

These things may occur if you load a MATLAB Compiler Shared Library into  
an application which is already making use of this system Boost library.

There are no quick/easy workarounds for such issues other than:

1. Making sure that all components involved make use of the same Boost  
library versions, or

2. Making sure that the components which require Boost statically link  
against the Boost version which they prefer, or

3. Separating the different components which require Boost into separate  
applications.

In further detail:

Option 1: It looks like you are making use of GNU Radio from Python, I  
do believe that GNU Radio depends on Boost. You may be able to  
(re)compile GNU Radio to make it use Boost 1.49 and where you even  
specifically link it to the Boost libraries shipped with the MCR (these  
can be found in the bin/glnxa64 directory).

Option 2: If GNU Radio specifically requires a different Boost version  
you may be able to recompile it and statically link it against this  
version.

Option 3: Instead of compiling your MATLAB Code into a Shared Library,  
compile it into a standalone application which you can launch from your  
Python process. This separate standalone should be able to use its own  
Boost libraries without problems then. There are Python libraries which  
can read and write MAT-files so you can relatively efficiently pass in-  
and outputs from and to that standalone application through MAT-files."

* * *

From:  
[discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)[mailto:discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)  
[discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)[mailto:discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)  
on behalf of Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 14 August 2015 17:59  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

Hi David,

boost \> 1.35 should work, but 1.49 is, if I remember correctly, an  
especially buggy version, especially in Ubuntu.  
I guess you wouldn’t ask if there wasn’t a problem, so maybe you want to  
elaborate?

Best regards,  
Marcus

On 08/14/2015 06:00 PM, David Halls wrote:

​Hi guys,

For a number of complicated reasons I would like to build GNU Radio with  
an older version of Boost. Specifically 1.49.

Thanks,

David

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web:  
www.toshiba.eu/research/trl[http://www.toshiba.eu/research/trl](http://www.toshiba.eu/research/trl)

* * *

This email has been scanned for email related threats and delivered  
safely by Mimecast.  
For more information please visit [http://www.mimecast.com](http://www.mimecast.com)

> **[Human Risk Management & Advanced Email Security](https://www.mimecast.com/)**
>
> Protect email and collaboration tools with Mimecast. Manage human risk and stay ahead of cyber threats with advanced security solutions.

* * *

* * *

Discuss-gnuradio mailing list  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web:  
www.toshiba.eu/research/trl[http://www.toshiba.eu/research/trl](http://www.toshiba.eu/research/trl)

* * *

This email has been scanned for email related threats and delivered  
safely by Mimecast.  
For more information please visit [http://www.mimecast.com](http://www.mimecast.com)

> **[Human Risk Management & Advanced Email Security](https://www.mimecast.com/)**
>
> Protect email and collaboration tools with Mimecast. Manage human risk and stay ahead of cyber threats with advanced security solutions.

* * *

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [September 1, 2015, 1:19pm UTC](https://www.ruby-forum.com/t/building-gnu-radio-with-previous-boost-version/243009/8 "2015-09-01T13:19:26Z")

</div>

​Dear All,

I have now had success building GNU Radio with previous Boost (1.49)  
version. Thanks for the help.

First you have to get boost 1.49 to build from source, download from

> **[Boost 1.49.0](https://www.boost.org/releases/1.49.0/)**
>
> Discover what's new in Boost 1.49.0

then some edits are required as per

this involves find and replace of TIME\_UTC with TIME\_UTC\_ in a number of  
files. Just do a find and replace in all of the source code, they are  
all shown in

[https://svn.boost.org/trac/boost/changeset/78802](https://svn.boost.org/trac/boost/changeset/78802)

then do the install to a local directory somewhere…

./boostrap.sh --prefix=PATH\_TO\_LOCAL\_DIRECTORY (i.e. not system folders,  
do not want to conflict with system boost)

./b2 install

then make GNU Radio with:

cmake -DBOOST\_INCLUDEDIR=/PATH\_TO\_LOCAL\_DIRECTORY/include  
-DBOOST\_LIBRARYDIR=/PATH\_TO\_LOCAL\_DIRECTORY​/lib ../

then make, install…

Finally at run-time one must point to the 1.49 libraries when launching  
GRC. I achieved this by adding the library path to /etc/ld.so.conf, but  
others may correct me and suggest a more suitable location for that  
change.

Thanks all for the help.

David

p.s. I will go on to create full documentation about how to call MATLAB  
shared libraries from GNU Radio, now the boost conflict has been  
resolved…

* * *

From: David Halls  
Sent: 19 August 2015 17:48  
To: Marcus Müller; [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: RE: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

​Marcus, Nathan, All,

Thanks Marcus I have tried building GNU Radio with Boost 1.49 (that  
required by MATLAB)

I’ve made a little progress, but it’s slow going. I got the header files  
(not included with the MATLAB release) by downloading Boost 1.49, and  
building it and installing it to a home directory (not /usr/…).

cmake seems to run fine with

“cmake  
-DBOOST\_INCLUDEDIR=/home/gnuradio/gnuradio\_trlcode/boost\_1\_49/include  
-DBOOST\_LIBRARYDIR=/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64  
../”

(so I am pointing to my header files for the INCLUDEDIR, and MATLABs  
libraries for the LIBRARYDIR)

the output includes positive sounding things like  
​  
– Boost version: 1.49.0  
– Found the following Boost libraries:  
– filesystem  
– system  
– unit\_test\_framework  
– program\_options

and

– Configuring gnuradio-runtime support…  
– Dependency Boost\_FOUND = 1

​etc

but when I then try “make VERBOSE=1”, there seem to be problems linking  
volk as pasted below. Can anyone help? Thanks!

David

make VERBOSE=1  
/usr/bin/cmake -H/home/gnuradio/gnuradio\_build/gnuradio  
-B/home/gnuradio/gnuradio\_build/gnuradio/build --check-build-system  
CMakeFiles/Makefile.cmake 0  
/usr/bin/cmake -E cmake\_progress\_start  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles/progress.marks  
make -f CMakeFiles/Makefile2 all  
make[1]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/lib/CMakeFiles/volk.dir/build.make volk/lib/CMakeFiles/volk.dir/depend make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
cd /home/gnuradio/gnuradio\_build/gnuradio/build && /usr/bin/cmake -E  
cmake\_depends “Unix Makefiles” /home/gnuradio/gnuradio\_build/gnuradio  
/home/gnuradio/gnuradio\_build/gnuradio/volk/lib  
/home/gnuradio/gnuradio\_build/gnuradio/build  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/lib  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/lib/CMakeFiles/volk.dir/DependInfo.cmake  
–color=  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/lib/CMakeFiles/volk.dir/build.make volk/lib/CMakeFiles/volk.dir/build make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make[2]: Nothing to be done for `volk/lib/CMakeFiles/volk.dir/build'. make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
/usr/bin/cmake -E cmake\_progress\_report  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles 95 96 97 98 99  
[5%] Built target volk  
make -f volk/lib/CMakeFiles/test\_all.dir/build.make  
volk/lib/CMakeFiles/test\_all.dir/depend  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' cd /home/gnuradio/gnuradio_build/gnuradio/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/gnuradio/gnuradio_build/gnuradio /home/gnuradio/gnuradio_build/gnuradio/volk/lib /home/gnuradio/gnuradio_build/gnuradio/build /home/gnuradio/gnuradio_build/gnuradio/build/volk/lib /home/gnuradio/gnuradio_build/gnuradio/build/volk/lib/CMakeFiles/test_all.dir/DependInfo.cmake --color= make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make -f volk/lib/CMakeFiles/test\_all.dir/build.make  
volk/lib/CMakeFiles/test\_all.dir/build  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make[2]: Nothing to be done for `volk/lib/CMakeFiles/test\_all.dir/build’.  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' /usr/bin/cmake -E cmake_progress_report /home/gnuradio/gnuradio_build/gnuradio/build/CMakeFiles [5%] Built target test_all make -f volk/apps/CMakeFiles/volk-config-info.dir/build.make volk/apps/CMakeFiles/volk-config-info.dir/depend make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
cd /home/gnuradio/gnuradio\_build/gnuradio/build && /usr/bin/cmake -E  
cmake\_depends “Unix Makefiles” /home/gnuradio/gnuradio\_build/gnuradio  
/home/gnuradio/gnuradio\_build/gnuradio/volk/apps  
/home/gnuradio/gnuradio\_build/gnuradio/build  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/apps  
/home/gnuradio/gnuradio\_build/gnuradio/build/volk/apps/CMakeFiles/volk-config-info.dir/DependInfo.cmake  
–color=  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make -f volk/apps/CMakeFiles/volk-config-info.dir/build.make volk/apps/CMakeFiles/volk-config-info.dir/build make[2]: Entering directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make[2]: Nothing to be done for  
`volk/apps/CMakeFiles/volk-config-info.dir/build'. make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
/usr/bin/cmake -E cmake\_progress\_report  
/home/gnuradio/gnuradio\_build/gnuradio/build/CMakeFiles  
[5%] Built target volk-config-info  
make -f volk/apps/CMakeFiles/volk\_profile.dir/build.make  
volk/apps/CMakeFiles/volk\_profile.dir/depend  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' cd /home/gnuradio/gnuradio_build/gnuradio/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/gnuradio/gnuradio_build/gnuradio /home/gnuradio/gnuradio_build/gnuradio/volk/apps /home/gnuradio/gnuradio_build/gnuradio/build /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps/CMakeFiles/volk_profile.dir/DependInfo.cmake --color= make[2]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make -f volk/apps/CMakeFiles/volk\_profile.dir/build.make  
volk/apps/CMakeFiles/volk\_profile.dir/build  
make[2]: Entering directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' Linking CXX executable volk_profile cd /home/gnuradio/gnuradio_build/gnuradio/build/volk/apps && /usr/bin/cmake -E cmake_link_script CMakeFiles/volk_profile.dir/link.txt --verbose=1 /usr/bin/c++ -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -O3 -DNDEBUG CMakeFiles/volk_profile.dir/volk_profile.cc.o CMakeFiles/volk_profile.dir/__/lib/qa_utils.cc.o -o volk_profile -rdynamic ../lib/libvolk.so.0.0.0 -lboost_filesystem -lboost_system -lboost_unit_test_framework -lboost_program_options -ldl -lorc-0.4 -Wl,-rpath,/home/gnuradio/gnuradio_build/gnuradio/build/volk/lib: CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `main’:  
volk\_profile.cc:(.text.startup+0x613b): undefined reference to  
`boost::filesystem3::path::wchar_t_codecvt_facet()' volk_profile.cc:(.text.startup+0x6193): undefined reference to `boost::filesystem3::path::parent\_path() const’  
volk\_profile.cc:(.text.startup+0x61a2): undefined reference to  
`boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)' volk_profile.cc:(.text.startup+0x65b1): undefined reference to `boost::filesystem3::path::parent\_path() const’  
volk\_profile.cc:(.text.startup+0x6613): undefined reference to  
`boost::filesystem3::path::parent_path() const' volk_profile.cc:(.text.startup+0x6622): undefined reference to `boost::filesystem3::detail::create\_directories(boost::filesystem3::path  
const&, boost::system::error\_code\*)’  
collect2: error: ld returned 1 exit status  
make[2]: \*\*\* [volk/apps/volk\_profile] Error 1  
make[2]: Leaving directory  
`/home/gnuradio/gnuradio_build/gnuradio/build' make[1]: *** [volk/apps/CMakeFiles/volk_profile.dir/all] Error 2 make[1]: Leaving directory `/home/gnuradio/gnuradio\_build/gnuradio/build’  
make: \*\*\* [all] Error 2

* * *

From: Marcus Müller [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 17 August 2015 15:22  
To: David Halls; [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: RE: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

Hi David,

I think we can all agree that the community starting to run at the  
mention of Matlab is not a good thing - I think there might be  
frustration behind this flight instinct, so let’s try to make this a  
success story.

I concur with the pretty detailed reply from mathworks; the reason is  
likely to be the binary/abi mismatch between the boost GNU Radio/your  
native runtime linker uses and the one that the Matlab library needs.

Now, you should be able to specify the boost that cmake uses when  
configuring the build process:  
cmake -DBOOST\_INCLUDEDIR=  
-DBOOST\_LIBRARY\_DIR= ..  
Also make sure to specify export LD\_LIBRARY\_DIR containing the same  
matlab library dir; otherwise, at runtime your system’s boost will get  
linked in, and that will still result in segfaults.

Maybe there is also the option to statically link the Matlab library  
before loading it from GNU Radio, instead of doing it the other way  
around (which is option 2). To me, that sounds more logically sound,  
since it’s Matlab that introduces library dependencies that are  
incompatible with your system libraries, because otherwise you might run  
into the same problem for other libraries that both Mathworks code and  
GNU Radio use and Mathworks ships their own version with. However, I  
don’t know if that would even be possible, as I don’t have Matlab around  
to test it.

All in all, I also like option 3 from Mathwork’s reply, though I don’t  
think the .mat method would work well for streaming like GNU Radio does;  
you should be able to just open a file (fopen) and read from it (fread)  
in a loop, so that you can get what a file source in GNU Radio writes to  
a FIFO; basically, as Matlab pseudocode:

infile = fopen(“/tmp/fifo\_in”);  
outfile = fopen(“/tmp/fifo\_out”, “w”);  
while 1  
datain = fread(infile, 1000, “float32”);  
dataout = do\_some\_processing(datain);  
fwrite(outfile, dataout, “float32”);  
end

you’d have to

mkfifo /tmp/fifo\_in /tmp/fifo\_out

first and then use file sink/source to write/read to/from these.

Of course, a socket- or IPC-based solution might be cleaner, but I don’t  
know much popular matlab tools that make it easy to write “real-world  
compatible” Matlab code (I think that lack of knowledge of high-quality  
well-known libraries might be what leads people to run away as soon as  
you mention Matlab).

Best regards,  
Marcus

Am 17. August 2015 12:27:25 MESZ, schrieb David Halls  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

Hi Marcus,

I am calling MATLAB compiled code from within GNURadio C++ blocks.  
MATLAB compiled code uses a specific version of Boost, and they are  
still using 1.49, even with their latest release. I get a the trace  
below when I try to run the MATLAB code on newer GNURadio/Ubuntu/Boost  
though it works fine on my old (ancient) GNURadio/Ubuntu/Boost​ build  
where the Boost versions match. (Also included is MathWorks take on it).

I was reticent to give all the details because previous MATLAB questions  
have left the community running for the hills, saying I should write  
everything directly in C++ etc, but there are lots of reasons we can’t  
do this, for now!

Thanks,

David

(python2:16446): IBUS-WARNING \*\*: The owner of  
/home/gnuradio/.config/ibus/bus is not root!  
Using Volk machine: avx\_64\_mmx\_orc  
Attempting to initialise the MCR application…  
Attempting to initialise the libdla application…

* * *

```
   Segmentation violation detected at Tue Jun 23 15:25:36 2015

```

* * *

Configuration:  
Crash Decoding : Disabled  
Default Encoding : UTF-8  
GNU C Library : 2.19 stable  
MATLAB Architecture: glnxa64  
MATLAB Root : /usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81  
MATLAB Version : 8.1.0.604 (R2013a)  
Operating System : Linux 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15  
03:51:08 UTC 2014 x86\_64  
Processor ID : x86 Family 6 Model 60 Stepping 3, GenuineIntel

Fault Count: 1

Abnormal termination:  
Segmentation violation

Register State (from fault):  
RAX = 00000000049dd7f0 RBX = 00000000049dd820  
RCX = 0000000000000002 RDX = 0000000000000000  
RSP = 00007fff0de311e0 RBP = 0000000000000001  
RSI = 0000000000000000 RDI = 0000000000000001

R8 = 00000000049dd820 R9 = 0000000000000000  
R10 = 000000000000069c R11 = a3d70a3d70a3d70b  
R12 = 00000000ffffffff R13 = 00007fff0de31450  
R14 = 000000000494e448 R15 = 000000000494e2f8

RIP = 00007f1ee264a414 EFL = 0000000000010202

CS = 0033 FS = 0000 GS = 0000

Stack Trace (from fault):  
[0] 0x00007f1ee264a414  
/lib/x86\_64-linux-gnu/libpthread.so.0+00042004  
pthread\_mutex\_lock+00000004  
[1] 0x00007f1ede8b37fa  
/usr/lib/x86\_64-linux-gnu/libboost\_thread.so.1.54.0+00047098  
\_ZN5boost6thread9interruptEv+00000074  
[2] 0x00007f1e9cec7b25  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00146213  
[3] 0x00007f1e9ced7c76  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00212086  
\_ZN10dsLockFileD1Ev+00000038  
[4] 0x00007f1e9cece93a  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00174394  
\_ZN5boost6detail17sp\_counted\_impl\_pI10dsLockFileE7disposeEv+00000026  
[5] 0x00007f1ebc46e379  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmat.so+00091001  
\_ZN5boost6detail12shared\_countD1Ev+00000073  
[6] 0x00007f1e9ced3d40  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195904  
\_ZN24dsDirectoryExclusiveLock7releaseERKN5boost10posix\_time13time\_durationE+00000176  
[7] 0x00007f1e9ced3d9f  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00195999  
\_ZN24dsDirectoryExclusiveLock7releaseEv+00000031  
[8] 0x00007f1e9cecdf8c  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00171916  
\_ZN24dsDirectoryReadWriteLock8ReadLock4Impl7acquireERKN5boost10posix\_time13time\_durationEb+00001276  
[9] 0x00007f1e9cece3e6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwdservices.so+00173030  
\_ZN24dsDirectoryReadWriteLock8ReadLock7acquireEb+00000038  
[10] 0x00007f1e8d45c602  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01230338  
[11] 0x00007f1e8d3ee718  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00780056  
[12] 0x00007f1e8d3ef2d6  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00783062  
\_ZN5boost6detail8function21function\_obj\_invoker0INS\_3\_bi6bind\_tINS\_10shared\_ptrI21mclExtractedComponentEEPFS7\_N6mclmcr12CtfExtractorEENS3\_5list1INS3\_5valueIS9\_EEEEEES7\_E6invokeERNS1\_15function\_bufferE+00000054  
[13] 0x00007f1e8d42df95  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+01040277  
\_Z30mclInitializeComponentInstanceRKN5boost8functionIFiPKcEEES6\_NS\_9function0INS\_10shared\_ptrI21mclExtractedComponentEEEE+00000389  
[14] 0x00007f1e8d3f9c0d  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/bin/glnxa64/libmwmclmcr.so+00826381  
mclInitializeComponentInstanceEmbedded+00000573  
[15] 0x00007f1ec645c763  
/usr/local/MATLAB/MATLAB\_Compiler\_Runtime/v81/runtime/glnxa64/libmwmclmcrrt.so.8.1+00124771  
mclInitializeComponentInstanceEmbedded\_proxy+00000067  
[16] 0x00007f1ec5c2c1eb  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008683  
libdlaInitializeWithHandlers+00000107  
[17] 0x00007f1ec5c2c22b  
/home/gnuradio/gnuradio\_trlcode/gr-trl/lib/libdla.so+00008747  
libdlaInitialize+00000023  
[18] 0x00007f1ec6c3393d  
/usr/local/lib/libgnuradio-trl.so+00493885  
[19] 0x00007f1ec6c33e08  
/usr/local/lib/libgnuradio-trl.so+00495112  
\_ZN2gr3trl5dla\_r4makeEiiibbfb+00000104  
[20] 0x00007f1ec70bb740  
/usr/local/lib/python2.7/dist-packages/trl/\_trl\_swig.so+02164544  
[21] 0x000000000052c6d5  
/usr/bin/python2+01230549 PyEval\_EvalFrameEx+00001061  
[22] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[23] 0x000000000052ca8d  
/usr/bin/python2+01231501 PyEval\_EvalFrameEx+00002013  
[24] 0x000000000056d0aa  
/usr/bin/python2+01495210  
[25] 0x00000000004d9854  
/usr/bin/python2+00890964  
[26] 0x00000000004d8379  
/usr/bin/python2+00885625  
[27] 0x00000000004f5d0b  
/usr/bin/python2+01006859  
[28] 0x000000000052cc20  
/usr/bin/python2+01231904 PyEval\_EvalFrameEx+00002416  
[29] 0x000000000055c594  
/usr/bin/python2+01426836 PyEval\_EvalCodeEx+00000676  
[30] 0x00000000005b7392  
/usr/bin/python2+01799058 PyEval\_EvalCode+00000050  
[31] 0x0000000000469663  
/usr/bin/python2+00431715  
[32] 0x00000000004699e3  
/usr/bin/python2+00432611 PyRun\_FileExFlags+00000146  
[33] 0x0000000000469f1c  
/usr/bin/python2+00433948 PyRun\_SimpleFileExFlags+00000750  
[34] 0x000000000046ab81  
/usr/bin/python2+00437121 Py\_Main+00002910  
[35] 0x00007f1ee229cec5  
/lib/x86\_64-linux-gnu/libc.so.6+00138949 \_\_libc\_start\_main+00000245  
[36] 0x000000000057497e  
/usr/bin/python2+01526142

If this problem is reproducible, please submit a Service Request via:  
[http://www.mathworks.com/support/contact\_us/](http://www.mathworks.com/support/contact_us/)

A technical support engineer might contact you with further information.

Thank you for your help.\*\* This crash report has been saved to disk as  
/home/gnuradio/matlab\_crash\_dump.16446-1 \*\*

MATLAB is exiting because of fatal error

> > > Done​

"The stack trace strongly suggests that the crash is related to a Boost  
library version conflict. MATLAB R2013a/MCR v8.1 includes and depends on  
Boost 1.49 libraries. In the stack trace we see that in practice your  
system’s Boost 1.54 libraries are being accessed however.

These things may occur if you load a MATLAB Compiler Shared Library into  
an application which is already making use of this system Boost library.

There are no quick/easy workarounds for such issues other than:

1. Making sure that all components involved make use of the same Boost  
library versions, or

2. Making sure that the components which require Boost statically link  
against the Boost version which they prefer, or

3. Separating the different components which require Boost into separate  
applications.

In further detail:

Option 1: It looks like you are making use of GNU Radio from Python, I  
do believe that GNU Radio depends on Boost. You may be able to  
(re)compile GNU Radio to make it use Boost 1.49 and where you even  
specifically link it to the Boost libraries shipped with the MCR (these  
can be found in the bin/glnxa64 directory).

Option 2: If GNU Radio specifically requires a different Boost version  
you may be able to recompile it and statically link it against this  
version.

Option 3: Instead of compiling your MATLAB Code into a Shared Library,  
compile it into a standalone application which you can launch from your  
Python process. This separate standalone should be able to use its own  
Boost libraries without problems then. There are Python libraries which  
can read and write MAT-files so you can relatively efficiently pass in-  
and outputs from and to that standalone application through MAT-files."

* * *

From:  
[discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)[mailto:discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)  
[discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)[mailto:discuss-gnuradio-bounces+david.halls=removed\_email\_address@domain.invalid](mailto:discuss-gnuradio-bounces+david.halls=removed_email_address@domain.invalid)  
on behalf of Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: 14 August 2015 17:59  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Re: [Discuss-gnuradio] Building GNU Radio with previous Boost  
version

Hi David,

boost \> 1.35 should work, but 1.49 is, if I remember correctly, an  
especially buggy version, especially in Ubuntu.  
I guess you wouldn’t ask if there wasn’t a problem, so maybe you want to  
elaborate?

Best regards,  
Marcus

On 08/14/2015 06:00 PM, David Halls wrote:

​Hi guys,

For a number of complicated reasons I would like to build GNU Radio with  
an older version of Boost. Specifically 1.49.

Thanks,

David

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web:  
www.toshiba.eu/research/trl[http://www.toshiba.eu/research/trl](http://www.toshiba.eu/research/trl)

* * *

This email has been scanned for email related threats and delivered  
safely by Mimecast.  
For more information please visit [http://www.mimecast.com](http://www.mimecast.com)

> **[Human Risk Management & Advanced Email Security](https://www.mimecast.com/)**
>
> Protect email and collaboration tools with Mimecast. Manage human risk and stay ahead of cyber threats with advanced security solutions.

* * *

* * *

Discuss-gnuradio mailing list  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web:  
www.toshiba.eu/research/trl[http://www.toshiba.eu/research/trl](http://www.toshiba.eu/research/trl)

* * *

This email has been scanned for email related threats and delivered  
safely by Mimecast.  
For more information please visit [http://www.mimecast.com](http://www.mimecast.com)

> **[Human Risk Management & Advanced Email Security](https://www.mimecast.com/)**
>
> Protect email and collaboration tools with Mimecast. Manage human risk and stay ahead of cyber threats with advanced security solutions.

* * *

* * *

NOTE: The information in this email and any attachments may be  
confidential and/or legally privileged. This message may be read, copied  
and used only by the intended recipient. If you are not the intended  
recipient, please destroy this message, delete any copies held on your  
system and notify the sender immediately.

Toshiba Research Europe Limited, registered in England and Wales  
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,  
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl
