Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: bump GCC requirement to 4.8 #11732

Closed
laanwj opened this issue Nov 20, 2017 · 8 comments

Comments

@laanwj
Copy link
Member

commented Nov 20, 2017

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?

@laanwj laanwj added the Build system label Nov 20, 2017

@laanwj laanwj changed the title Bump GCC requirement to 4.8 RFC: bump GCC requirement to 4.8 Nov 20, 2017

@fanquake

This comment has been minimized.

Copy link
Member

commented Nov 21, 2017

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.

@luke-jr

This comment has been minimized.

Copy link
Member

commented Nov 21, 2017

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

@MarcoFalke

This comment has been minimized.

Copy link
Member

commented Nov 21, 2017

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.

@MarcoFalke MarcoFalke added this to the 0.16.0 milestone Nov 21, 2017

@sipa

This comment has been minimized.

Copy link
Member

commented Nov 21, 2017

ACK on upping the requirement to GCC 4.8.

@meshcollider

This comment has been minimized.

Copy link
Member

commented Nov 21, 2017

ACK on the bump too

@MarcoFalke

This comment has been minimized.

Copy link
Member

commented Nov 22, 2017

Anything left to do here? Can someone declare that it was bumped and close this issue?

@fanquake

This comment has been minimized.

Copy link
Member

commented Nov 22, 2017

@MarcoFalke We should at least make it explicit in the docs. I'll open a PR.

@laanwj

This comment has been minimized.

Copy link
Member Author

commented Nov 23, 2017

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)

laanwj added a commit that referenced this issue Nov 23, 2017

Merge #11755: [Docs] Bump minimum required version of GCC to 4.8
fae98f6 [Docs] Bump minimum required version of GCC to 4.8 (fanquake)

Pull request description:

  Make it explicit that the minimum required version of GCC is 4.8. Discussion in #11732.

Tree-SHA512: 85ade5a4a63ea1cb6b5e20756bc96f25518c394e00a8d3ed5b9c2927b55ea3155645ca74bb1c7e7eda69d7e42d440a42bde839f281e57fc3e20390b2a19885d6

@laanwj laanwj closed this Nov 23, 2017

@bitcoin bitcoin deleted a comment from Arezohayeman Mar 26, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.