RFC: bump GCC requirement to 4.8 #11732

issue laanwj openend this issue on November 20, 2017
  1. laanwj commented at 9:12 am on November 20, 2017: member

    Inspired by discussion here: #11722 (comment) . This would allow using more C++11 features such as thread local data (https://gcc.gnu.org/gcc-4.7/cxx0x_status.html versus https://gcc.gnu.org/gcc-4.8/cxx0x_status.html). FWIW gcc 4.7.0 was released in March 22, 2012, last bugfix release was 4.7.4 in June 12, 2014.

    Also FWIW I tried to build bitcoin on g++ 4.7 a while ago and it was a pain; for example the AX_CXX_COMPILE_STDCXX fails because the __cplusplus macro is not set correctly, and that’s only the beginning. As it’s already effectively broken and no one else seems to even notice it, I wouldn’t mind bumping the requirement to g++ 4.8 wholesale. But I’m not sure that discussion belongs here.

    Is anyone successfully building on g++ 4.7? @theuni what’s your opinion?

  2. laanwj added the label Build system on Nov 20, 2017
  3. laanwj renamed this:
    Bump GCC requirement to 4.8
    RFC: bump GCC requirement to 4.8
    on Nov 20, 2017
  4. fanquake commented at 2:10 am on November 21, 2017: member

    Release

    GCC 4.8 was released March 22 2013, with it’s most recent bug-fix release (4.8.5) on June 23 2015. The GCC 4.8.x branch is no longer maintained. More info here: https://gcc.gnu.org/gcc-4.8/

    C++11 Support

    Status of C++11 support in GCC 4.8: https://gcc.gnu.org/gcc-4.8/cxx0x_status.html. GCC 4.8.1 was the first feature-complete implementation of the 2011 C++ standard, previously known as C++0x.

    From what I can find the last time we committed a fix specifically for GCC 4.7 was in #1126. The last fix committed specifically for GCC 4.8 was in #3895. There have been various “fixes” for wShadow warnings etc tested against GCC 4.8.x versions since then.

    One of the downsides listed for “Consider building with -flto” in #10616 is “Before GCC 4.8: double size object files”. A bump to GCC 4.8 would remove that issue.

  5. luke-jr commented at 2:28 am on November 21, 2017: member
    • Debian: 6.3.0 (stable)
    • Fedora: 7.2.1
    • Gentoo: 5.4.0 (stable)
    • RedHat/CentOS: 4.8.5
    • Ubuntu: 4.8.2 (trusty)

    So looks good to me.

  6. MarcoFalke commented at 12:18 pm on November 21, 2017: member
    Since apparently no one uses gcc4.7 in daily (or regular) builds, I don’t see a way how we could support that version. Even if we managed to get master compile with gcc4.7, it would likely end up breaking shortly after.
  7. MarcoFalke added this to the milestone 0.16.0 on Nov 21, 2017
  8. sipa commented at 7:22 pm on November 21, 2017: member
    ACK on upping the requirement to GCC 4.8.
  9. meshcollider commented at 11:14 pm on November 21, 2017: contributor
    ACK on the bump too
  10. MarcoFalke commented at 8:16 pm on November 22, 2017: member
    Anything left to do here? Can someone declare that it was bumped and close this issue?
  11. fanquake commented at 11:53 pm on November 22, 2017: member
    @MarcoFalke We should at least make it explicit in the docs. I’ll open a PR.
  12. laanwj commented at 7:28 am on November 23, 2017: member
    Also the build system needs to give a clear error message if the compiler version is known not supported. Currently it fails non-intuitively on AX_CXX_COMPILE_STDCXX w/ 4.7. (bleh, that seems to be more difficult that you’d expect)
  13. laanwj referenced this in commit 84fa64598e on Nov 23, 2017
  14. laanwj closed this on Nov 23, 2017

  15. fanquake deleted a comment on Mar 26, 2018
  16. MarcoFalke locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-19 03:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me