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.
(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?
(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.
Created attachment 348487 [details] Patch
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.
(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.
(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).
(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.
(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?
(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.
(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.
(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).
(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.
Committed r235740: <https://trac.webkit.org/changeset/235740>
<rdar://problem/44184508>