serenity icon indicating copy to clipboard operation
serenity copied to clipboard

Linux 32bit build ABI error

Open hramrach opened this issue 2 years ago • 1 comments

[ 293s] /usr/bin/ccache /usr/bin/c++ -DENABLE_COMPILETIME_FORMAT_CHECK -DLibWasm_EXPORTS -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283 -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Userland/Services -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Userland/Libraries -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Ladybird/build/Lagom -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Ladybird/build/Lagom/Userland/Services -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Ladybird/build/Lagom/Userland/Libraries -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Meta/Lagom/../.. -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Meta/Lagom/../../Userland -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Meta/Lagom/../../Userland/Libraries -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Meta/Lagom/../../Userland/Services -I/home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Ladybird/build -fomit-frame-pointer -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -O2 -g -DNDEBUG -std=c++20 -fPIC -fdiagnostics-color=always -Wall -Wextra -Wno-invalid-offsetof -Wno-unknown-warning-option -Wno-unused-command-line-argument -fno-exceptions -ffp-contract=off -Werror -Wno-expansion-to-defined -Wno-literal-suffix -Wno-dangling-reference -fno-semantic-interposition -fvisibility-inlines-hidden -Wno-maybe-uninitialized -Wno-shorten-64-to-32 -fsigned-char -ggnu-pubnames -fPIC -D_FILE_OFFSET_BITS=64 -O2 -g1 -MD -MT Lagom/Userland/Libraries/LibWasm/CMakeFiles/LibWasm.dir/AbstractMachine/BytecodeInterpreter.cpp.o -MF Lagom/Userland/Libraries/LibWasm/CMakeFiles/LibWasm.dir/AbstractMachine/BytecodeInterpreter.cpp.o.d -o Lagom/Userland/Libraries/LibWasm/CMakeFiles/LibWasm.dir/AbstractMachine/BytecodeInterpreter.cpp.o -c /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Userland/Libraries/LibWasm/AbstractMachine/BytecodeInterpreter.cpp [ 293s] In file included from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/Traits.h:9, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/Find.h:10, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/AllOf.h:10, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/CheckedFormatString.h:9, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/Format.h:9, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/Endian.h:9, [ 293s] from /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Userland/Libraries/LibWasm/AbstractMachine/BytecodeInterpreter.cpp:10: [ 293s] /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/BitCast.h: In instantiation of ‘constexpr T AK::bit_cast(const U&) [with T = __vector(16) signed char; U = Detail::UFixedBigInt<128>]’: [ 293s] /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/Userland/Libraries/LibWasm/AbstractMachine/Operators.h:179:65: required from here [ 293s] /home/abuild/rpmbuild/BUILD/serenity-0+1708027970.b821f7b283/AK/BitCast.h:14:34: error: SSE vector return without SSE enabled changes the ABI [-Werror=psabi] [ 293s] 14 | [[nodiscard]] constexpr inline T bit_cast(U const& a) [ 293s] | ^~~~~~~~ [ 293s] cc1plus: note: unrecognized command-line option ‘-Wno-shorten-64-to-32’ may have been intended to silence earlier diagnostics [ 293s] cc1plus: note: unrecognized command-line option ‘-Wno-unused-command-line-argument’ may have been intended to silence earlier diagnostics [ 293s] cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics [ 293s] cc1plus: all warnings being treated as errors

hramrach avatar Feb 28 '24 19:02 hramrach

Hm. This appears to be in the SIMD Wasm implementation. I suspect that trying to load wasm programs using that extension to the wasm spec on a 32-bit platform without SSE enabled would be... quite slow anyway.

Is it the responsibility of our build scripts, or of the packaging flags to build the Wasm library with a suitable -march flag?

I would be very shocked if Ladybird works well on something older than Pentium III (first SSE) or Pentium 4/Athalon 64 (first SSE2).

cc @alimpfard

ADKaster avatar Mar 01 '24 20:03 ADKaster