Bug 2260867 - [Mass Rebuild] Possible aarch64 codegen issues since GCC 14
Summary: [Mass Rebuild] Possible aarch64 codegen issues since GCC 14
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: 40
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-01-29 14:50 UTC by František Zatloukal
Modified: 2024-06-12 15:56 UTC (History)
13 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-06-12 15:56:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description František Zatloukal 2024-01-29 14:50:25 UTC
Description of problem:
Since the introduction of gcc 14, the mozjs115, mozjs102, and mozjs91 started to fail in test phase on aarch64 only. This could be a possible bug in compiler.

Version-Release number of selected component (if applicable):
gcc-0:14.0.1-0.4.fc40.aarch64

How reproducible:
Always

Steps to Reproduce:
1. Build mozjs115
2. Tests fail with gcc 14 on aarch64
3.

Actual results:
Eg. https://koji.fedoraproject.org/koji/taskinfo?taskID=112549250 , builds fine, tests fail on aarch64 only

REGRESSIONS (aarch64)
    non262/global/parseInt-default-to-decimal.js
    non262/global/parseInt-01.js
    non262/Number/15.7.4.2.js
    non262/Number/parseInt-default-to-decimal.js
    non262/Number/parseInt-01.js
    non262/Intl/DateTimeFormat/islamic.js
    non262/GC/regress-313479.js
    test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js
    test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A8.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T8.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T2.js
    test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T10.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T7.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T5.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js
    test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js
    test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T3.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T6.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T4.js
    test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js
    test262/built-ins/parseInt/S15.1.2.2_A1_T7.js
    test262/built-ins/parseInt/S15.1.2.2_A2_T9.js
    test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js

Expected results:


Additional info:

Comment 1 Jakub Jelinek 2024-01-29 14:53:23 UTC
Is there any easy way to run just a single failing test?

