RESOLVED FIXED 189078
[JSC] Build broken after r234975 on s390x, ppc64le, armv7hl
https://bugs.webkit.org/show_bug.cgi?id=189078
Summary [JSC] Build broken after r234975 on s390x, ppc64le, armv7hl
Tomas Popela
Reported 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.
Attachments
Patch (1.40 KB, patch)
2018-08-29 23:20 PDT, Tomas Popela
mark.lam: review+
Yusuke Suzuki
Comment 1 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?
Tomas Popela
Comment 2 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.
Tomas Popela
Comment 3 2018-08-29 23:20:18 PDT
Mark Lam
Comment 4 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.
Tomas Popela
Comment 5 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.
Mark Lam
Comment 6 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).
Tomas Popela
Comment 7 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.
Yusuke Suzuki
Comment 8 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?
Tomas Popela
Comment 9 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.
Yusuke Suzuki
Comment 10 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.
Yusuke Suzuki
Comment 11 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).
Tomas Popela
Comment 12 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.
Tomas Popela
Comment 13 2018-09-06 09:41:40 PDT
Radar WebKit Bug Importer
Comment 14 2018-09-06 09:42:27 PDT
Note You need to log in before you can comment on or make changes to this bug.