Date: Tue, 29 Dec 2020 14:50:07 -0800 From: Mark Millard <marklmi@yahoo.com> To: bob prohaska <fbsd@www.zefox.net> Cc: freebsd-arm@freebsd.org Subject: Re: Migrating from -current to stable/12 on RPI2B (ARMv7) Message-ID: <67E8786A-79E7-409A-BF4D-738F4FEB5EFF@yahoo.com> In-Reply-To: <DB6C87A3-19DC-4979-AC17-FD1261782803@yahoo.com> References: <20201228044840.GA28380@www.zefox.net> <F9CB3890-5E07-46C9-AC40-D968F8B51B1F@yahoo.com> <20201228185622.GB28380@www.zefox.net> <E1EC1332-62D8-4E51-BF4D-9812AF7EF44B@yahoo.com> <2C1E2F87-2FC3-481C-A508-C76B2D7CFF7F@yahoo.com> <619A02CC-0EBA-4B50-A3BB-C326996AE706@yahoo.com> <B6A3C3C8-4AB9-43B5-A93F-8F2B6DE5E5E9@yahoo.com> <CB0E5ECD-CDDA-46A7-812B-744AF7645A78@yahoo.com> <20201229010220.GA36311@www.zefox.net> <78A4DEC3-421F-419D-ABDE-9F3724E44C8D@yahoo.com> <7E0A320A-4C81-4C7B-B5D0-E6681FFA24FC@yahoo.com> <DB6C87A3-19DC-4979-AC17-FD1261782803@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[clang.full built this time.] On 2020-Dec-29, at 13:24, Mark Millard <marklmi at yahoo.com> wrote: > On 2020-Dec-29, at 02:15, Mark Millard <marklmi at yahoo.com> wrote: >=20 >> On 2020-Dec-29, at 00:16, Mark Millard <marklmi at yahoo.com> wrote: >>=20 >>> On 2020-Dec-28, at 17:02, bob prohaska <fbsd@www.zefox.net> wrote: >>>=20 >>>> On Mon, Dec 28, 2020 at 04:14:51PM -0800, Mark Millard wrote: >>>>> [I get the problem as well! I report a backtrace of the failure >>>>> and some more.] >>>>>=20 >>>>=20 >>>> Relieved to see it's reproducible. =20 >>> . . . >>>=20 >>> I tried reducing the size of things to be produced via building >>> the target based on the likes of using: >>>=20 >>> WITHOUT_LLVM_TARGET_AARCH64=3D >>> WITH_LLVM_TARGET_ARM=3D >>> WITHOUT_LLVM_TARGET_MIPS=3D >>> WITHOUT_LLVM_TARGET_POWERPC=3D >>> WITHOUT_LLVM_TARGET_RISCV=3D >>> WITHOUT_LLVM_TARGET_X86=3D >>> MALLOC_PRODUCTION=3D >>> WITH_MALLOC_PRODUCTION=3D >>> WITHOUT_ASSERT_DEBUG=3D >>> WITHOUT_LLVM_ASSERTIONS=3D >>> WITHOUT_DEBUG_FILES=3D >>>=20 >>> (But the host 13 was unchanged.) >>>=20 >>> It still failed, but at a different memory allocation, of a >>> different size: >>>=20 >>> r4 0x8000 32768 >>>=20 >>> (gdb) bt >>> #0 thr_kill () at thr_kill.S:4 >>> #1 0x4227d998 in __raise (s=3D6) at = /usr/src/lib/libc/gen/raise.c:52 >>> #2 0x42332284 in abort () at /usr/src/lib/libc/stdlib/abort.c:67 >>> #3 0x00da5e4c in report_bad_alloc_error () at = /usr/src/contrib/llvm-project/llvm/lib/Support/ErrorHandling.cpp:174 >>> #4 0x00da61c8 in out_of_memory_new_handler() () at = /usr/src/contrib/llvm-project/llvm/lib/Support/ErrorHandling.cpp:187 >>> #5 0x420f5d24 in operator new (size=3D<optimized out>) at = /usr/src/contrib/llvm-project/libcxx/src/new.cpp:73 >>> #6 0x00e16878 in SetBufferSize () at = /usr/src/contrib/llvm-project/llvm/include/llvm/Support/raw_ostream.h:131 >>> #7 SetBuffered () at = /usr/src/contrib/llvm-project/llvm/lib/Support/raw_ostream.cpp:97 >>> #8 0x00e17368 in write () at = /usr/src/contrib/llvm-project/llvm/lib/Support/raw_ostream.cpp:251 >>> #9 0x00ddfe20 in operator<< () at = /usr/src/contrib/llvm-project/llvm/include/llvm/Support/raw_ostream.h:192 >>> #10 operator<< () at = /usr/src/contrib/llvm-project/llvm/include/llvm/Support/raw_ostream.h:205 >>> #11 printSymbolizedStackTrace () at = /usr/src/contrib/llvm-project/llvm/lib/Support/Signals.cpp:154 >>> #12 0x00de163c in PrintStackTrace () at = /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:575 >>> #13 0x00ddf604 in RunSignalHandlers () at = /usr/src/contrib/llvm-project/llvm/lib/Support/Signals.cpp:67 >>> #14 0x00de1f3c in SignalHandler () at = /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:396 >>> #15 0x42021db4 in handle_signal (actp=3Dactp@entry=3D0x424df7b0, = sig=3D<optimized out>, info=3Dinfo@entry=3D0x424df7f0, ucp=3D<optimized = out>) at /usr/src/lib/libthr/thread/thr_sig.c:303 >>> #16 0x420213f8 in thr_sighandler (sig=3D0, info=3D0x424df7f0, = _ucp=3D0x424df830) at /usr/src/lib/libthr/thread/thr_sig.c:246 >>> #17 0xffffe190 in ?? () >>> Backtrace stopped: previous frame identical to this frame (corrupt = stack?) >>=20 >>=20 >> Updating the host 13 made no significant difference in >> behavior. >>=20 >> Using: >>=20 >> time -l /usr/bin/ld --eh-frame-hdr -Bstatic -o clang /usr/lib/crt1.o = /usr/lib/crti.o /usr/lib/crtbeginT.o = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/legac= y/usr/lib = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-t= ools/lib/libz = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-t= ools/lib/libexecinfo = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-t= ools/lib/libelf = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-t= ools/lib/ncurses/ncursesw = -L/usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-t= ools/lib/libthr -L/usr/lib --gc-sections cc1_main.o cc1as_main.o = cc1gen_reproducer_main.o driver.o = /usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-too= ls/lib/clang/libclang/libclang.a = /usr/obj/rpi2_clang/arm.armv7/usr/fbsd/stable-12-src/arm.armv7/tmp/obj-too= ls/lib/clang/libllvm/libllvm.a -lz -lexecinfo -lelf -lncursesw -lpthread = -legacy -lc++ -lm -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /usr/lib/crtend.o = /usr/lib/crtn.o >>=20 >> it reported after the failure output (an example): >>=20 >> time: command terminated abnormally >> 26.59 real 9.40 user 12.48 sys >> 2052032 maximum resident set size >> 21793 average shared memory size >> 218 average unshared data size >> 127 average unshared stack size >> 703238 page reclaims >> 0 page faults >> 0 swaps >> 55 block input operations >> 3104 block output operations >> 0 messages sent >> 0 messages received >> 1 signals received >> 41126 voluntary context switches >> 447 involuntary context switches >>=20 >> where looking up getrusage reports that: >>=20 >> ru_maxrss the maximum resident set size utilized (in kilobytes). >>=20 >> which means: 44.0625 MiByte below 2 GiBytes for the resident set. >>=20 >> Adding --threads=3D1 made little difference: >>=20 >> time: command terminated abnormally >> 28.84 real 9.28 user 12.78 sys >> 2065016 maximum resident set size >> 21872 average shared memory size >> 219 average unshared data size >> 127 average unshared stack size >> 709661 page reclaims >> 0 page faults >> 0 swaps >> 48 block input operations >> 3050 block output operations >> 0 messages sent >> 0 messages received >> 1 signals received >> 36717 voluntary context switches >> 114 involuntary context switches >> Abort trap >=20 >=20 > I found another difference between how 13 is built and > stable/12 is built, so I'm trying another build. >=20 > The below shows what I've changed in stable/12 , but 13 > eliminated even having the conditional logic, always > using -O2 -pipe : >=20 > # git diff | more > diff --git a/share/mk/sys.mk b/share/mk/sys.mk > index 9099b63a61a0..53d1e30b1d56 100644 > --- a/share/mk/sys.mk > +++ b/share/mk/sys.mk > @@ -167,7 +167,7 @@ CFLAGS ?=3D -O > .else > CC ?=3D cc > .if ${MACHINE_CPUARCH} =3D=3D "arm" || ${MACHINE_CPUARCH} =3D=3D = "mips" > -CFLAGS ?=3D -O -pipe > +CFLAGS ?=3D -O2 -pipe > .else > CFLAGS ?=3D -O2 -pipe > .endif >=20 > I'll report if the use of ld to produce clang.full still > fails or not. >=20 > I've left the other things attempting to lead to less memory > use in place. >=20 With the use of -O2 instead of -O , the bootstrap clang.full linked and the later activities in building the bootstrap clang worked as well. The build has also built the bootstrap lld and is off doing things that use the bootstrap clang and lld. I've not checked if -O2 usage would be a sufficient change by itself. For one, various other aspects of my normal builds vs. yours could be different: I've not replicated your context in any detail. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?67E8786A-79E7-409A-BF4D-738F4FEB5EFF>