Python on armv7l router: C++ exceptions issue

2015-01-28 Thread Alex Potapenko
I run Python on an arm-brcm-linux-uclibcgnueabi router. Python was 
cross-compiled using hndtools-arm-linux-2.6.36-uclibc-4.5.3 toolchain. While 
trying to use deluge, I realised that there's something wrong with handling C++ 
exceptions in C++ extension modules: they're not being caught at all. I tested 
whether C++ exception handling works on my system in general, and concluded it 
does work fine. I then wrote a simple C++ extension module with a try-catch 
block in the init function, that has a "throw 1" in the try section and a 
"catch (...)" section (see module.cpp), and I got "terminate called after 
throwing an instance of 'int'" when trying to load the module. Tested this with 
Python 2.7.9 and 3.4.2, however I had similar issues with other versions, such 
as 2.7.3 and 2.6.9.
Does anyone happen to know what I can try here? Any help is greatly appreciated!


Thanks in advance,
Alex

module.cpp
Description: Binary data
-- 
https://mail.python.org/mailman/listinfo/python-list


Отв: Python on armv7l router: C++ exceptions issue

2015-01-29 Thread Alex Potapenko
Found a solution myself. It looks like you have to explicitly link python with 
libgcc_s during build time to solve this problem. This looks like a uClibc bug
Regards,Alex 

 среда, 28 января 2015 19:44 Alex Potapenko  
писал(а):
   

 I run Python on an arm-brcm-linux-uclibcgnueabi router. Python was 
cross-compiled using hndtools-arm-linux-2.6.36-uclibc-4.5.3 toolchain. While 
trying to use deluge, I realised that there's something wrong with handling C++ 
exceptions in C++ extension modules: they're not being caught at all. I tested 
whether C++ exception handling works on my system in general, and concluded it 
does work fine. I then wrote a simple C++ extension module with a try-catch 
block in the init function, that has a "throw 1" in the try section and a 
"catch (...)" section (see module.cpp), and I got "terminate called after 
throwing an instance of 'int'" when trying to load the module. Tested this with 
Python 2.7.9 and 3.4.2, however I had similar issues with other versions, such 
as 2.7.3 and 2.6.9.
Does anyone happen to know what I can try here? Any help is greatly appreciated!


Thanks in advance,
Alex

   -- 
https://mail.python.org/mailman/listinfo/python-list