Bug 189078 - [JSC] Build broken after r234975 on s390x, ppc64le, armv7hl
Summary: [JSC] Build broken after r234975 on s390x, ppc64le, armv7hl
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tomas Popela
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-08-29 06:23 PDT by Tomas Popela
Modified: 2018-09-06 09:42 PDT (History)
8 users (show)

See Also:


Attachments
Patch (1.40 KB, patch)
2018-08-29 23:20 PDT, Tomas Popela
mark.lam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tomas Popela 2018-08-29 06:23:20 PDT
After r234975 the build fails on s390x, ppc64le, armv7hl with:

[ 48%] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp.o
cd /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/Source/JavaScriptCore && /usr/bin/c++  -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/ForwardingHeaders -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/API -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/assembler -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/b3 -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/b3/air -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bindings -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/builtins -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bytecode -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bytecompiler -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/dfg -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler/ARM64 -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler/udis86 -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/domjit -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/ftl -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/debugger -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/agents -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/augmentable -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/remote -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/interpreter -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/jit -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/llint -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/parser -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/profiler -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/runtime -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/tools -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/wasm -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/wasm/js -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/yarr -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/inspector -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/runtime -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/yarr -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/ForwardingHeaders/JavaScriptCore/glib -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/javascriptcoregtk/jsc -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/API/glib -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/javascriptcoregtk -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/remote/glib -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/bmalloc -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/ThirdParty -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include  -Wno-expansion-to-defined -Wno-noexcept-type -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wextra -Wall -O2 -g1 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='"Fedora"' -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -DNDEBUG -fPIC   -ffp-contract=off -o CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp.o -c /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp
In file included from /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/MachineStackMarker.h:24,
                 from /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/MachineStackMarker.cpp:23,
                 from /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp:7:
/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/MachineStackMarker.cpp: In function 'int JSC::callWithCurrentThreadState(const WTF::ScopedLambda<void(JSC::CurrentThreadState&)>&)':
/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/MachineStackMarker.cpp:224:46: error: requested alignment is not an integer constant
     DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE(state);
                                              ^~~~~
/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/RegisterState.h:169:77: note: in definition of macro 'ALLOCATE_AND_GET_REGISTER_STATE'
     alignas(std::max(alignof(void*), alignof(RegisterState))) RegisterState registers; \
                                                                             ^~~~~~~~~
/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/MachineStackMarker.cpp:224:5: note: in expansion of macro 'DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE'
     DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE(state);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I temporarily reverted the commit and the build passes.