Comment 2 František Zatloukal 2024-01-29 15:50:10 UTC
(In reply to Jakub Jelinek from comment #1)
> Is there any easy way to run just a single failing test?

Yeah, not a very straightforward way, but there is.

If you are in a buildroot of the mozjs, in "/builddir/build/BUILD/firefox-115.6.0/js/src" directory, you can add tests you want to run to a text file, separated by newline char.

So, eg. for running just the "non262/global/parseInt-default-to-decimal.js":

echo "non262/global/parseInt-default-to-decimal.js" >> tests.txt
python3 tests/jstests.py -s -t 2400 --file tests.txt ../../js/src/dist/bin/js115

Will do the trick.

Comment 3 Jakub Jelinek 2024-01-30 10:25:01 UTC
Seems the bug only reproduces with LTO, so as a workaround, disabling lto on aarch64 for mozjs* should work.
Will try to bisect linking with some objects built in LTO tree and others in non-LTO tree, but it will take a while.

Comment 4 Jakub Jelinek 2024-01-30 15:10:23 UTC
I'm afraid I'm stuck.
I've managed to reproduce the bug with
cd /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build
g++ -flto -o ../../../dist/bin/js116 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-sized-deallocation -fno-aligned-new -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -gdwarf-4 -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/shell/Unified_cpp_js_src_shell0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/shell/Unified_cpp_js_src_shell1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/memory/build/Unified_cpp_memory_build0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/memory/mozalloc/Unified_cpp_memory_mozalloc0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/interposers/Unified_cpp_mozglue_interposers0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/baseprofiler/Unified_cpp_mozglue_baseprofiler0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/AutoProfilerLabel.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/AwakeTimeStamp.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/ConditionVariable_posix.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/MmapFaultHandler.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/Mutex_posix.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/Printf.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/RWLock_posix.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/SIMD.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/StackWalk.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/TimeStamp.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/TimeStamp_posix.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/Uptime.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mozglue/misc/Decimal.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/lz4.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/lz4file.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/lz4frame.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/lz4hc.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/xxhash.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/Unified_cpp_mfbt0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/mfbt/Unified_cpp_mfbt1.o -lpthread -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -Wl,--build-id=sha1 -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc -Wl,-Bsymbolic-functions -Wl,--build-id=sha1 -fstack-protector-strong -Wl,-rpath-link,/builddir/build/BUILD/firefox-115.6.0/js/src/dist/bin -Wl,-rpath-link,/usr/lib /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_gc0.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_gc1.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_gc2.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_gc3.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_gc4.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_irregexp0.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_irregexp1.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_irregexp2.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit0.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit1.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit10.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit11.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit12.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit13.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit14.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit15.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit16.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit2.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit3.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit4.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit5.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit6.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit7.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit8.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_jit9.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_util0.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src_util1.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src0.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src1.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src10.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src11.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src12.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src13.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src14.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src15.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src16.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src17.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src18.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src19.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src2.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src20.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src21.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src22.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src23.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src24.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src25.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src3.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src4.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src5.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src6.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src7.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src8.o /builddir/build/BUILD/firefox-115.6.0/js/src/js/src/build/objects/Unified_cpp_js_src9.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/DoubleToString.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Interpreter.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Parser.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/ProfilingStack.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/RegExp.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/RegExpNativeMacroAssembler.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/StoreBuffer.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_acos.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_acosh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_asin.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_atan2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_atanh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_cosh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_exp.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_hypot.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_log.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_log10.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_log2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_pow.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/e_sinh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/jsmath.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/k_cos.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/k_exp.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/k_rem_pio2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/k_sin.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/k_tan.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/regexp-ast.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/regexp-compiler.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_asinh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_atan.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_cbrt.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_ceil.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_ceilf.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_cos.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_expm1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_fabs.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_floor.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_floorf.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_log1p.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_nearbyint.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_rint.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_rintf.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_scalbn.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_sin.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_tan.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_tanh.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_trunc.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/s_truncf.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_intl_components0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_intl_components1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_intl_components2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_intl_components3.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_intl_components4.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Utility.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_debugger0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_debugger1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend3.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend4.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend5.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend6.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_frontend7.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm0.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm1.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm2.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm3.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm4.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/js/src/build/objects/Unified_cpp_js_src_wasm5.o /builddir/build/BUILD/firefox-115.6.0-nolto/js/src/aarch64-unknown-linux-gnu/release/libjsrust.a -pie -lm -licui18n -licuuc -licudata -lz -lm -ldl -lreadline
cd /builddir/build/BUILD/firefox-115.6.0/js/src; /builddir/build/BUILD/firefox-115.6.0/js/src/dist/bin/js116 -f /builddir/build/BUILD/firefox-115.6.0/js/src/tests/shell.js -f /builddir/build/BUILD/firefox-115.6.0/js/src/tests/non262/shell.js -f /builddir/build/BUILD/firefox-115.6.0/js/src/tests/non262/global/shell.js -f /builddir/build/BUILD/firefox-115.6.0/js/src/tests/non262/global/parseInt-default-to-decimal.js
where the /builddir/build/BUILD/firefox-115.6.0-nolto directory contains build directory from successful non-LTO build and /builddir/build/BUILD/firefox-115.6.0*/js/src/js/src/build/objects/ contains unpacked /builddir/build/BUILD/firefox-115.6.0*/js/src/js/src/build/libjs_static.a libraries.
This means the objects from -nolto aren't possibly miscompiled, those are the same as used in the working non-LTO build, while the other objects are used during LTO link.
But when I was trying to add -nolto to further objects, linking fails with references to various .hidden symbols not being actually defined, dunno if the JS interpreter relies on implicit template instantiations from other TUs or what.
Anyway, because of that I can't narrow it down to something manageable (2-3 compilation units build with LTO).

Any idea what function might actually misbehave?  Given that I know next to nothing about firefox internals, I think it would be easier for somebody who knows the code to check that under a debugger where things go wrong, or do parallel debugging between non-LTO working code and LTO non-working code.  The above should show which objects aren't problematic, which one is from the rest is unclear.

Comment 5 Aoife Moloney 2024-02-15 23:12:46 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle.
Changing version to 40.

Comment 6 Martin Stransky 2024-02-23 07:39:55 UTC
Missing symbols during LTO may be related to https://bugzilla.mozilla.org/show_bug.cgi?id=1516803 (lto-partitions whatever it means).

Comment 7 František Zatloukal 2024-06-12 15:56:14 UTC
This is working now just fine, closing, it was resolved somewhere in between gcc-0:14.0.1-0.4.fc40.aarch64 and gcc-14.1.1-5.fc40.aarch64.


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