Comments (16)
Update1:
There is no workaround for this. Either:
- We should get a prebuilt qhy SDK library which was compiled with the compiler flag -D_GLIBCXX_USE_CXX11_ABI=0
- Disable qhy for old pre-C++11 Dual ABI compilers
- Use an older qhy SDK version (built without the new c++11 Dual ABI) for old pre-C++11 compilers
- Forget old pre-C++11 Dual ABI compilers and disable this test in Travis.
from indi.
That is what I suspected. Additionally the problem is limited to ubuntu trusty (on most archs, couriously it seems to work on armhf https://code.launchpad.net/~jochym/+recipe/indi-qhy-daily ). The problem is it is the previous LTS ubuntu and the newest travis image. It would be nice to support it. Maybe we can keep the old sdk for the older systems ( @knro ? ). The main problem is the travis image - we can move to docker based test but it is a substantial additional work. Otherwise we need to disable the test on travis.
from indi.
Using D_GLIBCXX_USE_CXX11_ABI=0 would make libqhy link in all systems including trusty?
from indi.
@jochym It works for armhf because that prebuilt version was compiled with an old gcc (and old ABI):
GCC: (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) 4.8.3
@knro: No, looking in the prebuilt QHC SDK binaries:
x86_32, x86_64 and armv8 use new ABI.
armv6 uses old ABI.
The only choices:
- Disable qhy on trusty.
- Or drop the support for trusty.
- Or ask the qhy guys to build binaries with -D_GLIBCXX_USE_CXX11_ABI=0 and do some CMake magic for old gcc versions.
- Or do the hack and magic ourselves with using an older QHC SDK release for old gcc versions.
from indi.
I don't provide packages for trusty on my PPA, so looks like dropping support for trusty is the easiest path.
from indi.
I think we can draw the line at debian stable (raspian) or last centos (did not check) and last ubuntu LTS. The problem is testing it. I'll check all three tomorrow and get bask to you. As for travis we can just not test it there or move to docker image for testing.
from indi.
armv6 version will compile on Raspian Jessie. I tested it today.
from indi.
I have tested the compile on debian/stable and centos7. Both are failing. centos is not a great problem since we officially support only fedora. The debian/stable is more serious since this is the only choice for stable debian distro. We can of course say that on debian we only support 1.3.1 on stable and 1.4.1 on next stable (testing=stretch) but this is sub-optimal IMHO. I am also not so sure about raspian. I'll test my system tomorrow.
from indi.
@jochym Please share the details of the failing test environments. What compilers are available/used there? Maybe we can workaround some cases in CMake.
from indi.
The linking fails the same as on standard debian/jessie with the series of messages like this:
/home/tester/lib/libqhy.so: undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21
The environment is a fairly standard install of raspbian/jessie with following sources:
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi firmware
deb http://archive.raspberrypi.org/debian/ jessie main ui
The gcc version is 4.9.2. Any other info?
@knro Which version of debian/raspian have you used in your test ?
from indi.
Can you please try again now? the armv7.bin was being used in Jessie on RPI3. I removed the file so that armv6.bin is used in both cases which works OK. Please test.
from indi.
I will, shortly (today). Mine is RPi2 BTW.
from indi.
OK. I have tested it with my RPi2 system and QHY5 and it works now.
Maybe we can use older blobs (SDK) on debian/stable? What you think?
This would be a workable solution.
from indi.
I thought about it a bit and there seems to be no sane solution for the older (gcc4.x) distros. There is no way to link the gcc4 objects/libs with a single gcc5 library. The only way I have found (on debian/jessie) is to install gcc-6 from debian/testing and compile using it. For travis (ubuntu trusty) we can install gcc5 but it did not work at first attempt. I can fight it a little bit more later.
The question is: Is it worth the effort @knro , @kecsap ?
from indi.
armv6 can be linked fine on Jessie on RPI3. So I'll be closing this issue unless there is a reason to keep it open.
from indi.
Well - the only reason was to keep qhy working on debian stableon the pc. It will be working again when stretch gets released (should be fairly soon) - since this is a developer release anyway and people using debian jessie are unlikely to use dev version the only remaining problem is the travis-ci build.
from indi.
Related Issues (20)
- Cannot connect to flip-flat with virtual serial port unless 'Drop RTS' checks are bypassed as follows HOT 2
- ieaf-focus reversing direction doesn't work HOT 3
- Pegasus PPBA/M missing auto dew aggressiveness setting HOT 4
- "Fast Exposure" option undocumented and unclear HOT 5
- Sesto Senso 2 Bug on TimerHit breaking AF Overscan in Ekos Focus HOT 1
- Sesto Senso 2 Not reporting focuser position correctly
- indi-rpicam does not install HOT 1
- Change french translation for "Pier Side" HOT 1
- Build fails with LTO HOT 3
- SCT focuser interface compliance HOT 6
- Joystick support for SCT focuser HOT 2
- Bug in fli_pdf focuser driver not handling AF Overscan properly HOT 3
- JMI MotoFocus Plus connection error HOT 14
- Telescope properties are missing on version 2.0.6 HOT 1
- Takahashi Temma Driver Co-ordinates and Feedback Bug HOT 2
- Error when compiling sources from repo HOT 3
- USB_Dewpoint HOT 5
- Add Pulse Guiding to LX200 Classic Driver over Serial Port
- indilib.org off ?
- FITS header
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from indi.