Comment 1 Yusuke Suzuki 2018-08-29 08:25:26 PDT
(In reply to Tomas Popela from comment #0)
> After r234975 the build fails on s390x, ppc64le, armv7hl with:
> 
> [ 48%] Building CXX object
> Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/
> JavaScriptCore/unified-sources/UnifiedSource68.cpp.o
> cd
> /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/Source/
> JavaScriptCore && /usr/bin/c++  -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore
> -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\"
> -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED
> -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF
> -DWEBKITGTK_API_VERSION_STRING=\"4.0\"
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/ForwardingHeaders
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/API
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/assembler
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/b3
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/b3/air
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bindings
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/builtins
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bytecode
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/bytecompiler
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/dfg
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler/
> ARM64
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/disassembler/
> udis86
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/domjit
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/ftl
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/debugger
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/
> agents
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/
> augmentable
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/
> remote
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/interpreter
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/jit
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/llint
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/parser
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/profiler
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/runtime
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/tools
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/wasm
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/wasm/js
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/yarr
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/inspector
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/runtime
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/yarr
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/ForwardingHeaders/JavaScriptCore/glib
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/javascriptcoregtk/jsc
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/API/glib
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/javascriptcoregtk
> -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/inspector/
> remote/glib -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/bmalloc
> -I/builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources -I/builddir/build/BUILD/webkitgtk-2.21.92/Source/ThirdParty
> -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include 
> -Wno-expansion-to-defined -Wno-noexcept-type -Wno-maybe-uninitialized
> -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute
> -Wformat-security -Wcast-align -Wextra -Wall -O2 -g1 -pipe -Wall
> -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
> -fexceptions -fstack-protector-strong -grecord-gcc-switches
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=armv7-a -mfpu=vfpv3-d16
> -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard
> -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='"Fedora"' -fno-strict-aliasing
> -fno-exceptions -fno-rtti -std=c++14 -DNDEBUG -fPIC   -ffp-contract=off -o
> CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-
> sources/UnifiedSource68.cpp.o -c
> /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp
> In file included from
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> MachineStackMarker.h:24,
>                  from
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> MachineStackMarker.cpp:23,
>                  from
> /builddir/build/BUILD/webkitgtk-2.21.92/armv7hl-redhat-linux-gnueabi/
> DerivedSources/JavaScriptCore/unified-sources/UnifiedSource68.cpp:7:
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> MachineStackMarker.cpp: In function 'int
> JSC::callWithCurrentThreadState(const
> WTF::ScopedLambda<void(JSC::CurrentThreadState&)>&)':
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> MachineStackMarker.cpp:224:46: error: requested alignment is not an integer
> constant
>      DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE(state);
>                                               ^~~~~
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> RegisterState.h:169:77: note: in definition of macro
> 'ALLOCATE_AND_GET_REGISTER_STATE'
>      alignas(std::max(alignof(void*), alignof(RegisterState))) RegisterState
> registers; \
>                                                                             
> ^~~~~~~~~
> /builddir/build/BUILD/webkitgtk-2.21.92/Source/JavaScriptCore/heap/
> MachineStackMarker.cpp:224:5: note: in expansion of macro
> 'DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE'
>      DECLARE_AND_COMPUTE_CURRENT_THREAD_STATE(state);
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> I temporarily reverted the commit and the build passes.

This is because std::max is not annotated as constexpr in old GCC's libstdc++. (It was a bug since they should be constexpr in C++14).
https://github.com/gcc-mirror/gcc/commit/d3ab86117a4b67ca76491e13e4f705cfb9efb79e
Can you fix it by using `? :` operator instead?
Comment 2 Tomas Popela 2018-08-29 23:18:26 PDT
(In reply to Yusuke Suzuki from comment #1)
> This is because std::max is not annotated as constexpr in old GCC's
> libstdc++. (It was a bug since they should be constexpr in C++14).
> https://github.com/gcc-mirror/gcc/commit/
> d3ab86117a4b67ca76491e13e4f705cfb9efb79e

This is definitely not an old libstdc++. It's GCC 8.2.1. 

> Can you fix it by using `? :` operator instead?

Yes, it fixes it. I will upload the patch.
Comment 3 Tomas Popela 2018-08-29 23:20:18 PDT
Created attachment 348487 [details]
Patch
Comment 4 Mark Lam 2018-08-29 23:32:58 PDT
Comment on attachment 348487 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=348487&action=review

r=me if EWS bots are happy.

> Source/JavaScriptCore/ChangeLog:8
> +        Use ternary operator instead of std::max().

I think you should document the gcc bug (that Yusuke pointed out) here e.g.

    std::max is not annotated as constexpr in old GCC libstdc++, which is a bug since they should be constexpr in C++14.
    https://github.com/gcc-mirror/gcc/commit/d3ab86117a4b67ca76491e13e4f705cfb9efb79e

    This patch works around this bug by using a ternary operator instead of std::max().

This way:
1. other people reading this code will understand why the ternary operator is needed here (to work around a bug, not because it's the preferred way to express this).
2. people will know in the future the motivation for this change, and can remove it when the workaround is no longer needed.

Technically, one can reverse engineer the reasoning by digging further back to the comments in this bugzilla.  But the ChangeLog is meant to document the motivation behind changes when it's not obvious.  So, let's do that.
Comment 5 Tomas Popela 2018-08-29 23:37:58 PDT
(In reply to Mark Lam from comment #4)
> Comment on attachment 348487 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=348487&action=review
> 
> r=me if EWS bots are happy.
> 
> > Source/JavaScriptCore/ChangeLog:8
> > +        Use ternary operator instead of std::max().
> 
> I think you should document the gcc bug (that Yusuke pointed out) here e.g.
> 
>     std::max is not annotated as constexpr in old GCC libstdc++, which is a
> bug since they should be constexpr in C++14.

True, the change log entry should be more descriptive, but I'm not sure that the information from Yusuke about an old GCC is true, as I'm using the latest libstdc++ up to date. I will update the change log in case of landing it.
Comment 6 Mark Lam 2018-08-29 23:41:23 PDT
(In reply to Tomas Popela from comment #5)
> (In reply to Mark Lam from comment #4)
> > Comment on attachment 348487 [details]
> > Patch
> > 
> > View in context:
> > https://bugs.webkit.org/attachment.cgi?id=348487&action=review
> > 
> > r=me if EWS bots are happy.
> > 
> > > Source/JavaScriptCore/ChangeLog:8
> > > +        Use ternary operator instead of std::max().
> > 
> > I think you should document the gcc bug (that Yusuke pointed out) here e.g.
> > 
> >     std::max is not annotated as constexpr in old GCC libstdc++, which is a
> > bug since they should be constexpr in C++14.
> 
> True, the change log entry should be more descriptive, but I'm not sure that
> the information from Yusuke about an old GCC is true, as I'm using the
> latest libstdc++ up to date. I will update the change log in case of landing
> it.

Does your libstdc++ already include the changes in PR https://github.com/gcc-mirror/gcc/commit/d3ab86117a4b67ca76491e13e4f705cfb9efb79e?  If not, then it is not adequately up to date (for the purpose of the need for this workaround).
Comment 7 Tomas Popela 2018-08-30 00:35:17 PDT
(In reply to Mark Lam from comment #6)
> Does your libstdc++ already include the changes in PR
> https://github.com/gcc-mirror/gcc/commit/
> d3ab86117a4b67ca76491e13e4f705cfb9efb79e?  If not, then it is not adequately
> up to date (for the purpose of the need for this workaround).

Yes, that's what I was talking about. This was fixed in 2014 in GCC 5.1 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60271.
Comment 8 Yusuke Suzuki 2018-09-06 06:59:05 PDT
(In reply to Tomas Popela from comment #7)
> (In reply to Mark Lam from comment #6)
> > Does your libstdc++ already include the changes in PR
> > https://github.com/gcc-mirror/gcc/commit/
> > d3ab86117a4b67ca76491e13e4f705cfb9efb79e?  If not, then it is not adequately
> > up to date (for the purpose of the need for this workaround).
> 
> Yes, that's what I was talking about. This was fixed in 2014 in GCC 5.1 -
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60271.

I think GCC requirement of WebKit is 6.0.0.
Do you use pre-5.1 libstdc++ with GCC 6.0.0?
Comment 9 Tomas Popela 2018-09-06 07:05:05 PDT
(In reply to Yusuke Suzuki from comment #8)
> I think GCC requirement of WebKit is 6.0.0.
> Do you use pre-5.1 libstdc++ with GCC 6.0.0?

As I already mentioned, I'm using the latest stable GCC and libstdc++ and it's 8.2.1.
Comment 10 Yusuke Suzuki 2018-09-06 07:30:19 PDT
(In reply to Tomas Popela from comment #9)
> (In reply to Yusuke Suzuki from comment #8)
> > I think GCC requirement of WebKit is 6.0.0.
> > Do you use pre-5.1 libstdc++ with GCC 6.0.0?
> 
> As I already mentioned, I'm using the latest stable GCC and libstdc++ and
> it's 8.2.1.

Do you have any idea why it does not include the fix?
I have debian unstable environment in x86_64, which gcc and libstdc++ are 8.2.0-5.
And it includes the above fix.

$ apt show libstdc++-8-dev
Package: libstdc++-8-dev
Version: 8.2.0-5
Priority: optional
Section: libdevel
Source: gcc-8
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Installed-Size: 16.7 MB
Provides: libstdc++-dev
Depends: gcc-8-base (= 8.2.0-5), libgcc-8-dev (= 8.2.0-5), libstdc++6 (>= 8.2.0-5), libc6-dev (>= 2.13-5)
Suggests: libstdc++-8-doc
Conflicts: libg++2.8-dev, libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, libstdc++3.0-dev
Homepage: http://gcc.gnu.org/
Tag: devel::library, role::devel-lib
Download-Size: 1,527 kB
APT-Manual-Installed: no
APT-Sources: http://ftp.jp.debian.org/debian unstable/main amd64 Packages
Description: GNU Standard C++ Library v3 (development files)
 This package contains the headers and static library files necessary for
 building C++ programs which use libstdc++.
 .
 libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which
 was included up to g++-2.95. The first version of libstdc++-v3 appeared
 in g++-3.0.

 216   │   template<typename _Tp>
 217   │     _GLIBCXX14_CONSTEXPR
 218   │     inline const _Tp&
 219   │     max(const _Tp& __a, const _Tp& __b)
 220   │     {
 221   │       // concept requirements
 222   │       __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
 223   │       //return  __a < __b ? __b : __a;
 224   │       if (__a < __b)
 225   │        return __b;
 226   │       return __a;
 227   │     }

in /usr/include/c++/8/bits/stl_algobase.h.
Comment 11 Yusuke Suzuki 2018-09-06 07:34:45 PDT
(In reply to Tomas Popela from comment #9)
> (In reply to Yusuke Suzuki from comment #8)
> > I think GCC requirement of WebKit is 6.0.0.
> > Do you use pre-5.1 libstdc++ with GCC 6.0.0?
> 
> As I already mentioned, I'm using the latest stable GCC and libstdc++ and
> it's 8.2.1.

Can you show the implementation of `std::max` in your environment?
Can we fix the bug by including <algorithm> in RegisterState.h? (speculative fix).
Comment 12 Tomas Popela 2018-09-06 09:37:41 PDT
(In reply to Yusuke Suzuki from comment #11)
> Can you show the implementation of `std::max` in your environment?
> Can we fix the bug by including <algorithm> in RegisterState.h? (speculative
> fix).

In the end we figure out that it's a GCC bug - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70124. I'm going to commit the current patch with updated changelog.
Comment 13 Tomas Popela 2018-09-06 09:41:40 PDT
Committed r235740: <https://trac.webkit.org/changeset/235740>
Comment 14 Radar WebKit Bug Importer 2018-09-06 09:42:27 PDT
<rdar://problem/44184508>