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

Consider supporting snmalloc in Ubuntu 16.04 (GCC 5.4.0) #208

Closed
anakrish opened this issue Jun 4, 2020 · 3 comments
Closed

Consider supporting snmalloc in Ubuntu 16.04 (GCC 5.4.0) #208

anakrish opened this issue Jun 4, 2020 · 3 comments

Comments

@anakrish
Copy link
Contributor

anakrish commented Jun 4, 2020

snmalloc does not compile with the default GCC (5.4.0) on Ubuntu 16.04. This is due to the use of specific C++17 features like if constexpr.
As part of PR openenclave/openenclave@efd9311, I had to disable snmalloc build on Ubuntu 16.04 when the compiler is GCC.

Consider supporting default compilers of slightly older platforms like Ubuntu 16.04. That would make adopting snmalloc easier.

@mjp41
Copy link
Member

mjp41 commented Jun 5, 2020

Supporting a four year old compiler is not something we are resourced to do. As 18.04 LTS is out surely Open Enclave should be pushing for people to use that. Also all the security features around spectre mitigations, etc. are completely missing from GCC 5.4.0. There are clang packages for 16.04, so the snmalloc component could be built with clang, and linked in.

The core difficulty is not the if constexpr but the inline static fields. Prior to C++17 on GCC this required hideous template hacks to get the desired behaviour.

Is this actually a customer requirement for OE? We are happy to support an engineer in back-porting C++14, if someone else funds it.

@SchrodingerZhu
Copy link
Contributor

SchrodingerZhu commented Jun 17, 2020

@anakrish for older ubuntu release, there is a repo to get up-to-date toolchains: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test

Add this PPA should not polute the global names, for example gcc version 10 will end up with an executable called gcc-10.

@mjp41
Copy link
Member

mjp41 commented May 13, 2022

16.04 is no longer required for OE. Closing this.

@mjp41 mjp41 closed this as completed May 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants