8000 Build fails for VS 2017 15.8 · Issue #567 · aeron-io/aeron · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Build fails for VS 2017 15.8 #567
Closed
@helmesjo

Description

@helmesjo

Just tried to build v1.11.1.

Basically, either _ENABLE_EXTENDED_ALIGNED_STORAGE or _DISABLE_EXTENDED_ALIGNED_STORAGE must (apparently) be defined.
See failing build here.

Error:

c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.15.26726\include\type_traits(1271): 
error C2338: You've instantiated std::aligned_storage<Len, Align> with an extended alignment (in other words, Align > alignof(max_align_t)). 
Before VS 2017 15.8, the member type would non-conformingly have an alignment of only alignof(max_align_t). 
VS 2017 15.8 was fixed to handle this correctly, but the fix inherently changes layout and breaks binary compatibility (*only* for uses of aligned_storage with extended alignments). 
Please define either (1) _ENABLE_EXTENDED_ALIGNED_STORAGE to acknowledge that you understand this message and that you actually want a type with an extended alignment, 
or (2) _DISABLE_EXTENDED_ALIGNED_STORAGE to silence this message and get the old non-conformant behavior. 
(compiling source file C:\Users\appveyor\.conan\data\aeron\1.11.1\helmesjo\stable\build\a7a6633935b73a476db9d5ac9aade5d58663ba47\source_subfolder\aeron-client\src\main\cpp\Aeron.cpp) [C:\Users\appveyor\.c

VS patch notes regarding this:

Fixed a long-standing bug that caused aligned_storage to treat requests for alignment greater than 
alignof(max_align_t) as requests for alignment equal to alignof(max_align_t). We can’t enable this fix 
unconditionally without breaking ABI since doing so changes layout of types with members whose type 
is a highly-aligned specialization of aligned_storage. As an interim solution until a future ABI-breaking 
release, compilation of programs that use highly-aligned aligned_storage produces a compile error 
explaining this issue and asking the user to define either _ENABLE_EXTENDED_ALIGNED_STORAGE to 
request the conforming-but-potentially-ABI-breaking behavior, or 
_DISABLE_EXTENDED_ALIGNED_STORAGE to request the previous incorrect-but-ABI-safe behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0