← All tasks
cppaeron-io/aeron #567Not a task: not reproduced

Build fails for VS 2017 15.8

envgap__aeron-io__aeron-567

01 / FAILURE SIGNATURE

As reported upstream

**Error:**
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
4b84ff7d449720fccf634eef7e1fc0c01e80af22
Manifest
CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

aeron-io/aeron #567 · read the original issue
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](https://ci.appveyor.com/project/helmesjo/conan-aeron/build/job/stpmn3ny1nscni2a#L461).



**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](https://blogs.msdn.microsoft.com/vcblog/2018/09/18/stl-features-and-fixes-in-vs-2017-15-8/)**:

```

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.

```
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]