Found while trying to compile Serenity, more precisely while building the binutils part of the toolchain (i686 GNU
):
1636.036 [#0 ld(16833:16833)]: Unrecoverable page fault, instruction fetch / read from address V0xb7736b40
1636.036 [ld(16833:16833)]: CRASH: CPU #0 Page Fault in ring 3
1636.036 [#0 ld(16833:16833)]: Exception code: 0014 (isr: 0000)
1636.036 [#0 ld(16833:16833)]: pc=0x001b:0xb7736b40 eflags=0x00010202
1636.036 [#0 ld(16833:16833)]: stack=0x0023:0x01c0e95c
1636.036 [#0 ld(16833:16833)]: ds=0x0023 es=0x0023 fs=0x0023 gs=0x002b
1636.036 [#0 ld(16833:16833)]: eax=0xffffffe0 ebx=0x0000001b ecx=0xb7736b40 edx=0x00000001
1636.036 [#0 ld(16833:16833)]: ebp=0x01c0ebf8 esp=0xd4467fa8 esi=0x3b2d599c edi=0x3b2d52bc
1636.036 [#0 ld(16833:16833)]: cr0=0x80010013 cr2=0xb7736b40 cr3=0x1e465000 cr4=0x003406e4
1636.036 [#0 ld(16833:16833)]: 0xb7736b40 (?)
1636.036 [#0 ld(16833:16833)]: Kernel + 0x00cb1dde Kernel::Process::crash(int, unsigned int, bool) +0x1de
1636.036 [#0 ld(16833:16833)]: Kernel + 0x0101c5c1 Kernel::handle_crash(Kernel::RegisterState const&, char const*, int, bool) [clone .localalias] +0x9b1
1636.036 [#0 ld(16833:16833)]: Kernel + 0x0101d455 page_fault_handler +0xa35
1636.036 [#0 ld(16833:16833)]: Kernel + 0x010195c6 page_fault_asm_entry +0x26
1636.036 [#0 ld(16833:16833)]: Process regions:
[...]
1637.523 CrashReporter(16836:16857): Generating backtrace took 1164 ms
1637.523 CrashReporter(16836:16857): --- Backtrace for thread #0 (TID 16833) ---
1637.523 CrashReporter(16836:16857): 0xb7736b40: ???
1637.523 CrashReporter(16836:16857): 0x3b2474a4: [libc.so] write +0x24 (syscall.h:40 => unistd.cpp:386)
1637.523 CrashReporter(16836:16857): 0x3b225e5b: [libc.so] FILE::write_from_buffer() [clone .localalias] +0x4b (stdio.cpp:119 => stdio.cpp:151)
1637.523 CrashReporter(16836:16857): 0x3b225efe: [libc.so] FILE::flush() [clone .localalias] +0x2e (stdio.cpp:73)
1637.523 CrashReporter(16836:16857): 0x3b226f4b: [libc.so] fflush +0x9b (stdio.cpp:593)
1637.523 CrashReporter(16836:16857): 0x3b23aee1: [libc.so] exit +0x41 (stdlib.cpp:192)
1637.528 CrashReporter(16836:16857): 0x6c8f421a: [/usr/local/bin/ld] xexit +0x2a (xexit.c:51)
1637.528 CrashReporter(16836:16857): 0x6c82fc22: [/usr/local/bin/ld] main +0x622 (ldmain.c:616)
1637.528 CrashReporter(16836:16857): 0x6c830465: [/usr/local/bin/ld] _entry +0x65 (crt0.cpp:49)
This appears to be caused by the following command from the binutils-2.38/intl/configure
script:
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
[...]
The issue has seemingly vanished after implementing egrep
. My attempts to minimize the "test case" have failed.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too