Skip to content

GCC 4.8 vs C11 _Atomic and threaded IO #7509

@oranagra

Description

@oranagra

Since the introduction of threaded IO, we moved to C11 and _Atomic, but apparently that feature of C11 is only supported from GCC 4.9 and upwards.
So since CentOS 7 and Ubuntu 14.04 use GCC 4.8 (which does support C11, but not _Atomic), redis 6.0 does not compile on these by default.
These OSses, are still widely used, and since the threaded IO is disabled by default, maybe we want to reconsider.
Besides, maybe we want redis (even the latest) to keep being very portable and keep supporting old and/or primitive platforms and compilers (for instance CentOS 6.0 or some embedded systems who don't have any support for C11)?

Options:

  1. Make threaded IO and _Atomic an optional feature that needs to be enabled at compile time
  2. Mess up the code in a way that will use other synchronization mechanism when _Atomic is missing.
  3. Keep the current code and have redis 6.0 unsupported on these (and other) platforms.

I'd like to get feedback and maybe other alternatives.
Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions