arm package fails to pass doubles from python to C++
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-omniorb (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
The ARMv7 packaged version of python-omniorb fails to properly pass doubles from python client to C++ server. For some reason, rebuilding the package from source solves the issue so I'm unsure of how / where the problem originates.
Steps to reproduce on an Ubuntu14.04 machine:
1. Grab and sudo extract the arm root file system linaro-
2. Make sure you have the following installed on the host machine: qemu-user-static debootstrap binfmt-support
3. Copy the qemu-arm-static and resolv.conf into the rootfs
eg.
sudo cp /usr/bin/
sudo cp /etc/resolv.conf /my/rootfs/etc/
4. chroot into the arm rootfs:
eg.
sudo chroot /my/rootfs
5. install python-omniorb
6. Use Example 2 from here to create a simple C++ server except change the IDL to take in and echo a double: http://
7. Use Example 2 from here to create a simple python based client using the same IDL generated in step 6 above.
http://
I used the value 60000.12346, going from python -> python it works fine, going from c++ -> c++ fine, however going from python -> C++ I get Upcall -6.42765e+247 Floats also work fine and the problem only seems to exist with doubles. Upping the logging to 40 in omniORB.cfg, it looks as though the word order is swapped.
Even odder, if I sudo apt-get source python-omniorb and then rebuild the package using dpkg-buildpackage -rfakeroot -uc -b (Which I thought should produce an identical output) those packages work just fine.
Version info within change root:
lsb_release -rd
Description: Linaro 14.04
Release: 14.04
Version info of host system:
lsb_release -rd
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Version of python-omniorb from arm rootfs:
apt-cache policy python-omniorb
python-omniorb:
Installed: 3.6-1
Candidate: 3.6-1
Version table:
*** 3.6-1 0
500 http://
100 /var/lib/