Announcement

Collapse
No announcement yet.

GCC 5 Is Causing Headaches For Ubuntu Touch Developers

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GCC 5 Is Causing Headaches For Ubuntu Touch Developers

    Phoronix: GCC 5 Is Causing Headaches For Ubuntu Touch Developers

    Last week Ubuntu 15.10 transitioned over to GCC 5 and switching over to this major compiler update plus the associated libstdc++6 ABI changes is causing headaches for some developers...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    And the problem with GCC5 is?

    Comment


    • #3
      Originally posted by mark45 View Post
      And the problem with GCC5 is?
      The problem is from what I understand is that the ABI changes are breaking binaries that are already built. Causing the whole system to need to be rebuilt. ABI (Abstract Binary Interface) is how libraries are used and when the standard library brakes ABI applications can no longer use the libraries they are linked to. GCC/glibc is very well known for doing such things and causes issues everywhere. Which is why we have distro versions to begin with. gcc/glibc cannot be bothered to maintain compatibility so Ubuntu 15.04 binaries may not work on Ubuntu 14.04.

      Comment


      • #4
        Originally posted by tebruno99 View Post
        gcc/glibc cannot be bothered to maintain compatibility so Ubuntu 15.04 binaries may not work on Ubuntu 14.04.
        I mean... they bumped major version numbers. It's within their right (and should be expected) to break ABI compatability. If the devs didn't see this beforehand and refused to test against the pre-release versions of GCC5, it's their fault.

        Comment


        • #5
          The version number of gcc was bumped, not the version of libstdc++.

          Every program not build with GCC5 that depands libstdc++ wont work if libstdc++ was build with the new ABI as default.
          (There is a compatibility switch that was introduced in gcc5)
          Last edited by ObiWan; 06 August 2015, 02:19 PM.

          Comment


          • #6
            Originally posted by ObiWan View Post
            The version number of gcc was bumped, not the version of libstdc++.

            Every program not build with GCC5 that depands libstdc++ wont work if libstdc++ was build with the new ABI as default.
            (There is a compatibility switch that was introduced in gcc5)
            Fedora already covered this. Nice to see Ubuntu being blindsided by it. GCC5 in Fedora 22 with the old ABI. Mass rebuild, with ample warning and notice, during the Fedora 23 cycle.

            See attached link.
            Fedora 22 will ship with GCC 5, which brings a whole host of?enhancements, among which is a new default C++ ABI. In this article, we'll cover?how that ABI transition will work in Fedora. Background...

            Comment


            • #7
              There's nothing wrong with GCC5. The hassle is because Ubuntu Touch is based on the released Ubuntu 15.04 archive, with ongoing development being done by copying binaries from the Ubuntu "Wily Werewolf" development archive -- something known as the "Vivid+overlay" approach. With the switch to the new libstdc++ ABI in the Wily Werewolf archives, many binary copies no longer work and developers are forced to branch their sources and build separately for Ubuntu Touch (with the Vivid ABI) and Ubuntu Personal (with the Wily ABI).

              With any major ABI transition, package promotions can become blocked as dependency wrinkles get ironed out. This is a normal part of preparing for a new operating system release, it was anticipated and planned for and is going as expected. Really, this is how it gets done folks, and the end result is a smooth upgrade path for users, including over-the-air upgrades for your Ubuntu phone.

              Comment


              • #8
                Originally posted by tebruno99 View Post

                The problem is from what I understand is that the ABI changes are breaking binaries that are already built. Causing the whole system to need to be rebuilt. ABI (Abstract Binary Interface) is how libraries are used and when the standard library brakes ABI applications can no longer use the libraries they are linked to. GCC/glibc is very well known for doing such things and causes issues everywhere. Which is why we have distro versions to begin with. gcc/glibc cannot be bothered to maintain compatibility so Ubuntu 15.04 binaries may not work on Ubuntu 14.04.
                First, ABI stands for Application Binary Interface. Second, the last time, gcc broke compatibility was the switch to gcc-4. This was in 2007. About glibc I'm not aware that compatibility was broken at all. If you know more, I'm happy to read about. If not, it's just FUD you're spreading.

                Comment


                • #9
                  In my daily landing e-mail I might have used slightly wrong wording, as the issues that the Ubuntu Touch developers were seeing are normal during any big transition like this. With most of the touch-oriented developers busy with features and bug-fixes targeted for our stable images (based on vivid), not too many had the time and courtesy to test if the gcc-5 rebuilds that happened didn't cause any user-visible regressions on phones. So after the gcc-5 uploads happened, some additional fixes to make the devel systems working again were required. Surely me using the 'crisis' word was a bad thing to do as it was not anything out-of-the-ordinary. Sure, maybe if developers checked the touch stack earlier and made sure everything is alright with it, but well... everyone's resources are limited. The Ubuntu Foundations team did their best to make sure everything went smoothly. In my e-mail I simply wanted to inform that there's still much work to do to get the devel-proposed images back up-to-shape.

                  The only issue that makes gcc-5 problematic for Ubuntu Touch - and I want to emphasis that it's only a problem for our touch (phone) flavour, not the standard Ubuntu - is what bregma already explained above. gcc-5 is not an issue for Ubuntu in overall, it's only problematic for touch - and that's only because of the specific release model and tools that are being used there. The daily landing team e-mails are phone-oriented e-mails and this needs to be remembered. For touch the general approach is to 'dual-land' every change to both the devel and stable branches simultaneously by using one branch and basically one packaging. With gcc-5 in wily this no longer is possible for many projects, resulting in additional work for developers and landers. This indeed caused some headaches here and there, especially with the next official phone OTA around the corner.

                  But as already said: things like these happen during big transitions.

                  Comment

                  Working...
                  X