Bug 250883

Summary: 2.39.5: build fails on "error: ‘supportsAVX’ is not a member of ‘JSC::MacroAssembler’"
Product: WebKit Reporter: Tomasz Kłoczko <kloczko.tomasz>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: mark.lam, mcatanzaro, webkit-bug-importer
Priority: P1 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Linux   

Description Tomasz Kłoczko 2023-01-19 17:52:39 PST
cmake settings

-- Cache values
ANALYZERS:BOOL=OFF
BWRAP_EXECUTABLE:FILEPATH=/usr/bin/bwrap
CCACHE_FOUND:FILEPATH=CCACHE_FOUND-NOTFOUND
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
DBUS_PROXY_EXECUTABLE:FILEPATH=/usr/bin/xdg-dbus-proxy
DEBUG_FISSION:BOOL=OFF
DEVELOPER_MODE_FATAL_WARNINGS:BOOL=ON
ENABLE_BUBBLEWRAP_SANDBOX:BOOL=ON
ENABLE_DOCUMENTATION:BOOL=ON
ENABLE_DRAG_SUPPORT:BOOL=ON
ENABLE_GAMEPAD:BOOL=ON
ENABLE_GLES2:BOOL=ON
ENABLE_INTROSPECTION:BOOL=ON
ENABLE_JAVASCRIPTCORE:BOOL=ON
ENABLE_JOURNALD_LOG:BOOL=ON
ENABLE_MEDIA_SOURCE:BOOL=ON
ENABLE_MINIBROWSER:BOOL=ON
ENABLE_PDFJS:BOOL=ON
ENABLE_QUARTZ_TARGET:BOOL=OFF
ENABLE_SPELLCHECK:BOOL=ON
ENABLE_TOUCH_EVENTS:BOOL=ON
ENABLE_VIDEO:BOOL=ON
ENABLE_WAYLAND_TARGET:BOOL=ON
ENABLE_WEBCORE:BOOL=ON
ENABLE_WEBDRIVER:BOOL=ON
ENABLE_WEBKIT:BOOL=ON
ENABLE_WEB_AUDIO:BOOL=ON
ENABLE_WEB_CRYPTO:BOOL=ON
ENABLE_X11_TARGET:BOOL=ON
EXEC_INSTALL_DIR:PATH=/usr/bin
GCC_OFFLINEASM_SOURCE_MAP:BOOL=ON
GETTEXT_MSGFMT_EXECUTABLE:FILEPATH=/usr/bin/msgfmt
GETTEXT_MSGMERGE_EXECUTABLE:FILEPATH=/usr/bin/msgmerge
GIDocgen_EXE:FILEPATH=/usr/bin/gi-docgen
GI_COMPILER_EXE:FILEPATH=/usr/bin/g-ir-compiler
GI_GIRDIR:PATH=/usr/share/gir-1.0
GI_SCANNER_EXE:FILEPATH=/usr/bin/g-ir-scanner
GI_TYPELIBDIR:PATH=/usr/lib64/girepository-1.0
GSTREAMER_ALLOCATORS_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_ALLOCATORS_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_APP_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_APP_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_AUDIO_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_AUDIO_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_BASE_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_BASE_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_CODECPARSERS_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_CODECPARSERS_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_FFT_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_FFT_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_FULL_RESOLVED_INCLUDEDIR:PATH=/usr/include
GSTREAMER_GL_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_GL_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_MPEGTS_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_MPEGTS_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_PBUTILS_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_PBUTILS_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_RTP_LIBRARIES:FILEPATH=/usr/lib64/libgstrtp-1.0.so
GSTREAMER_RTP_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_RTP_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_SDP_LIBRARIES:FILEPATH=/usr/lib64/libgstsdp-1.0.so
GSTREAMER_SDP_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_SDP_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_TAG_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_TAG_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_TRANSCODER_LIBRARIES:FILEPATH=/usr/lib64/libgsttranscoder-1.0.so
GSTREAMER_TRANSCODER_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_TRANSCODER_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_VIDEO_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_VIDEO_RESOLVED_INCLUDEDIR-NOTFOUND
GSTREAMER_WEBRTC_RESOLVED_INCLUDEDIR:PATH=GSTREAMER_WEBRTC_RESOLVED_INCLUDEDIR-NOTFOUND
ICU_INCLUDE_DIR:PATH=/usr/include
LIBEXEC_INSTALL_DIR:PATH=/usr/libexec/webkitgtk-6.0
LIBGCRYPTCONFIG_SCRIPT:FILEPATH=/usr/bin/libgcrypt-config
LIBXSLT_EXSLT_INCLUDE_DIR:PATH=/usr/include
LIBXSLT_LIBRARY:FILEPATH=/usr/lib64/libxslt.so
LIB_INSTALL_DIR:PATH=/usr/lib64
PORT:STRING=GTK
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
SHOULD_INSTALL_JS_SHELL:BOOL=ON
SHOW_BINDINGS_GENERATION_PROGRESS:BOOL=OFF
USER_AGENT_BRANDING:STRING=G2V
USE_64KB_PAGE_BLOCK:BOOL=ON
USE_APPLE_ICU:BOOL=OFF
USE_AVIF:BOOL=ON
USE_GBM:BOOL=ON
USE_GTK4:BOOL=ON
USE_JPEGXL:BOOL=OFF
USE_LCMS:BOOL=ON
USE_LIBHYPHEN:BOOL=ON
USE_LIBSECRET:BOOL=ON
USE_OPENGL_OR_ES:BOOL=ON
USE_OPENJPEG:BOOL=ON
USE_SOUP2:BOOL=OFF
USE_THIN_ARCHIVES:BOOL=ON
USE_WOFF2:BOOL=ON
WOFF2_INCLUDE_DIR:PATH=/usr/include
WPEBACKEND_FDO_AUDIO_EXTENSION:PATH=/usr/include/wpe-fdo-1.0


