GithubHelp home page GithubHelp logo

Comments (16)

kecsap avatar kecsap commented on July 3, 2024

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.

jochym avatar jochym commented on July 3, 2024

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.

knro avatar knro commented on July 3, 2024

Using D_GLIBCXX_USE_CXX11_ABI=0 would make libqhy link in all systems including trusty?

from indi.

kecsap avatar kecsap commented on July 3, 2024

@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:

  1. Disable qhy on trusty.
  2. Or drop the support for trusty.
  3. Or ask the qhy guys to build binaries with -D_GLIBCXX_USE_CXX11_ABI=0 and do some CMake magic for old gcc versions.
  4. Or do the hack and magic ourselves with using an older QHC SDK release for old gcc versions.

from indi.

knro avatar knro commented on July 3, 2024

I don't provide packages for trusty on my PPA, so looks like dropping support for trusty is the easiest path.

from indi.

jochym avatar jochym commented on July 3, 2024

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.

knro avatar knro commented on July 3, 2024

armv6 version will compile on Raspian Jessie. I tested it today.

from indi.

jochym avatar jochym commented on July 3, 2024

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.

kecsap avatar kecsap commented on July 3, 2024

@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.

jochym avatar jochym commented on July 3, 2024

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.

knro avatar knro commented on July 3, 2024

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.

jochym avatar jochym commented on July 3, 2024

I will, shortly (today). Mine is RPi2 BTW.

from indi.

jochym avatar jochym commented on July 3, 2024

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.

jochym avatar jochym commented on July 3, 2024

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.

knro avatar knro commented on July 3, 2024

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.

jochym avatar jochym commented on July 3, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.