Igalia / meta-webkit

Yocto / OpenEmbedded layer for WebKit based engines and browsers
MIT License
125 stars 67 forks source link

Error building webkit2gtk 2.38.0 on armv7l #412

Closed satmandu closed 1 year ago

satmandu commented 1 year ago

Describe the bug I'm having trouble building webkit2gtk 2.38.0 on linux/armv7l (This is a Chromebrew system in a docker build container.)

The matrix webkit channel suggested I use this patch: https://github.com/Igalia/meta-webkit/blob/main/recipes-browser/wpewebkit/wpewebkit/0001-FELightningNEON.cpp-fails-to-build-NEON-fast-path-se.patch

But I still have build failures. (I have no problem building on x86_64 or i686.)

Error:

[2923/5622] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-37.cpp.o
FAILED: Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-37.cpp.o 
/usr/local/lib/ccache/bin/c++ -DBUILDING_GTK__=1 -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DBUILDING_WebCore -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_PAL -DUSER_AGENT_BRANDING=\"Chromebrew\" -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -<snip>
webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNeonApplier.cpp:200:18: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align]
  200 |     sourceA[0] = reinterpret_cast<uint32_t*>(sourcePixelArrayA->bytes())[0];
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNeonApplier.cpp:201:25: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align]
  201 |     sourceBAndDest[0] = reinterpret_cast<uint32_t*>(sourcePixelArrayB->bytes())[0];
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNeonApplier.cpp:203:5: warning: cast from ‘unsigned char*’ to ‘uint32_t*’ {aka ‘unsigned int*’} increases required alignment of target type [-Wcast-align]
  203 |     reinterpret_cast<uint32_t*>(destinationPixelArray)[0] = sourceBAndDest[0];
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:28,
                 from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/builddir4/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-37.cpp:4:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h: In static member function ‘static void WebCore::FELightingSoftwareApplier::applyPlatformNeon(const LightingData&, const WebCore::LightSource::PaintingData&)’:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:99:46: warning: attribute ignored [-Wattributes]
   99 |     WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments;
      |                                              ^~~~~~~
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:99:46: note: an attribute that appertains to a type-specifier is ignored
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp: At global scope:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:38:8: error: standard attributes in middle of decl-specifiers
   38 | static alignas(16) short s_FELightingConstantsForNeon[] = {
      |        ^~~~~~~
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:38:8: note: standard attributes must precede the decl-specifiers to apply to the declaration, or follow them to apply to the type
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:38:8: warning: attribute ignored [-Wattributes]
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:38:8: note: an attribute that appertains to a type-specifier is ignored
In file included from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/builddir4/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-37.cpp:7:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp: In member function ‘void WebCore::DisplayList::ItemBuffer::append(const WebCore::DisplayList::DisplayListItem&)’:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:734:5: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint64_t*’ {aka ‘long long unsigned int*’} increases required alignment of target type [-Wcast-align]
  734 |     reinterpret_cast<uint64_t*>(m_writableBuffer.data + m_writtenNumberOfBytes)[1] = dataLength;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayList.h:29,
                 from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:27,
                 from /usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/builddir4/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-37.cpp:5:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.h: In instantiation of ‘T& WebCore::DisplayList::ItemHandle::get() const [with T = WebCore::DisplayList::SetState]’:
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:88:55:   required from here
/usr/local/tmp/crew/webkit2gtk_4.20221004191608.dir/webkitgtk-2.38.0/Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.h:79:17: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘WebCore::DisplayList::SetState*’ increases required alignment of target type [-Wcast-align]
   79 |         return *reinterpret_cast<T*>(data + sizeof(uint64_t));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To Reproduce

Happy to provide docker container instructions to replicate our open build environment.

Screenshots If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

Additional context full build log: webkit2gtk_4-2.38.0-armv7l.log

satmandu commented 1 year ago

Oops. This is a duplicate of https://github.com/Igalia/meta-webkit/issues/411