And build fails on

[  9%] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/Source/JavaScriptCore && /usr/bin/g++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DBWRAP_EXECUTABLE=\"/usr/bin/bwrap\" -DDBUS_PROXY_EXECUTABLE=\"/usr/bin/xdg-dbus-proxy\" -DGETTEXT_PACKAGE=\"WebKitGTK-6.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DUSER_AGENT_BRANDING=\"G2V\" -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/Headers -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/API -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/assembler -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/b3 -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/b3/air -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/bindings -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/builtins -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/bytecode -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/bytecompiler -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/dfg -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/disassembler -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/disassembler/ARM64 -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/disassembler/zydis/Zydis -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/domjit -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/ftl -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/heap -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/debugger -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/inspector -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/inspector/agents -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/inspector/augmentable -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/inspector/remote -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/interpreter -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/jit -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/llint -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/parser -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/profiler -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/runtime -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/tools -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/wasm -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/wasm/js -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/yarr -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources/inspector -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources/runtime -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources/yarr -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/API/glib -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCoreGLib/DerivedSources/jsc -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCoreGLib/Headers -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/inspector/remote/glib -I/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/WTF/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -U_FORTIFY_SOURCE -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fno-rtti -fno-exceptions -fno-strict-aliasing -fno-exceptions -fno-rtti -DNDEBUG -fPIC -fvisibility=hidden -ffp-contract=off -std=c++20 -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp.o -MF CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp.o.d -o CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp.o -c /home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp
In file included from /home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/x86_64-redhat-linux-gnu/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-31.cpp:1:
/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/runtime/Options.cpp: In static member function ‘static void JSC::Options::notifyOptionsChanged()’:
/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/runtime/Options.cpp:665:30: error: ‘supportsAVX’ is not a member of ‘JSC::MacroAssembler’
  665 |         if (!MacroAssembler::supportsAVX())
      |                              ^~~~~~~~~~~
make[2]: *** [Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:3057: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-s
Comment 1 Radar WebKit Bug Importer 2023-01-26 17:53:25 PST
<rdar://problem/104722380>
Comment 2 Tomasz Kłoczko 2023-01-26 19:58:21 PST
(In reply to Radar WebKit Bug Importer from comment #1)
> <rdar://problem/104722380>

So what that means?🤔
Comment 3 Mark Lam 2023-02-19 09:23:06 PST
`supportsAVX()` is in the MacroAssemblerX86Common code.  This is obviously a mis-configured build or something of the sort.
Comment 4 Tomasz Kłoczko 2023-02-19 09:33:51 PST
(In reply to Mark Lam from comment #3)
> `supportsAVX()` is in the MacroAssemblerX86Common code.  This is obviously a
> mis-configured build or something of the sort.

Hmm .. what you mean "mis-configured"?
If anything went wrong it meands that some cmake file has some issue.


Other thig is that producing AVX asm dependent code should only be doe only when kind of native CPU optimisattion is requeested.
In this case I'm trying to produe binaries which will be working on all x86/64 subarch and looks like something detcted that indeed this HW cpu has AVX extension.
Comment 5 Mark Lam 2023-02-19 09:43:06 PST
(In reply to Tomasz Kłoczko from comment #4)
> Other thig is that producing AVX asm dependent code should only be doe only
> when kind of native CPU optimisattion is requeested.
> In this case I'm trying to produe binaries which will be working on all
> x86/64 subarch and looks like something detcted that indeed this HW cpu has
> AVX extension.

No.  Your error is a build failure, not a runtime failure. See:

/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/runtime/Options.cpp: In static member function ‘static void JSC::Options::notifyOptionsChanged()’:
/home/tkloczko/rpmbuild/BUILD/webkitgtk-2.39.5/Source/JavaScriptCore/runtime/Options.cpp:665:30: error: ‘supportsAVX’ is not a member of ‘JSC::MacroAssembler’
  665 |         if (!MacroAssembler::supportsAVX())
      |                              ^~~~~~~~~~~

This means something is not set up to build the code correctly.  Since you're trying to build for redhat, I'll let the redhead folks look at this.
Comment 6 Mark Lam 2023-02-19 09:43:46 PST
(In reply to Mark Lam from comment #5)
> This means something is not set up to build the code correctly.  Since
> you're trying to build for redhat, I'll let the redhead folks look at this.

/redhead/redhat/
Comment 7 Michael Catanzaro 2023-02-19 14:05:36 PST
Does this still happen with 2.39.7?