Open Bug 1678316 Opened 2 months ago Updated 11 days ago

Cross compiled to 32-bit, testJitABICalls fails a static assertion

Categories

(Core :: JavaScript Engine: JIT, defect, P3)

x86
Linux
defect

Tracking

()

Tracking Status
firefox-esr78 --- unaffected
firefox83 --- unaffected
firefox84 --- wontfix
firefox85 --- wontfix
firefox86 --- affected

People

(Reporter: mgaudet, Unassigned, NeedInfo)

References

(Regression)

Details

(Keywords: regression)

Using a mozconfig like the below

# Flags set for targeting x86.
export CROSS_COMPILE=1

CC="gcc -m32 -mfpmath=sse -msse -msse2"
CXX="g++ -m32 -mfpmath=sse -msse -msse2"
AR=ar
ac_add_options --target=i686-pc-linux

ac_add_options --enable-application=js

ac_add_options --disable-optimize
ac_add_options --enable-debug

ac_add_options --enable-tests

testJitABICalls.cpp fails to compile because of a failed static assertion:

// Not all 32bits architecture align uint64_t type on 8 bytes, so check the
// validity of the stored content based on the alignment of the architecture.
static_assert(alignof(uint64_t) != 8 ||
              std::is_same_v<ArgsOffsets_t<0, uint8_t, uint64_t, bool>,
                             std::integer_sequence<uint64_t, 0, 8, 16>>);

Tested on central (36ef6c97da5b).

This is strange, I did not had any issue natively (using an x86 toolchain on x64) compiling on x86 when I tested it in the past.
I will double check in 2 weeks.

Severity: -- → S4
Flags: needinfo?(nicolas.b.pierron)
Priority: -- → P3
Regressed by: 1661256

In the mean time, you can remove this line, this should not impact the test behavior.
Otherwise, you might --disable-tests when compiling, which skip the compilation of jsapi-tests.

Duplicate of this bug: 1676609

Set release status flags based on info from the regressing bug 1661256

You need to log in before you can comment on or make changes to this bug.